第2章:大模型是什么

本章解决的核心问题:什么是「大模型」?「大」到底指什么?神经网络和参数是什么意思?一个模型是怎么从海量文本里学出「智能」的?读完这一章,你不再是「知道 AI 能聊天」的外行——你开始理解它内部是怎么运作的。


2.1 先给你一个整体画面

在深入任何技术细节之前,先用一个比喻把整个大模型的工作方式装进脑子里。

想象你走进一间巨大的图书馆,里面有地球上出版过的所有书。一个孩子坐在图书馆中央,他既不认字,也不会说话。但他的任务很离奇:旁边的人从书架上抽取一页纸,盖住最后几个词,让他猜被盖住的是什么。 猜错了,旁边的人告诉他正确答案;猜对了,他也知道「对了」。

这个孩子每天猜 24 小时,连续猜了好几个月——把图书馆里每一个书架、每一本书、每一页、每一个段落、每一个句子都猜了一个遍。每次猜对他都在脑中的「参数」里强化某些连接,猜错就削弱。

到最后,这个孩子虽然不知道自己脑中的连接长什么样,但他已经有了一个惊人的能力:你给他一句话的开头,他能以惊人的准确率补完后面的内容。

这就是大语言模型——一个超级复杂的「下一个词预测器」

这个比喻的每个要素都对应着技术现实中对应的概念:

比喻 现实
图书馆里的书 训练数据(互联网文本、书籍、代码等)
孩子脑中不断调整的「连接」 模型的参数(权重)
猜对/猜错后的调整 反向传播 + 梯度下降(训练算法)
猜下一个词这个任务 自监督学习(LLM 的核心训练方式)
猜了几个月 训练过程(GPT-3 级别的模型需要数月的 GPU 集群运算)

下面,我们逐个拆解这些概念。


2.2 神经网络:一个极其简化的「脑细胞模拟」

2.2.1 从一个神经元开始

1943 年,神经科学家麦卡洛克和数学家皮茨发表了一篇论文,提出了人类历史上第一个人工神经元的数学模型。它的结构出奇地简单:

flowchart LR
    X1[x₁] -->|w₁| N[Σ 加权求和]
    X2[x₂] -->|w₂| N
    X3[x₃] -->|w₃| N
    N --> AF[激活函数]
    AF --> O[输出 y]

工作流程

  1. 输入信号(x₁, x₂, x₃, ...)进来,每个信号有一个权重(w₁, w₂, w₃, ...)。
  2. 神经元把「每个输入 × 它的权重」加起来,得到一个总数。
  3. 这个总数经过一个激活函数(决定要不要「激活」——也就是输出还是不输出),变成最终的输出。

用一个生活化的例子:你在决定「今天要不要去跑步」。

输入信号 权重 解释
天气晴朗 +5 天好想跑
昨晚没睡好 -3 累了不想跑
朋友约你一起 +4 有人一起有动力
空气质量差 -6 对身体不好

你把所有输入乘以权重加起来:5 + (-3) + 4 + (-6) = 0。如果激活函数的阈值是「>0 就去跑」,那么结果为 0,你的神经回路决定「不去」。

这个模型极其简化——真实的大脑神经元比这复杂无数倍。但就是这种简化模型的大量堆叠,产生了令人震惊的智能行为。

2.2.2 为什么叫「深度」学习

把成千上万个这样的「人工神经元」连接起来,一层一层地堆叠,就得到了神经网络

flowchart TB
    subgraph input[输入层]
        I1[像素 1]
        I2[像素 2]
        I3[...]
        I4[像素 N]
    end
    subgraph hidden1[隐藏层 1]
        H1a[●]
        H1b[●]
        H1c[●]
    end
    subgraph hidden2[隐藏层 2]
        H2a[●]
        H2b[●]
        H2c[●]
    end
    subgraph output[输出层]
        O1[猫]
        O2[狗]
        O3[鸟]
    end
    I1 & I2 & I3 & I4 --> H1a & H1b & H1c
    H1a & H1b & H1c --> H2a & H2b & H2c
    H2a & H2b & H2c --> O1 & O2 & O3

「深」就是指隐藏层的数量多。一个只有 2-3 层的网络是「浅层网络」,AlexNet(2012)有 8 层,ResNet(2015)做到了 152 层,而今天的大语言模型(Transformer)动辄有几十到上百层。

直觉:层数越多,模型能表达的「抽象层次」就越多,能学到的规律就越复杂。但层数多了也会带来训练困难——梯度消失、梯度爆炸等问题,我们后面会提到。


2.3 参数:模型「学会」的东西

2.3.1 参数就是权重

在上面那个神经元的例子里,每个输入信号都有一个权重(w₁, w₂, w₃...)。在一个有几百万、几十亿个神经元的网络里,这些权重加起来就是所谓的参数

