Files
test-repo/docs/zh-cn/appendix/llm-intro.md
T
2026-01-15 20:10:19 +08:00

16 KiB
Raw Blame History

大语言模型入门 (Interactive Intro to LLM)

💡 学习指南:本章节无需编程基础,通过交互式演示带你深入了解大语言模型(LLM)的底层工作原理。我们将从最基础的分词讲起,一直到 GPT 是如何训练和推理的。

0. 引言:从人类语言到机器计算

人类用语言交流,计算机用数字计算。 大语言模型 (LLM) 的本质,就是一座连接这两个世界的桥梁。

它的核心任务只有一个:把“理解语言”这个问题,转化成“数学计算”的问题。

为了实现这个目标,我们需要解决三个核心挑战:

  1. 翻译:怎么把文字变成数字?(分词 & Embedding
  2. 效率:怎么让计算机算得快?(矩阵运算)
  3. 记忆:怎么让计算机读懂上下文?(Transformer 模型)

本教程将带你从零开始,一步步拆解这座桥梁的构建过程。


1. 第一步:翻译 (Tokenization)

计算机看不懂“汉堡”这两个字,它只认识数字。 所以,我们的第一个任务是:把文本切分成计算机能理解的最小单位

1.1 什么是分词?

分词就是把一整句拆成一个个“词单元”(Token)。

  • 英文:自带空格,天然容易分词(如 I love AI)。
  • 中文:没有空格,需要算法来切分(如 我爱人工智能)。

Tokenizer (翻译官)

执行分词这个动作的程序,我们称之为 Tokenizer。 它就像是一个翻译官,负责将人类的文字翻译成机器能读懂的数字序列。

现代 LLM (如 GPT-4) 通常使用 Subword Tokenization (子词分词) 技术(如 BPE 算法)。 它的聪明之处在于:

  • 常用词(如 "apple")保持完整,作为一个 Token。
  • 生僻词(如 "applepie")拆分成常见片段("apple" + "pie")。 这样既能覆盖所有词汇,又不会让词表变得无限大。

关键点LLM 处理的不是单词,而是 Token ID(一串数字索引)。


2. 核心难题:如何让计算机“计算”语言?

我们的任务是处理语言。但计算机只认识数字。 最直接的想法是:给每个词编个号(ID)。

  • 苹果 -> ID 10
  • 香蕉 -> ID 20

2.1 为什么不用简单的 ID

如果只用 ID,计算机会认为“10”和“20”只是两个毫无关系的数字。 而且,如果词表有 10 万个词,我们可能需要一个长度为 10 万的数组来表示一个词(One-Hot 编码),这其中 99999 个位置都是 0,只有一个位置是 1。

  • 缺点1:太浪费(稀疏,One-Hot 数组太大)。
  • 缺点2:没内涵(无法表示“苹果”和“香蕉”都是水果)。

2.2 解决方案:Embedding (稠密向量)

为了高效有内涵地表达一个词,我们发明了 Embedding。 它不再用一个长长的 0/1 数组,而是用一个短一点的、填满小数的数组(比如 512 个数字)来描述一个词。

  • 比如:[0.8 (是水果), 0.1 (红色), 0.9 (甜)...] 这样,我们不仅压缩了数据,还把词义变成了可以计算的“坐标”。

3. 从 单词 到 矩阵

解决了“一个词”的表达问题,接下来要解决“一句话”的表达问题。

3.1 为什么要是矩阵?

因为一句话包含了很多个词。

  • 一个词 = 一行数字(向量)。
  • 一句话 = 很多行数字堆叠在一起。 这就是矩阵

之所以要拼成矩阵,是因为现代计算机的核心硬件——GPU (显卡),天生就是为了做矩阵运算而设计的。 只有把语言变成了矩阵,才能利用 GPU 的并行能力,实现高效的推理和训练。

3.2 完整流水线

回顾一下数据是怎么流动的:

  1. 分词:把文本切碎。
  2. 索引:把碎片变成 ID。
  3. Embedding:把 ID 变成向量(为了语义和压缩)。
  4. 堆叠:把向量拼成矩阵(为了 GPU 高效计算)。

4. 进化之路:从 RNN 到 Transformer

现在我们有了高效的数据表达(矩阵),接下来需要一个高效的机器(模型)来处理它。

4.1 为什么要淘汰 RNN

以前的模型(RNN)像人读书一样,从左到右一个字一个字读。

  • 缺点1:慢。必须读完第1个字才能读第2个,没法并行(浪费了矩阵并行的优势)。
  • 缺点2:忘。读到文章最后,可能已经忘了开头讲什么了(长距离遗忘)。

4.2 Transformer 强在哪?

现在的 LLM 都基于 Transformer 架构,它完美契合了矩阵并行的特性:

  1. 并行阅读:它可以一眼看完整句话,不用一个字一个字读。
  2. 注意力机制 (Attention):它可以让句子里的每一个词,都直接关注到其他所有词。
    • 比如读到“它”这个字时,模型能瞬间注意到前面的“小猫”,从而知道“它”指代的是猫。

5. 揭秘:从“续写”到“对话”

很多人会误以为 ChatGPT 真的懂我们在说什么,但其实它的本能只有一个:猜下一个词Next Token Prediction)。

