ARTICLE DETAIL

资讯详情

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

大模型(LLM)那些事:LLM 是什么?——它不是查资料,是在接龙

大模型(LLM)那些事:LLM 是什么?——它不是查资料,是在接龙 1. 引言那份聪明又笨的反差它帮你写诗、总结周报、改代码可你让它算 3 位数乘法它都能翻车。这份聪明又笨的反差你心里一定嘀咕过它到底是真懂还是瞎蒙我的答案跟你猜的都不太一样它既不是真懂也不是瞎蒙。它是把一件事做到极致的一台机器——「预测下一个该是什么」。先别急着关页面。我知道这句话听起来像废话。等你看完这篇你会知道这句废话里到底装了什么token、概率、采样、温度旋钮四样零件每一样都不难合起来就是你天天在用的那个聪明又笨的东西。这篇我想让你带走的不只是一堆概念还有一副能亲手摸到的手感。文末我放了一个 Excel 演示你输入一个字它预测下一个字。那一下就是 LLM 生成文字的最小切片。2. 它不是查资料是在接龙记住LLM 不是查资料的是在接龙。你听到「今天天气真」会自然地接「好」。听到「他气得拍」会接「桌子」。接龙不需要懂全部只需要顺着前面的话给出最像样的下一个。LLM 干的就是这件事只是把规模放到了离谱的程度。它不查数据库不翻资料库。它手里只有一件事看着前面已经出现的文字猜下一块最该是什么。可能有人疑惑你明明问它「巴黎是哪个国家的首都」它答「法国」跟搜索不是一回事吗差别在这。搜索是去一个装满答案的仓库里找找到原样搬给你接龙是现编。它并不知道什么答案库它只是见过太多「……法国的首都是巴黎」这样的句子于是看到「法国的首都是」时觉得「巴黎」是接下来最顺的词。一个是搬运一个是顺着学过的路子编。还有个细节是理解 LLM 的钥匙它一个字一个字往外蹦。它不会先在脑子里想好整句话再一口气吐出来。它吐出一小段接进已有的文字再看这个更长的串继续猜下一个。每吐一个前面的内容就长了一点。这个吐一点、接上去、再吐一点的循环有个学名叫自回归autoregressive。别被名字吓到它就是接龙。3. 最小的零件token接龙得先定接的是什么。不是字也不是词是 token。这是理解 LLM 的第一道坎。你可以把 token 想成它手里那本「词典」里的词条。LLM 不直接看字符它只认这本词典里的条目。词典有多大GPT-2 那代大约 5 万条今天的模型常见的是十万级、二十万级。词典里有的整条认没有的就拆成更小的部件拼出来。给你一个直观的例子。英文 “Hello, World” 这句话12 个字符、2 个词在 GPT-2 的词典里却是 3 个 token「Hello」「,」「 World」——注意逗号和它前面的空格各占一个。中文跟英文在这件事上差很多。英文按空格天然切分常见英文词往往整词就是一个 token中文没有空格一个汉字在字节级词表里可能被拆成 1 到 3 个 token。「你好世界」四个字有的词表能整段认有的要拆成好几个部件。所以同样一句话中文常常比英文更费 token。这个技术细节第八节再展开。所以一句话怎么被拆成零件就是查那本词典能整认就整认整不了就拆拆到词典里有的最小部件为止。在 LLM 眼里没有字只有一串 token它所有的工作都在 token 层面完成。上一节我说它一个字一个字蹦这里把说法校准一下它一个 token 一个 token 地蹦。token 是它的最小单位不是字。4. 每一步怎么选下一个脑子里冒出一堆候选好现在它手里已经是一串 token。下一步的关键问题下一个 token 怎么选不是像查字典那样命中一个确定答案而是——它脑子里冒出一堆候选每个候选带一个概率。接在「今天天气真」后面「好」的概率高「坏」次之「恐龙」极低。所有候选的概率加起来正好等于 1。这一步跟人有点像。你接话时也不是只想到一个词是几个词在脑子里冒出来抢着说只是最顺的那个通常赢。LLM 就是把这套候选打架明明白白算了出来。注意一个容易忽略的点它不总是选概率最大的那个。这一步叫采样sampling。概率大只是骰子重的一面不是只会出这一面。所以同一个问题问它两次答案可能不一样——不是它学坏了是它每一步本来就在掷骰子只是偏心。这里有个旋钮叫 temperature中文常叫温度。拧低骰子越来越偏心输出保守、稳、爱重复拧高骰子越来越均匀冷门候选也有机会输出发散、有创造性、也更容易离谱。想让它正经答事实题拧低想让它编故事拧高。直觉上这就是把敢不敢冒险做成的一个旋钮。采样为什么必要我给你一个具体例子。我写走累了我就坐在长椅上这种句子时走字后面既可能接「。」走累了我就…也可能接「累」走累了…两种都顺。真实的 LLM 在这种地方会随机二选一——这正是人说话的样子。如果每次都只选概率最大的文字会变得死板、无限重复。把整个循环画出来一眼就能看明白循环继续预测下一个已有文字一开始只有提示词拆成 token给词表里每个候选打分得到一个概率分布按概率采样不总选最可能的吐出一个 token接到已有文字后面这就是那个吐一点、接上去、再吐一点的循环绕圈走直到它决定停下来。5. 靠什么会接海量文本里学的到这里接龙机器的形象已经立住了。但你可能憋着一个问题它凭什么会接谁教它的答案是海量文本。它在数不清的文章、书籍、网页里反复练习同一件事看着前面的文字猜下一个。语法、事实、逻辑、常识全都藏进了猜下一个这个动作里。给你一个例子就懂了。它能正确接「法国的首都是→巴黎」说明它为了接得准知道了巴黎是法国的首都。所以事实不是背下来的是猜下一个被逼着学会的。语法同理它能接「他跑得→很快」说明它摸到了得后面常跟程度副词的规律。那它到底是怎么被教会的这篇先按下不表。教会它需要喂海量文本、反复训练、一次次校准这件事本身够写一整篇。下一篇《训练三阶段它到底是怎么被教出来的》专门讲这个我会把训练拆成三个清晰的阶段。6. 它的边界为什么翻车是原理决定的明白了它是接龙机器它的那些翻车就都不难解释了。第一它不知道实时信息。它学到的知识有截止日期——训练截止到某年某月的语料为止之后的事它没见过。你问它最新新闻它只能根据训练期见过的模式编一个最像的。第二它算不对精确数。3 位数乘法这种需要精确逐位进位的计算它猜不出来——因为它本来就不是在算是在顺着概率往下编。开头那个反差到这里你应该明白了不是它笨是它的工作方式压根不是计算器那套。第三它会一本正经地胡说。这是最吓人的一条。我要立一个判断它会一本正经地胡说不是它笨是原理决定的。它从设计上就不保证说的都对它只保证说得像人话。一个天衣无缝的假答案和一个正确的真答案在像不像人话这件事上可能打平甚至假答案更顺。幻觉hallucination就是这么来的。这三条边界是同一个原理的必然结果不是可以修掉的 bug。知道边界在哪比知道它多强更值钱——以后被它唬住的时候心里能有个准星。幻觉还有上下文窗口它一次能记住多长本系列后面各有一篇展开这里先埋个引子。7. 用 Excel 亲手接一次原理讲完该上手了。我做了一个 Excel 演示随文附送零宏、零依赖就一个文件。它有三个 Sheet。「语料」里是一段 104 字的中文短文「统计」是当前字 × 下一字的频次矩阵数每个字后面跟过哪些字、各几次「预测」里你输入一个字它告诉你这个字后面最可能出现哪个字。你打开「预测」Sheet在黄色格子里输入「公」它预测「园」——因为语料里「公园」出现了很多次。再试「很」它预测「多」。这套机制跟你前面读到的完全同构语料是训练数据统计矩阵是学到的规律预测就是那个预测下一个。唯一的差别是真正的 LLM 用神经网络打分这个 Excel 用查表打分。有个反直觉的小发现我特意留在了里面。语料里「走」字后面出现过「。」也出现过「累」各一次平手。这个 Excel 只取了频次最大者所以它每次都答「。」但真实的 LLM 遇到这种情况会带随机——这就是第四节说的采样真实模型更像掷骰子只是重的那面概率大。说句题外话真有人把完整版 LLM 塞进过 Excel。Ishan Anand 那套Spreadsheets Are All You Need把 GPT-2 的完整推理过程嵌入、注意力、多层感知机用公式搬进了表格一个 1.24 亿参数的小模型文件 1.2GB只能在 Windows 版 Excel 365/2021 上跑一次只能处理 10 个 token。那是真本事。但你不必碰那份重家伙——这个约 21 KB 的朴素统计表就能让你亲手摸到它最核心的那个机制预测下一个。别人是开着航母看发动机这份小表格是让你用一根橡皮筋亲手弹响同一根弦。玩法我建议你试三样。一是换输入字看预测怎么变。二是把「语料」Sheet 的 A1 整段换成你自己的话——你会发现统计矩阵、预测结果全部自动重算这就是换语料等于重新训练喂它什么它就学什么。三是看「预测」Sheet 第 6-7 行那里列出了同一个字后面每个候选出现的次数——一个不折不扣的概率分布只是被平铺成了表格。动手前说一句这个文件约 21 KB用的是 MID、COUNTIFS、INDEX、MATCH、MAX 这些最普通的函数WPS 和 Excel 2016 以上都能开。文末参考来源里列了它和配套说明。8. 技术深挖可跳过这一节写给想看更细的开发者跳过不影响主线。token 词表怎么来的BPE 合并前面说 token 是词典里的词条那词表怎么造出来主流做法叫 BPEByte Pair Encoding字节对编码。思路朴素得惊人先让每个最小单元字符或字节都是一个 token然后反复扫描语料把出现次数最多的相邻对合并成一个新 token直到词表达到目标大小。合并的顺序就是词表里那些词出生的顺序。我用四个英文词当示意语料low、lower、lowest、newer、wider画成图语料low · lower · lowest · newer · wider初始每个字符是一个 token第 1 轮相邻对 (l,o) 出现最多→ 合并成 lo第 2 轮(lo,w) 出现最多→ 合并成 low第 3 轮(e,r) 出现最多→ 合并成 er第 4 轮继续合并…直到词表达到目标大小合并一路继续词表一路变长直到凑满目标。GPT-2 就是按这个法子凑出了 50,257 个 token。这个数是这样组成的256 个基础字节覆盖一切可能的字节所以任何语言、任何符号它都能拆不存在不认识的字、1 个特殊的文本结束标记加上 5 万个合并出来的词条。50,257 约等于 5 万这就是GPT-2 词表约 5 万说法的出处。中文为什么费 token这解释了第三节的疑惑。GPT-2 这种字节级词表里一个汉字是 3 个 UTF-8 字节经常要拆成 1 到 3 个 token而英文常见词往往早就被合并成了整 token。粗算下来同样一段意思中文花的 token 常常是英文的 2 到 5 倍。token 花得多后果很实际按 token 计费更贵、同样的上下文窗口能装的内容更少。这也是新一代模型比如 LLaMA 3 那批专门往词表里加常见中日韩字符的原因——把常用汉字先合并好省 token也减少一个词被拆散导致理解变差的问题。采样概率直觉第四节说的概率分布 采样落到代码上是四步模型对词表里每个 token 吐一个原始分数logit→ 除以 temperature 缩放 → 过 softmax 变成加起来等于 1 的概率 → 从这个分布里采样一个 token。temperature 越低softmax 后的分布越尖概率最高的那个几乎必胜temperature 越高分布越平冷门候选的机会上来temperature 趋近 0就等于永远选最可能的那个也叫贪心解码。实际产品里还会叠 top-k、top-p 这类截断手段先把候选池砍小再抽防止高温度下跑得太偏。9. 收束接龙接出了智能回到开头那个反差。能写诗、改代码却算不对 3 位数乘法——现在你知道了这两件事在它那里是同一台机器都在预测下一个 token。写诗是顺着语感接龙算乘法也是顺着见过的算式接龙——只是接数学答案时它没有计算器那套精确规则兜底于是翻车。动手用Exel做一个GPThttps://download.csdn.net/download/houwenjin/93292327
返回列表