参数 = 可调整的旋钮。 训练的过程 = 反复拧这些旋钮,让模型的输出越来越接近正确答案。

参数的数量决定了模型的「容量」——它能记住多复杂的模式。

2.3.2 参数量的量级

模型 参数量 发布年份 形象类比
LeNet-5(手写数字识别) 6 万 1998 一个中等 Excel 表格
AlexNet(图片分类) 6000 万 2012 一个 U 盘能装下
BERT-base 1.1 亿 2018 几百 MB 文件
GPT-2 15 亿 2019 几 GB 文件
GPT-3 1750 亿 2020 几百 GB(仅参数存储)
GPT-4 未公布(传 ~1.8 万亿) 2023 几个 TB
DeepSeek-V3 6710 亿(MoE) 2024 分布式存储

MoE(混合专家)的特别说明:像 DeepSeek-V3 这样的模型用了「混合专家」架构——它的总参数量有 6710 亿,但每次推理只激活其中一小部分(约 370 亿)。这就像一家公司有 6710 名员工,但完成一个任务只需要调动 370 人。我们在第4章会再提到。

2.3.3 参数不是「知识库」

这是一个非常常见的误解:以为模型把训练数据「存」在了参数里,需要的时候再「调出来」。不是这样的。

参数里存的不是原文,而是统计规律。模型不会一字不差地记住「中国首都是北京」,而是学到了(或者说调整了参数)这样一个特征:当前面一堆词涉及「中国的首都是哪里」时,输出「北京」这个词的概率非常高。

你可以把参数想象成被压缩到极致的世界模型——它不是一本百科全书,而是一张无比精密的「语言概率地图」。你在这个地图上随意走,每到一个路口,模型就根据前面走过的路,给你几个「接下来最可能往哪里走」的选项。


2.4 训练:模型是怎么「学」的

2.4.1 核心任务:下一个词预测

LLM 的训练任务出奇地简单——Next Token Prediction(下一个 token 预测)

给模型一段文本的前半段,让它猜接下来的 token 是什么。猜错了就调整参数,让模型下次更接近正确答案。

输入:[今天] [天气] [真]
模型要猜:下一个 token 是什么?

可能答案:
"好"    (概率 0.47)
"热"    (概率 0.23)  
"不"    (概率 0.12)
"冷"    (概率 0.06)
...

如果训练数据中下个词是「好」,那就告诉模型:「你的参数应该让你在类似情况下给『好』更高的概率」。通过数百万亿次的这种微调,模型逐渐学到了语言的结构、事实、推理模式——都蕴含在「下一个词是什么」这个看似幼稚的问题里

2.4.2 训练三件套:前向传播 → 计算损失 → 反向传播

每一轮训练包含三步,像一个极其枯燥但有效的循环:

flowchart LR
    A[① 前向传播
输入数据 → 模型输出
「模型猜一个答案」] --> B[② 计算损失
把模型的答案和
标准答案做对比
算出「差多远」] B --> C[③ 反向传播
从输出层往输入层
逐层计算每个参数的
「责任大小」然后调整] C --> A

第一步:前向传播(Forward)

输入数据从第一层走向最后一层,每一层的神经元按当前的权重计算并传递信号,最终产生一个输出(预测结果)。这一步只是「算」,不改变任何参数。

第二步:计算损失(Loss)

把模型的输出和「标准答案」做对比,用一个数学公式(损失函数)算出「你错了多少」。比如模型预测下一个词是「热」的概率是 23%,但标准答案是「好」——那损失值就比较大,表示「你猜得不太对」。

第三步:反向传播(Backpropagation)+ 梯度下降(Gradient Descent)

这是训练的核心魔法。一个形象的比喻:

你在山里,大雾弥漫,看不见路。你想走到山的最低点(损失最小的地方)。你在当前位置跺了一脚,感觉到地面往哪个方向倾斜——梯度告诉你「那边更低」。于是你往那个方向迈一小步——参数更新。然后你再跺一脚,再迈一步。重复重复再重复——直到你走到了谷底。

技术上说:

学习率控制每一步迈多大:

graph LR
    subgraph 学习率太大
        A1[⚫] --> A2[⚫] --> A3[⚫] --> A4[⚫]
    end
    subgraph 学习率太小
        B1[⚫] --> B2[⚫] --> B3[⚫] --> B4[⚫] --> B5[⚫] --> B6[⚫]
    end
    subgraph 学习率适中
        C1[⚫] --> C2[⚫] --> C3[⚫] --> C4[⚫]
    end

现代训练中,实际用的优化器(如 Adam、AdamW)远比朴素的梯度下降复杂——它们会自适应地调整每个参数的学习率、引入动量(惯性)来加速收敛等。但核心思想不变:算梯度 → 调参数 → 重复

2.4.3 训练数据量级

