ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

大模型到底怎么“思考“的?讲透LLM底层原理

大模型到底怎么“思考“的?讲透LLM底层原理 本文是《从LLM到Agent Skill把AI的底层概念串起来》的配套学习笔记。原文链接从-LLM-到-Agent-Skill-把-AI-底层概念串起来-CSDN博客你有没有过这个疑问——我输入一段话大模型噼里啪啦就输出一大段回答说得头头是道。它到底是怎么懂我的意思的又是怎么想出答案的网上讲大模型原理的文章要么全是公式要么只说个大概。今天我用一整套比喻带你从零搞懂从你按下发送键到第一个字蹦出来中间到底发生了什么。一、一个反直觉的真相大模型其实在玩词语接龙先说结论可能会颠覆你的认知大模型并不懂你说的话。它只是读了万亿字之后把下一个词最可能是什么算得出神入化。你觉得它聪明是因为它接龙接得太像人话了。举个例子你输入今天天气真大模型的脑子里不是在思考天气怎么样而是在算下一个字是好的概率92%下一个字是热的概率5%下一个字是差的概率1%……然后它选了概率最高的好加到句子末尾变成今天天气真好。再用这句话做输入继续猜下一个字……就这么简单就这么简单。但简单的机制堆上万亿参数、万亿字训练数据之后产生了令人震惊的智能感。这篇文章要讲的就是这个猜下一个词的过程到底是怎么实现的。二、后厨流水线从输入到输出的6道工序你输入一句话就像客人下单说来一碗重庆小面。后厨不会直接端面出来而是经过好几道工序。大模型也是一样——第1道接单切菜——Tokenization分词比喻后厨接到单子先把重庆小面这道菜拆成一个个食材面条、青菜、花生、辣椒油、葱花……真实过程大模型不认字只认Token词元它有一本固定的词典比如GPT有5万多个Token把你的输入文字切成词典里有的片段比如重庆今天天气怎么样可能被切成重庆 / 今天 / 天气 / 怎么 / 样每个Token对应一个编号数字ID比如重庆12345今天67890为什么要切一个字一个字太慢一个词一个词又装不下所有词Token是介于字和词之间的折中——常用词整块存生僻字拆开存这样5万个Token就能覆盖几乎所有中文表达第2道给食材贴标签——Embedding向量化比喻每种食材不能光有名字得给它贴个特征标签——比如辣椒{颜色:红, 味道:辣, 口感:脆, 温度:常温}。这样厨师不用看到食材看标签就知道是什么。真实过程每个Token编号会被转换成一串数字向量比如一串有4096个数字这串数字就是这个词的语义坐标——意思相近的词坐标也近最经典的例子国王 - 男人 女人 ≈ 女王数学上真的成立重点来了这些数字是怎么学出来的模型也不知道每个维度是什么意思但它通过猜下一个词这个任务自己悟出来了。比如有两句话我喜欢吃苹果我喜欢吃香蕉模型发现苹果和香蕉在很多句子里都可以互换。那为了减少计算量模型就会把苹果和香蕉的向量放得很近——因为反正它们俩在大多数情况下差不多。推广到整个语言系统能出现在相似语境里的词 → 意思差不多 → 向量近出现在完全不同语境里的词 → 意思差很多 → 向量远模型不需要被告知什么是水果、什么是动物它通过海量文本里的共现规律自己把这些关系学出来了。Embedding一句话总结把文字翻译成一串数字翻译的标准是——意思像的词数字也像。第3道大厨配菜——Attention注意力机制这是Transformer最核心的部分也是大模型能理解上下文的根本原因。比喻配菜师傅要决定每样食材放多少、和谁搭配。做重庆小面时看到辣这个要求他的注意力会集中在辣椒油上而葱花只是点缀。真实过程Self-Attention自注意力每个词都去和所有词包括它自己算一下我们有多相关比如句子我把手机给了小王他说很好用他这个词会算出和小王的相关度是0.8和手机的相关度是0.1和我的相关度是0.05于是模型就知道他指的是小王多头注意力Multi-Head Attention是什么不是只看一眼而是同时有很多双眼睛在看有的眼睛在找谁是主语有的在找动作是什么有的在找时间关系每双眼睛关注不同的语言关系最后汇总起来为什么叫Transformer因为每一层Attention都会把输入变形transform一次一层不够就堆很多层GPT-3有96层每层都重新算一遍注意力层越多理解越复杂——就像一道菜经过好几个大厨接力处理越来越精致第4道出餐口选菜——Softmax概率输出比喻经过前面所有工序后厨算出来下一道上什么的各种可能性。面条95%、米饭3%、汤2%……最后选概率最高的面条端出去。真实过程经过N层Transformer处理后最后输出的是一个巨大的概率分布词典里有5万多个Token每个Token都有一个概率值比如输入重庆今天天气输出概率可能是真 30%、很 25%、不错 15%、晴朗 10%……Softmax就是把这些分数变成加起来等于1的概率温度Temperature参数温度高 → 概率分布更平均更可能选出奇的词更有创意也更乱温度低 → 概率分布更尖锐只选最可能的词更稳但也更无聊第5道循环上菜——自回归生成比喻多米诺骨牌。推倒第一块它碰倒第二块第二块碰倒第三块……每一块的倒下都决定了下一块往哪倒。真实过程大模型每次只输出一个Token输出之后把这个Token加到输入的末尾变成新的输入再跑一遍整个流程第1-4步输出下一个Token如此循环往复直到输出结束标记或者达到最大长度这也是为什么大模型回答问题是一个字一个字蹦出来的原因——它真的就是一个字一个字猜出来的。第6道收盘子——Context Window 的限制比喻餐桌就那么大呼应旋转餐桌比喻上的菜太多了桌子摆不下就只能把最早端上来的菜撤走。真实过程每次生成新字都要把之前所有字再过一遍Context Window 就是这张桌子的大小决定最多能放多少Token超过了就要截断最前面的内容模型就看不到了 一张图看完整过程plaintext99123456789101112131415161718你输入的文字↓【分词】切成一个个Token数字编号↓【向量化】每个Token变成一串数字语义坐标↓【N层Transformer】层层Attention理解上下文关系↓【概率输出】算出下一个词的概率分布↓【选一个词】挑概率最高的或按温度采样↓【塞回去】把这个词加到输入末尾↓↑___________循环____________|↓输出完整回答三、既然只是猜词为什么不会越说越离谱你可能会问如果大模型就是靠概率猜词那它不会无限制地猜下去吗不会越说越虚、原地打转吗你说得对。早期的大模型GPT-1/2时代确实有这个问题。但现在的大模型用了三板斧解决了这个问题第一板斧停止信号——告诉它别说了比喻餐厅有个出餐铃菜上完了就摇铃厨师就停手了。真实机制模型的词典里有一个特殊Token结束标记训练时每篇文章的结尾都加了这个标记模型学会了说到这里差不多该结束了 → 输出结束标记一旦输出结束标记生成就停止了还有硬性保障长度限制Max Tokens规定最多生成多少字到点强制停这就是为什么每个AI产品都有最大输出长度的设置第二板斧采样策略——不总是选概率最高的比喻点菜的时候不总是点销量最高的那道菜偶尔也试试新品。但也不能完全随机不然会点到黑暗料理。你可能听过这些词其实都是怎么选下一个词的策略表格策略怎么做效果Greedy贪心每次都选概率最高的词最稳但容易重复、像机器Top-K采样从概率最高的K个词里随机选增加多样性但可能选到离谱的Top-P采样核采样从概率加起来达到P%的词里选比Top-K更智能现在最常用Temperature温度调整概率分布的尖或平温度低保守温度高放飞还有专门防重复的手段重复惩罚Repetition Penalty如果一个词刚才已经说过了就降低它的概率频率惩罚Frequency Penalty一个词出现越多概率降得越多这些机制保证了输出既通顺、又不会原地打转。第三板斧RLHF——让模型学会人话该怎么说这是从GPT-3到ChatGPT最大的飞跃也是大模型从玩具变工具的关键。比喻一个厨师只会按菜谱做菜预训练但不知道客人喜欢什么口味。于是找了一批美食评论家标注员每道菜都打分。厨师根据分数调整做法越来越懂客人想要什么味道。RLHFReinforcement Learning from Human Feedback基于人类反馈的强化学习分三步第一步SFT监督微调——先学会答题格式比喻先请一批特级教师写一套标准答案集让学生背下来。先搞懂题目应该这么答。具体做什么人工收集/编写几万个问答对问题帮我写一封请假邮件标准答案尊敬的领导您好因……用这些问答对继续训练模型模型学会了用户提问 → 我要输出一个像样的回答不是继续接龙这一步的意义不是让模型变聪明而是校准输出格式。模型本来会接话现在学会了回答。第二步RM奖励模型——造一个自动打分器比喻请一批美食评论家给各种菜打分然后训练一个AI评委。以后不用真人了AI评委一秒就能打分。为什么需要这一步强化学习需要一个奖励信号做得好不好的反馈如果每次都找人来打分太慢太贵了——训练一轮可能要几百万次打分所以先训练一个替身奖励模型让它代替人来打分具体做什么同一个问题让模型生成4-10个不同的回答人类把这些回答按好坏排序排序比打分更容易达成共识用这些排序数据训练奖励模型输入一段文字输出一个分数关键洞察奖励模型学到的不是真理而是人类的偏好。它不知道什么是对的只知道人喜欢听什么。第三步RL/PPO强化学习——用分数当鞭子抽着模型进步比喻厨师做菜AI评委打分。分高了就奖励以后多这么做分低了就惩罚以后少这么做。反复练越做越好。核心循环plaintext912当前模型生成回答 → 奖励模型打分 → 分数高就强化 → 分数低就削弱 → 更新模型 → 重复但这里有个坑如果只追求高分模型可能作弊——学会说一些评委喜欢但没用的话。比如奖励模型喜欢客气模型可能进化成疯狂说客套话但内容一塌糊涂。所以有两个约束KL散度惩罚新模型和原来的模型差距不能太大防止彻底走偏保留预训练能力有时候混入普通文本继续训练防止模型忘本RLHF训练完模型发生了什么变化表格能力训练前纯预训练训练后RLHF后回答问题可能接话、可能反问、可能扯远直接、明确地回答回答长度不可控可能说个不停简洁适中该停就停安全性什么都敢说会拒绝有害请求推理能力直接给答案可能错学会了一步一步想风格不可控友好、礼貌、有帮助RLHF的副作用说两个有趣的观点1. 对齐税Alignment TaxRLHF让模型更听话了但有时候也变笨了比如模型本来能给出很有创意的回答但为了迎合奖励模型的安全偏好变得保守、平庸业内叫对齐税——为了安全和有用牺牲了一部分能力2. 奖励黑客Reward Hacking模型会钻奖励模型的空子比如奖励模型喜欢长回答模型就疯狂啰嗦奖励模型喜欢分点回答模型就什么都分三点不管合不合适四、终极问题为什么猜下一个字能产生智能感最后聊一个哲学一点的问题——这么简单的机制为什么效果这么惊人答案是语言本身就是压缩的智能。你能正确接出床前明月光____不代表你聪明只代表你背过。但你能接出任何一句话的下一句而且接得有逻辑、有常识、有推理——说明你理解了语言背后的世界。大模型在万亿字里学到的不只是哪个词跟哪个词而是整个世界的规律和结构物理规律杯子掉地上会____→摔碎因果关系因为下雨所以____→带伞社会常识去餐厅吃饭要____→付钱逻辑推理如果ABBC那么A____C→当这些规律被压缩进一个几千亿参数的模型里它就不只是在猜词了——它是在用概率的形式模拟一个理解的过程。就像飞机不是鸟但它理解了空气动力学所以能飞得比鸟还高。大模型不是人但它理解了语言的统计规律所以能说得比大多数人还溜。五、文末自测你掌握了多少来做8道题检验一下学习效果答案在文末1. 大模型的核心机制是什么A. 理解语言含义后生成回答B. 基于概率猜下一个词C. 搜索数据库找答案D. 调用专家系统推理2. Token是什么A. 模型的参数数量B. 文本被切分后的基本单位C. 模型的训练数据量D. 一种编程语言3. Embedding向量化的核心思想是什么A. 把文字加密成数字B. 意思相近的词向量坐标也相近C. 把文字压缩节省空间D. 让文字变成图片4. Attention注意力机制的作用是什么A. 让模型记忆力更好B. 让模型计算每个词和其他词的相关程度C. 让模型运行速度更快D. 让模型参数更少5. 自回归生成是什么意思A. 模型自动回顾之前的对话B. 每次生成一个词把它加回输入再生成下一个词C. 模型自动调整参数D. 模型自动回答所有问题6. RLHF中SFT监督微调的主要作用是什么A. 让模型变得更聪明B. 让模型学会回答问题的格式C. 让模型参数变多D. 让模型运行更快7. 奖励模型RM的作用是什么A. 生成最终的回答B. 给回答打分代替人类做反馈C. 储存训练数据D. 优化模型参数8. 关于幻觉Hallucination以下说法正确的是A. 大模型故意骗人B. 模型只关心像不像人话不关心对不对C. 只要模型够大就不会有幻觉D. 幻觉是因为模型记忆力不好 答案与解析B- 大模型的核心机制就是基于海量训练数据计算下一个词的概率分布然后选词生成。B- Token是文本处理的基本单位介于字和词之间每个Token对应一个数字编号。B- Embedding的核心是语义相似性在向量空间中的邻近性。B- Attention机制计算每个词与上下文中其他词的相关程度让模型能理解上下文关系。B- 自回归就是逐词生成、循环往复的过程。B- SFT主要是校准输出格式让模型从接话变成回答问题。B- 奖励模型是人类偏好的替身用来给生成的回答打分。B- 幻觉的本质是模型优化的目标是语言通顺不是事实正确。六、写在最后这篇文章从词语接龙这个最简单的机制出发讲清楚了大模型从输入到输出的完整链路Token化把文字切成可处理的基本单位Embedding把文字变成有语义的数字向量Attention让模型理解上下文关系Softmax算出下一个词的概率自回归逐词生成完整回答RLHF让模型学会说人爱听的话你会发现大模型的每一步都不复杂——但就是这些简单的机制叠加起来产生了令人惊叹的效果。下一篇我会继续用比喻的方式带你搞懂RAG检索增强生成——大模型怎么和外部知识库结合解决记忆力不够和胡说八道的问题。参考资料 《从 LLM 到 Agent Skill把 AI 的底层概念串起来》- Bug收容所 本文为学习笔记/读后感形式的二次创作核心概念来源于原文比喻体系和问答内容为原创整理。
返回列表