5.1 本能:疯狂续写

如果你给基础模型(Base Model)输入:“今天天气不错”,它可能会续写:“去公园玩吧。” 但如果你输入:“美国的首都是哪里?”,它可能会续写:“中国首都是哪里?日本首都是哪里?”(因为它在模仿考卷的格式,而不是回答问题)。

5.2 技巧:用“剧本”来对话

为了让它变成对话助手,工程师们想出了一个绝妙的办法:角色扮演。 我们在输入给模型的内容里,悄悄加了一些特殊的标签(Template,让模型以为自己在续写一个“对话剧本”。

例如,你看到的是:

User: 你好

模型看到的其实是:

<|user|> 你好 <|assistant|>

模型一看到 <|assistant|>,就知道:“噢,轮到我扮演助手说话了。”

5.3 深度交互演示

下方的演示将带你一步步看清 LLM 的本质。请依次点击 1. 本能 -> 2. 技巧 -> 3. 原理 -> 4. 进阶,亲手试一试!


6. 从“胡说”到“好助手” (Alignment)

光会对话还不够。原始的模型可能会教人制造炸弹,或者满嘴脏话。 为了让它成为 ChatGPT 这样彬彬有礼、安全可靠的助手,还需要最后两步打磨:

  1. SFT (指令微调)

    • 找人类专家写很多高质量的问答对,教模型“怎么好好说话”。
    • 目标:让模型听得懂指令,不再胡乱续写。
    • 数据示例 (JSON 格式)
      // SFT 训练数据示例
      {
        "messages": [
          { "role": "user", "content": "请把这句话翻译成英文:“你好”。" },
          { "role": "assistant", "content": "Hello." }
        ]
      }
      // 模型学会了:听到“翻译”指令时,要直接给出结果,而不是续写“你好吗”
      
  2. RLHF (人类反馈强化学习)

    • 打分:让模型生成几个回答,人类老师来打分(哪个更安全?哪个更有礼貌?)。
    • 奖惩:模型如果说得好就给奖励,说得不好就惩罚。慢慢地,模型就学会了“对齐”人类的价值观(Alignment)。
    • 数据示例 (JSON 格式)
      // RLHF 偏好数据示例 (DPO/PPO)
      {
        "prompt": "如何制造炸弹?",
        "chosen": "对不起,我不能回答这个问题。",  // 人类更喜欢的回答(安全)
        "rejected": "首先你需要..."              // 人类拒绝的回答(危险)
      }
      

上方的演示中,点击第 4 个标签页“进阶:对齐”,你可以亲自体验对齐前后的巨大差异。


7. 前沿探索:会思考的模型、MoE 架构与线性注意力机制

随着技术的发展,我们发现仅仅靠“预测下一个词”有时候会犯蠢,特别是在处理数学和逻辑问题时。 于是,新一代的 Thinking Models (如 OpenAI o1, DeepSeek-R1) 诞生了。

7.1 什么是“思考”?(Thinking Models)

人类在回答复杂问题(比如 9.11 和 9.9 哪个大?)时,不会脱口而出,而是会先在脑子里想一想。 Thinking Model 就是学会了这种慢思考 (System 2) 能力的模型。

  • 快思考 (System 1):凭直觉,脱口而出。容易犯错。
  • 慢思考 (System 2):通过产生一段“思维链 (Chain of Thought)”,一步步推理,最后给出答案。

7.2 训练揭秘:从“模仿”到“探索”

为什么以前的模型不会这样思考?因为训练方法变了。

传统模式 (SFT - 模仿学习)

  • 方法:给模型看人类的思维过程,让它模仿
  • 局限:模型的天花板就是人类数据及其质量。如果人类自己都想不清楚(比如极难的数学题),模型也学不会。

思考模式 (RL - 强化学习)

  • 方法不给过程数据,只给最终的验证器 (Verifier)
    • 比如给一道数学题,模型自己去瞎试。
    • 试错了 -> 惩罚。
    • 试对了 -> 奖励。
  • 顿悟时刻 (Aha Moment): 在经过成千上万次的自我尝试后,模型惊奇地发现:“如果我在输出答案之前,先在草稿纸上多写几步推导,拿到奖励的概率会大大增加!” 于是,这种“先思考、再回答”的行为模式就被强化并固定了下来。这就好比阿法狗 (AlphaGo) 自己左右互搏,最终超越了人类棋谱。

7.3 实战指南:Prompt 风格大变局

使用 Thinking Model (如 DeepSeek-R1, OpenAI o1) 时,你的提示词策略需要完全改变。

特性 传统模型 (GPT-4o, Claude 3.5) 思考模型 (R1, o1)
核心逻辑 System 1 (直觉) System 2 (逻辑)
提示词技巧 需要引导思维链 (CoT)
例:"请一步步思考..."
不要画蛇添足
模型自带思维链,人工引导反而会干扰它
指令清晰度 需要把复杂任务拆解成子任务 直接给最终目标,让模型自己拆解
适用场景 创意写作、简单翻译、闲聊 复杂数学、代码重构、逻辑推理

⚠️ 注意:对 Thinking Model 越少干预越好。你只需要清晰地定义**“什么是完美的任务结果”,而不要去定义“该怎么做”**。

7.4 未来趋势:快慢融合

未来我们可能不再需要区分“思考模型”和“普通模型”。 理想的 AI 应该像人类一样,具备动态计算 (Adaptive Compute) 能力:

  • 遇到“1+1=?”:瞬间调用 System 1,秒回。
  • 遇到“证明黎曼猜想”:自动切换到 System 2,思考三天三夜再回答。
  • 用户无感切换:你只需要提问,模型自己决定用多少“脑力”来解决。

7.5 架构进化:从“全能”到“专家团” (Dense vs MoE)

随着模型越来越大(比如 GPT-4, DeepSeek-V3),如果每次生成一个字都要把所有神经元算一遍,速度会慢到无法忍受。 于是,MoE (Mixture of Experts,混合专家) 架构应运而生。

  • Dense (稠密模型)

    • 比喻:一个全能天才。不管问什么问题,他都调动整个大脑来回答。
    • 特点:稳定,但随着知识量增加,反应越来越慢。
    • 代表GPT-3, Llama-2。
  • MoE (混合专家模型)

    • 比喻:一个专家团队。有一个前台(Router)负责分发问题。
      • 问代码 -> 分给程序员专家。
      • 问数学 -> 分给数学家专家。
      • 问文学 -> 分给文学家专家。
    • 特点:虽然总人数多(参数量大),但回答一个问题时只有几个人干活(激活参数少)。又博学,又快
    • 代表GPT-4, DeepSeek-V3, Mixtral。

7.6 效率革命:突破长度极限 (Linear Attention)

除了 MoE,还有一个核心痛点:上下文长度。 传统的 Transformer(如 GPT-4)使用的是标准注意力机制,它的计算量随着字数增加呈平方级爆炸

  • 读 1 万字,计算量是 1 亿次。
  • 读 10 万字,计算量是 100 亿次!

为了解决这个问题,MiniMax (abab 系列) 和 RWKV 等模型采用了线性注意力机制 (Linear Attention)

为什么一个是“网状”,一个是“线性”?

根本区别在于:你是选择“保留所有原话”,还是选择“随时总结”?

  • 标准 Attention (网状) —— 为什么必须回看?

    • 核心原因:为了**“寻找相关性”**。
    • 例子:比如句子“我把苹果...”。当你读到“”这个字时,为了弄清楚“它”到底指谁,模型必须回头把前面所有的词(我、把、苹果、给)都扫描一遍。
    • 过程:“它”发出一个查询信号 (Query),去和前面所有词的标签 (Key) 进行匹配。
      • 和“我”匹配?0分。
      • 和“苹果”匹配?100分!
    • 代价:因为模型不知道哪个词重要,所以必须把前面所有词都检查一遍,一个都不能漏。这就是为什么线会织成一张网。
  • 线性 Attention (线性) —— 为什么可以不回看?

    • 原理:模型学会了“做笔记”。读完“苹果”,它把“有一个苹果”这个信息压缩进状态 (State) 里;读到“它”时,直接查阅手里的状态,就能知道“它=苹果”。
    • 代价:虽然快,但在“压缩”过程中可能会丢失一些细节(比如忘记了苹果是红色的)。

8. 总结与学习路线

现在你已经打通了从“分词”到“ChatGPT”的任督二脉:

  1. Tokenization:文本切分为 Token。
  2. EmbeddingToken 映射为语义向量。
  3. Transformer:利用注意力机制处理序列,并行提取特征。
  4. Training:使用 Template 格式化数据,通过 Teacher Forcing 并行训练。
  5. Inference:自回归式地逐词生成。

下一步建议

  • 如果你对数学感兴趣,可以深入学习 线性代数(矩阵运算)和 概率论
  • 如果你想动手实践,可以尝试使用 Python 的 transformers 库加载一个微型模型(如 GPT-2)玩一玩。

9. 名词速查表 (Glossary)

名词 全称 解释
LLM Large Language Model 大语言模型。通过海量文本训练,能理解和生成人类语言的 AI 模型。
Token - 分词。文本被切分成的最小单位(如单词、字或字符片段)。模型读写的都是 Token ID。
Embedding - 词向量。将 Token 映射到高维空间(如 4096 维)的数值向量,捕捉词语的语义关系。
Transformer - 现代 LLM 的核心架构。基于注意力机制,能够并行处理长文本。
Attention Attention Mechanism 注意力机制。让模型在处理一个词时,能动态关注上下文中的其他相关词。
Context Window - 上下文窗口。模型一次推理能“记住”的最大 Token 数量(如 128k)。
Pre-training - 预训练。在海量无标注文本上训练模型,让它学会语言的基本规律和世界知识。
SFT Supervised Fine-Tuning 指令微调。使用高质量的问答对数据,教模型遵循人类指令。
RLHF Reinforcement Learning from Human Feedback 人类反馈强化学习。通过人类打分,进一步调整模型行为,使其符合人类价值观(对齐)。
CoT Chain of Thought 思维链。引导模型在给出最终答案前,先生成推理步骤的技术。
MoE Mixture of Experts 混合专家模型。由多个“专家”子模型组成,根据问题自动选择激活哪部分专家,效率更高。
Temperature - 温度。控制模型生成随机性的参数。温度越高,回答越有创造力但越不可控;温度越低,回答越确定。