GPT-3 的训练使用了大约 3000 亿个 token 的文本(不同来源的数据量估计略有出入)。这包括:

数据来源 占比 内容
Common Crawl(过滤后) 60% 互联网网页
WebText2 22% Reddit 上被点赞 3 次以上的链接内容
Books1 / Books2 16% 书籍
Wikipedia 3% 维基百科

GPT-3 的训练用了大约 3640 petaflop/s-days 的计算量(这个单位我们会在第4章解释),在数千块 GPU 上跑了数周到数月。据估计,GPT-3 的训练电费就在百万美元级别。


2.5 规模定律:为什么「大」如此重要

2.5.1 缩放定律(Scaling Laws)

2020 年,OpenAI 发表了一篇极具影响力的论文《Scaling Laws for Neural Language Models》,提出了一个发现:模型的性能(以测试损失衡量)随模型规模、数据量、计算量的增加而有规律地提升,遵循幂律关系

用人话说:把模型做大、用更多数据喂、用更多算力训,效果就会更好——而且这种改善是可预测的。 不存在那种「做到某个程度就没效果了」的天花板(至少到他们研究的范围为止)。

graph LR
    A[更多参数] --> D[更好的性能]
    B[更多数据] --> D
    C[更多算力] --> D

这篇论文直接推动了从 GPT-2(15 亿参数)到 GPT-3(1750 亿参数)的百倍跳跃——背后的逻辑就是:如果缩放定律是对的,那就值得花几千万美元去训练一个更大的模型。

2.5.2 涌现能力(Emergent Abilities)

「大」带来的最让人惊讶的现象是涌现——当模型规模跨过某个阈值后,突然出现了小模型完全不具备的能力。

小模型(< 10 亿参数)基本只会补全句子。但当参数量超过某个临界点(大约 600 亿到 1000 亿),模型开始表现出一系列没人专门教过它的能力:

关键洞察:没人专门给 GPT-3 写「你要学会推理」的代码。推理能力是从「预测下一个词」这个唯一任务中涌现出来的——当参数足够多、数据足够大时,语言统计规律本身包含了推理所需的模式。

这就像一个孩子读了很多书后,不需要专门上过「逻辑课」也能进行基本的推理——因为推理的规律已经蕴含在语言中了。


2.6 Transformer:大模型的核心架构

2017 年 Google 发表的《Attention Is All You Need》是 AI 历史上最重要的论文之一。Transformer 架构几乎完全取代了之前所有的序列模型(RNN、LSTM),成为今天每一款大模型的底层架构。

2.6.1 为什么 RNN 不够好

在 Transformer 之前,处理文本的主流方式是循环神经网络(RNN)。它的工作方式是按顺序一个词一个词地读:

输入:[我] → [爱] → [吃] → [苹果]

第 5 个词的处理必须等第 4 个词处理完;第 100 个词必须等前 99 个词处理完。这有三个致命问题:

  1. 不能并行:必须串行,无法充分利用 GPU 的并行计算能力。
  2. 长距离遗忘:读到第 100 个词时,第 1 个词的信息已经衰减得差不多了(梯度消失)。
  3. 训练慢:串行处理让训练时间变得不可接受,尤其是数据量巨大的时候。

2.6.2 注意力机制:让每个词都能「看到」所有其他词

Transformer 的核心创新是自注意力(Self-Attention)机制。它的思想很简单但极其强大:

在处理一个词的时候,让模型同时「注意」句子中所有其他的词,并根据相关性给每个词分配不同的「注意力权重」。

以「小明把苹果给了小红,她很开心」为例。当模型处理「她」这个词时:

flowchart LR
    subgraph 句子
        W1[小明] --- W2[把] --- W3[苹果] --- W4[给了] --- W5[小红] --- W6[她] --- W7[很] --- W8[开心]
    end
    W1 -.->|注意力:低| W6
    W3 -.->|注意力:低| W6
    W5 -.->|注意力:高| W6

自注意力之所以叫「自」,是因为同一个句子里的词互相看——查询(Query)、键(Key)、值(Value)这三个矩阵都来自同一个输入序列。每个词通过自己的 Query 去和所有词的 Key 做匹配,得到一个注意力分数,然后用这个分数去加权聚合所有词的 Value。

2.6.3 Transformer 的完整结构

Transformer 由两大块组成:

flowchart TB
    subgraph encoder[编码器]
        E1[输入嵌入]
        E2[位置编码]
        E3[多头自注意力]
        E4[前馈网络]
    end
    subgraph decoder[解码器]
        D1[输出嵌入]
        D2[带掩码的多头自注意力]
        D3[交叉注意力]
        D4[前馈网络]
        D5[线性层 + Softmax]
    end
    E1 --> E2 --> E3 --> E4
    D1 --> D2 --> D3 --> D4 --> D5
    E4 -.->|编码器输出| D3

