第 1 章 从一次对话说起:大模型到底在做什么
本章导引
你大概率已经用过 ChatGPT、DeepSeek 或类似的工具:让它写一封邮件、解释一份化验单、翻译一段文献,它几乎总能给出像模像样的回答。但它到底是什么?那个"会说话的机器"内部发生了什么?本章不急于抛出公式,而是从你最熟悉的体验出发,先建立一张全景地图——大模型在做什么、它是怎么做到的、它擅长什么又做不好什么。
1.1 你已经见过它了
如果你打开过任何一个大模型对话产品,比如网页版的deepseek,豆包,输入"帮我用通俗的话解释什么是胆固醇",它会流畅地生成一段回答,讲清楚低密度脂蛋白和高密度脂蛋白的区别,顺便叮嘱你注意饮食。你可能会觉得:它好像真的"懂"医学。
但请注意一个细节:它的回答不是一次性出现的,而是一个字、一个字地蹦出来。这个看似不起眼的现象,恰恰是理解大模型一切行为的钥匙。这一章,我们就从这把钥匙开始。
那么,这个"一个字一个字蹦出来"的过程,背后到底在做什么?
1.2 一个字一个字蹦出来:它在做什么
让我们做一个很小的思想实验。请你把下面这句话补完整:
今天天气很___
你的脑海里大概浮现出"好"或者"差"。你并不是真的去查了天气预报,你只是凭经验知道:在中文里,"今天天气很"后面接"好"的概率,远远高于接"苹果"。
这,就是大模型在做的事情——预测下一个词。
给定已经出现的一段文字,大模型会计算出"下一个最可能是什么",然后把这个词接上去;再以新的、更长的文字为输入,预测下一个词,如此循环。你在屏幕上看到的"一个字一个字蹦出来",正是这个循环过程的外在表现。当你让它写一封邮件时,它其实是在不断地"接龙":每一步都根据前面已经写下的内容,猜下一个字该是什么。当然了,实际大模型的工作肯定不会这么原始,但是就原理来说没有任何区别。
这里有一些关键认知,值得你在阅读全书时反复回想:大模型并不是先"理解"了你的问题,再去"组织"答案。它从头到尾只在做一件事——根据上文,预测下一个词。 目前为止,大语言模型仍然做不到因果推理,有研究表明,模型有时会先决定回答的结果,然后再根据结果去输出一步步看似合理的推导流程。至于这个预测为何能产生看起来有理有据的回答,是下一节要解释的,也是整本书想要回答的核心问题。
下面这个演示让你亲手体验"预测下一个词"的过程。每次点击一个候选词,它就会被接上去,然后模型根据新的文本重新预测——这就是"一个字一个字蹦出来"的内部循环。你也可以点击"自动生成",让模型自己接龙。
下面的折叠内容会包含一些术语,可以不用细究,另外,下方选择真实模型的话会需要下载一段时间,建议先选择模拟。由于模型参数量小,生成的句子可能也不会很流畅。
本演示使用的模型(点击展开/折叠)
演示默认使用基于统计的 n-gram 模拟引擎(无需下载)。你也可以点击组件中的"加载真实模型"按钮,切换到 Qwen2.5-0.5B-Instruct 真实模型,在浏览器中本地运行推理。
| 属性 | 数值 | 说明 |
|---|---|---|
| 参数量 | 5 亿(0.5B) | 每个参数是一个浮点数,量化后约需 500MB 存储 |
| 网络层数 | 24 层 | Transformer 解码器层数,数据逐层加工 |
| 隐藏维度 | 896 | 每层内部向量的宽度 |
| 注意力头数 | 14 | 并行关注上文不同位置的能力 |
| 词表大小 | 151,936 | 模型认识的所有 token 数量 |
| 量化精度 | 4-bit | 每个权重用 4 比特存储(原始 16-bit 压缩到 1/4) |
| 推理框架 | ONNX Runtime Web | 通过 WebGPU(GPU 加速)或 WASM(CPU)在浏览器中执行 |
从输入到输出的完整过程:
- 分词:输入文本被切分为 token,每个 token 查表得到一个整数 ID。例如"今天天气很"→ 5 个 token ID。
- 嵌入:每个 token ID 映射为一个 896 维向量(可以理解为一个有 896 个数字的坐标),编码该词的语义信息。
- Transformer 计算:这组向量依次通过 24 层 Transformer Block。每层包含自注意力机制(让每个词"看到"上下文中其他词)和前馈网络(对注意力结果做非线性变换)。
- 输出 logits:最后一层输出一个形状为
[1, 序列长度, 151936]的张量——即对词表中每个 token 打一个原始分数(logits)。 - Softmax:取序列最后一个位置的 logits(151936 个分数),经 softmax 归一化为概率分布(所有概率之和为 1)。
- 选取候选:按概率从高到低排序,取前 6 个 token 展示在界面上。点击其中一个,它会被拼回原文,然后从第 1 步重新开始。
1.3 它"读"过多少:一个关于规模的直觉
"预测下一个词"听起来简单得近乎幼稚——这真的能产生智能吗?关键在于一个字:多(所谓的scaling law)。
以 GPT-3 为例,它在训练阶段"读"过的文本,大约是 4990 亿个 token(token 可以先粗略理解为"词",或者说,大模型能够直接处理和理解的“词”)。这个数字大得没有实感,我们换算一下:它大约相当于 86 万本《西游记》。人生不过三万天,就算你不吃不睡、每天读完一本《西游记》,也要读上 28.6 辈子 才能读完它看过的材料 [1]。
当一个程序把人类有史以来写下的海量文本都"读"了一遍之后,它对"在某种上下文里,接下来通常会出现什么"的判断,就会准得惊人。语言里藏着规律——语法是规律,常识是规律,"问诊之后通常会给出建议"也是一种规律。大模型把这些规律,连同规律里承载的知识,一股脑地学进了它那堆数字参数里。
所以,与其说大模型"懂"医学,不如说它"见过太多医学文本,于是知道在病人描述症状之后,一个称职的回答通常会包含哪些内容"。这个区别很重要,它会决定你该如何信任它、如何使用它——我们会在第二层详细讨论。需要注意的是,这不代表模型无法给出正确的回答,这种区别主要是让你对大模型的工作有更准确的认识。
1.4 打开黑盒:从文字到回答,中间发生了什么
现在,你大致知道大模型在"预测下一个词",也知道了它凭什么能预测得这么准。但"预测"这两个字背后,到底发生了什么?我们先把那个神秘的"黑盒"打开一条缝,看一眼全景。
当你输入一句话、大模型开始生成回答时,数据会经历这样一段旅程:
把每一步说人话:
- 切成小块(Token):模型不直接认字,它先把你的输入切成一个个小单元,比如"胆固醇"可能被切成"胆"和"固醇"。
- 变成数字:每个小块被查表换成一串数字(向量)。你可以理解成给每个词发一张"身份证",身份证上记录着它的"含义坐标"。用术语来讲的话,这步可以叫做词嵌入(我们可以想象有一个多维的空间,每个token都可以映射到其中,这个转变的过程就相当于将这个token“嵌入”到这个空间的过程,直观来说就是将一个数字转变为一个有很多数字的向量)。
- 送入大脑(Transformer):这串数字进入一个叫 Transformer 的网络,在里面翻来覆去地处理很多层。这是大模型最核心的部分。
- 算出概率:处理完后,模型对词表里每一个候选词打一个分,表示"下一个是它的可能性有多大"。
- 选一个、接上去、再来一遍:根据概率选一个词(通常选概率高的,但也可以带点随机),接在后面,然后把新的整段文字重新喂回去,进入下一轮。
你看,这一整段旅程里,没有任何一步是"魔法"。每一步都是确定的、可解释的计算。本书的第一层,就是把这张地图上的每一站,一个一个讲清楚。你不需要现在就理解每一步——记住这张全景图就够了。
1.5 它能做什么,不能做什么
在深入细节之前,有一件事比"它怎么工作"更实用:先建立对它的合理预期。很多对大模型的失望,都来自预期错位。而要建立准确预期,需要看清两件事——这个模型本身擅长什么,以及它是"裸奔"着单打独斗,还是被套上了一层外壳。
先看原生大模型:它的边界在哪
所谓"原生大模型",就是模型本身——文本进、文本出,回答完一个提问就停下。它两次回答之间没有记忆,也不会自己去查资料、算算术或执行代码。把它单独拎出来看,能力边界大致是:
它比较擅长的:
- 与语言打交道的事:改写、摘要、翻译、润色、解释概念
- 从大量文本里提取和整理信息
- 写常见的代码、解释报错
- 基于它"读过"的内容回答常识性问题
它不太擅长的:
- 需要精确计算的事(它本质是在"猜"下一个词,不是在算算术——让它直接算药物剂量很容易出错)
- 需要绝对可靠的事,比如确诊一个病、做一个法律判断
- 它训练数据截止之后才发生的事(它不知道"今天"的最新诊疗指南)
- 复杂的多步规划与执行
一句话总结:把原生大模型当成一个读过海量书籍、博学但会自信地犯错、且手无寸铁的研究助理。 它的每句话都值得听,但没有一句可以不经核实就直接用于关键决策。
而且,不同模型的强项并不一样
上面这份"擅长 / 不擅长"只是大方向。具体到某个模型,强项会因训练数据和设计取向而不同:有的更会写代码,有的更会做数学推理,有的中文表达更地道,有的长文本处理更强。业界用一批标准化的"考试"来量化这些方向,常见的有:
| 评测 | 衡量的方向 |
|---|---|
| MMLU | 跨 57 个学科的综合知识问答 |
| HumanEval | 写出的代码能否通过测试用例 |
| GSM8K | 小学级别的数学推理 |
| GPQA | 研究生级别的科学推理 |
| Chatbot Arena | 真人盲测投票的综合体感排名 |
所以"哪个模型更好"往往没有标准答案,只有"在你关心的那个方向上谁更强"。
边界不是固定的:harness 登场
这里有个关键转折——上面那些短板,很多并不是"大模型"这个概念的宿命,而是"原生大模型"的局限。一旦你给模型套上一层外壳,它的能力边界就会大幅外扩。这层外壳,业界叫 harness(字面理解为约束即可)。
一句最简洁的定义:Agent = 模型 + Harness。除了模型本身,围绕它的一切都是 harness。 它是套在模型外面的软件脚手架——那个不断"调用模型→解析它想用什么工具→执行工具→把结果喂回去→再调用"的循环,那些给模型装上的工具(计算器、代码执行、联网搜索、调用 API),那套跨会话的记忆,以及出错时的纠错与护栏 [7][8]。
换句话说,原生模型只能"说",harness 让它能"做"。它如何补上原生短板,一目了然:
| 原生大模型的短板 | harness 给了它什么 | 效果 |
|---|---|---|
| 算不准精确数学 | 计算器 / 代码执行 | 模型列算式,工具负责算 |
| 不知道今天的新信息 | 联网搜索 / 检索(RAG) | 先查再答,基于事实 |
| 两次对话间没记忆 | 记忆 / 持久存储 | 记住你之前的病情与偏好 |
| 只会输出文字 | 工具调用(发邮件、查库、调 API) | 从"会说话"到"会干活" |
| 复杂多步任务容易乱 | 规划循环 + 纠错 + 进度跟踪 | 拆步、纠错、逐步推进 |
一个重要的提醒:harness 拓展边界,但不消除本性
虽然如此,也不要对 agent 产生新的误解:harness 拓展的是模型的能力边界,却没改变它的概率本性。
模型还是会幻觉——哪怕 harness 给了它搜索工具,它也可能把搜到的事实拼接错;harness 能让它算对一道算术题,却管不住它推理时的一时"嘴快"。所以更准确的心智模型是:agent 是一个"手眼齐全、但仍会自信犯错"的研究助理——比原生模型能干得多,但它的每一句结论、每一次操作依然需要你的核查,尤其在医疗、法律这类容错率极低的场景。
实际上经过了多年的发展,现在业界先进模型往往会对harness做专门的适配和训练,你现在不用去了解具体是怎么做的,只需要理解模型和harness的联系越来越紧密 ,甚至可以说是不可分割的。
1.6 这份文档会带你走多远
最后,说说这份文档本身的安排,好让你心里有底。全书分三层,循序渐进:
- 第一层 · 建立直觉:搞清楚大模型到底在做什么、怎么做到的。从 Token、向量、Transformer,到训练和"涌现"。
- 第二层 · 理解边界:搞清楚它擅长什么、做不好什么、为什么会"一本正经地胡说八道"(幻觉),以及怎么更好地使用它。
- 第三层 · 走向实践:如果你想把大模型用到自己的专业领域或产品里,这里有开源生态、模型选型、RAG、微调、部署等入门地图。
还有一句很重要的话想先告诉你:你不需要先懂数学,才能读懂这本书。 凡是出现公式的地方,我们都先用大白话讲清楚直觉,公式只是给愿意看精确版本的读者准备的"加餐",跳过它,你依然能抓住核心。别让一个符号挡住你了解这个时代最重要技术的路。
不过,数学和计算机语言仍是不可或缺的描述语言,如果你想真正的深入思考大模型,我还是会建议你学习一些简单的数学和计算机知识。
1.7〔深入·可选〕如果你想更精确:概率的语言
这一节是给"想看看严谨版本长什么样"的读者准备的。如果此刻你只想先建立直觉,完全可以跳过,等读完第一层再回来看。
前面我们说大模型在"预测下一个词",用更精确的语言讲,它建模的是一个条件概率——在已经出现
这里
进而,一整句话
你会发现,这一节的公式,无非是把 1.2 节的"接龙"直觉,换成了精确的数学语言。直觉在先,形式化在后——这也是全书对待公式的方式。这一思想最早由 Shannon(1948)在《通信的数学理论》中奠定 [2]。
用数学表达的问题在于,复杂性隐藏在简洁的表达之后,对条件概率的建模是一件非常复杂的事。现实中总是会有各种各样的问题,如果不深入了解,最终也只是雾里看花,见不得全貌。
1.8 简短的历史脉络
把镜头拉远,"对语言进行概率建模"这件事,比大模型早得多。
- 1913 年,马尔可夫用统计方法分析普希金的《叶甫盖尼·奥涅金》,被视作语言建模的最早雏形 [3]。
- 1948 年,Shannon 把自然语言视为随机过程,提出用统计方法估计词序列的概率,奠定了语言建模的理论基础 [2]。
- 20 世纪后半叶,n-gram 等统计语言模型在语音识别、机器翻译里广泛应用,但受限于"只看前面几个词"和"把每个词当成孤立符号"。
- 2003 年,Bengio 等人提出神经概率语言模型,让每个词变成一串连续的向量,"猫"和"狗"在模型眼里终于有了相似性 [4]。
- 2017 年,Vaswani 等人提出 Transformer 架构,用"注意力机制"取代循环结构,让模型能并行处理、能直接看到任意两个词之间的关系 [5]。
- 2020 年至今,GPT-3 及其后继者把参数规模推向千亿、训练数据推向万亿 token,展现出此前小模型不具备的"涌现"能力 [6]。
你会发现,从 Shannon 到今天的千亿模型,核心思想——对语言进行概率建模、预测下一个词——其实一脉相承。变的,是模型的容量、数据的规模和训练的方法。
本章小结
- 大模型最核心的动作,是根据上文预测下一个词,然后把预测结果接上去、循环生成——你在屏幕上看到的"一个字一个字蹦出来",就是这个过程。
- 它之所以能预测得准,是因为"读"过海量文本(量级相当于 86 万本《西游记》),把语言里的规律和知识都学进了参数。
- 数据在模型里的旅程是:文字 → 切成 Token → 变成数字向量 → 经过 Transformer → 算出下一个词的概率 → 选一个接上去 → 重复。本书第一层会逐站展开。
- 原生大模型擅长语言类与模式识别类任务,但不擅长精确计算、不保证绝对可靠、不知道训练截止后的事;而且不同模型强项不同(代码 / 数学 / 中文等,靠 MMLU、HumanEval 等评测衡量)——把它当"博学但会自信犯错的研究助理"。
- 给模型套上 harness(工具、记忆、检索、规划循环)能大幅外拓能力边界,从"只会说"变成"会做事";但 harness 拓展的是能力,不改变模型的概率本性,幻觉与自信犯错依然存在。
- 公式只在需要精确时出现,且总在直觉之后;从 Shannon(1948)到今天的千亿模型,"预测下一个词"的核心思想始终未变。
参考文献
[1] 通往 AGI 之路.《入门大模型的简要学习清单》/ 字节跳动《走入 AI 的世界》. https://www.waytoagi.com/zh/question/66037
[2] Shannon, C. E. A Mathematical Theory of Communication. Bell System Technical Journal, 27(3): 379-423, 1948. https://people.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf
[3] Markov, A. A. An Example of Statistical Investigation of the Text Eugene Onegin Concerning the Connection of Samples in Chains. Bulletin of the Imperial Academy of Sciences of St. Petersburg, 1913.
[4] Bengio, Y., Ducharme, R., Vincent, P., & Jauvin, C. A Neural Probabilistic Language Model. Journal of Machine Learning Research, 3: 1137-1155, 2003. https://www.jmlr.org/papers/v3/bengio03a.html
[5] Vaswani, A., Shazeer, N., Parmar, N., et al. Attention Is All You Need. Advances in Neural Information Processing Systems (NeurIPS), 2017. https://arxiv.org/abs/1706.03762
[6] Brown, T. B., Mann, B., Ryder, N., et al. Language Models are Few-Shot Learners. Advances in Neural Information Processing Systems (NeurIPS), 2020. https://arxiv.org/abs/2005.14165
[7] Anthropic. Agent Harness Design: 3 Patterns for Harnessing Claude's Intelligence. https://claude.com/blog/harnessing-claudes-intelligence
[8] HuggingFace AI Agent 词汇表(经 51CTO 整理):《Model / Scaffold / Harness / Agent 的区分》. https://www.51cto.com/article/844978.html