对于 ChatGPT 这样的生成式模型,它只用了解码器栈——一个单向的(从左到右)、掩码的自注意力解码器。它从输入 prompt 开始,生成下一个 token,然后把新生成的 token 追加到序列后面,再生成下一个——如此反复,直到生成结束标记或达到长度限制。

2.6.4 为什么 Transformer 这么成功

优势 解释
并行计算 不像 RNN 必须串行,Transformer 可以同时处理整个序列——GPU 利用率拉满
长距离依赖 无论两个词隔多远,注意力机制都能直接建立联系
可扩展性 架构本身没有瓶颈阻止进一步放大——这是缩放定律发挥作用的前提
通用性 同样的架构可以用于文本(GPT)、图片(ViT)、音频(Whisper)、代码(Codex)、甚至蛋白质折叠(AlphaFold)

2.7 训练 vs 推理:两种完全不同的运行模式

很多人以为模型「一直在学习」——每次和 ChatGPT 对话,它都在变聪明。不是这样的。

flowchart TB
    subgraph training[训练 Training]
        T1[喂入海量数据]
        T2[前向 + 反向传播]
        T3[更新参数]
        T4[得到训练好的模型]
        T1 --> T2 --> T3 --> T4
    end
    subgraph inference[推理 Inference]
        I1[用户输入 Prompt]
        I2[前向传播]
        I3[生成 Token]
        I4[返回给用户]
        I1 --> I2 --> I3 --> I4
    end
维度 训练 推理
干什么 确定参数的值 用已有的参数产生输出
数据流 前向 + 反向(双向) 只前向(单向)
参数 每次迭代都在变 完全固定,不变
算力需求 极其巨大(数千 GPU × 数月) 相对小(但也不小,因为要服务大规模用户)
成本 一个模型可能要花数千万到数亿美元 每次对话几分钱到几毛钱(API 成本)
谁来干 AI 公司(OpenAI、Anthropic、Google 等) 用户每次使用时,AI 公司的服务器

关键结论:开箱即用的大模型是静态的。它不会在和你的对话中变聪明。你今天问了它一个问题,明天再问一遍,它给出的答案好不好取决于它的推理能力——而推理能力在训练结束的那一刻就固定了(直到下一次训练或微调)。


2.8 模型是怎么「说话」的:逐 Token 生成

当你给 ChatGPT 发一条消息「帮我写一首关于秋天的五言绝句」,它并不是在后台检索诗歌数据库然后拼接。它是这样工作的:

  1. 把你的 prompt 转化成一系列 token(见第3章)。
  2. 把这些 token 输入训练好的 Transformer 解码器。
  3. Transformer 计算出一个概率分布——下一个 token 是「秋」的概率 0.31,是「金」的概率 0.17,是「落」的概率 0.09……
  4. 根据采样策略(见第5章)选择一个 token 作为输出——假设选了「秋」。
  5. 把「秋」追加到序列后面,重复步骤 3 → 生成「风」→ 重复 → 生成「萧」→ 重复……
  6. 直到生成一个特殊的结束标记(如 <|endoftext|>)或达到最大长度。
flowchart LR
    P[Prompt: 帮我写一首
关于秋天的五言绝句] --> T1[生成: 秋] P --> T1 T1 --> T2[生成: 风] P & T1 --> T2 T2 --> T3[生成: 萧] P & T1 & T2 --> T3 T3 --> T4[生成: 瑟] P & T1 & T2 & T3 --> T4 T4 --> T5[...]

这个过程叫自回归生成(Autoregressive Generation)——每一步的输出成为下一步的输入,一步一步地「自己写自己」的延续。


本章小结

要点 一句话
神经网络 大量「人工神经元」的堆叠——每个神经元做加权求和 + 激活判断
参数 网络中的「旋钮」——训练过程反复调整这些旋钮的值
训练的核心 下一个 token 预测 → 算损失 → 反向传播调参数 → 重复亿万次
缩放定律 参数越多 + 数据越多 + 算力越多 = 性能越好,且可预测
涌现能力 大到一定程度后,突然出现推理、翻译等小模型完全不具备的能力
Transformer 用自注意力替代串行处理——今天所有大模型的底层架构
训练 vs 推理 训练 = 调参数(极贵,一次性的),推理 = 用参数(相对便宜,每次对话都在做)

下一章预告

现在你理解了模型是怎么「长」出来的——从神经网络基础到训练过程到 Transformer 架构。但你有没有想过一个问题:模型是怎么「读」文字的?

它看到的不是「汉字」和「单词」,而是一串数字。这些数字是怎么来的?为什么同样的中文,有的模型处理起来费劲,有的很顺畅?为什么 API 按「token」计费而不是按「字数」?

第3章:Token


← 上一章 回到目录 下一章 →
第1章:AI 到底是个啥 第3章:Token