第 4 章

大语言模型

在前一章中,我们系统学习了深度学习的核心架构。而大语言模型(LLM)——从 GPT 到 Claude,从 LLaMA 到 DeepSeek——正是深度学习在自然语言领域最璀璨的成果。这一章,我们将深入 LLM 的世界,从基础常识到训练推理,从核心概念到开源生态,完整梳理你需要的所有知识。

在前面我们了解了深度学习的基本架构。接下来我们将聚焦于当前AI世界最耀眼的主角——大语言模型(Large Language Model, LLM)。在深入训练和推理细节之前,我们需要先掌握一些最基本的概念和常识。这些是你跟任何AI从业者聊天时都会遇到的"行话"。

大语言模型不是一个简单的"猜词游戏"。它不是鹦鹉学舌。当你拥有足够大的模型、足够多的数据时,它展现出的是对世界深刻的统计理解——一种压缩的世界模型

—— Ilya Sutskever,OpenAI 联合创始人兼首席科学家

什么是大语言模型?

大语言模型可以理解为一种"超级文本续写引擎"。给它一段文字,它预测下一个词最可能是什么。重复这个过程,就生成了整段回答。但就是这么简单的一件事,当模型规模足够大时,神奇的事情发生了——它"涌现"出了阅读理解、逻辑推理、代码生成、翻译总结等高级能力。

🧩 核心直觉

LLM 本质上是一个巨大的概率分布函数:P(下一个词 | 前面的所有词)。它通过海量文本训练,学会了"在什么上下文中,什么词出现的概率最大"。这个概率分布极其复杂——它编码了语法规则、事实知识、推理模式,甚至文化常识。

📏 什么是"大"?

"大"体现在两个维度:参数量(GPT-3 的 1750 亿,LLaMA-3 的 700 亿)和训练数据量(数万亿 token)。更大的模型 + 更多的数据 = 更强的涌现能力。Size Matters——这是过去几年AI领域最重要的经验法则。

模型架构两大流派:稠密模型 vs 混合专家模型(MoE)

这是大语言模型最根本的架构分野。它决定了模型怎么用参数、怎么算得快、怎么扩展规模。

🧱 稠密模型(Dense Model)

定义:前馈网络(FFN)层的所有参数全部激活——每个输入词元(token)都会经过所有神经元。

  • 代表模型 — GPT-3、LLaMA 系列、Mistral 7B、Qwen 系列
  • 优点 — 架构简单,训练稳定,推理实现容易。每个 token 的计算量是恒定的
  • 缺点 — 参数利用率低:所有 token 都经过所有参数,但大部分可能不需要。扩展规模时计算量线性增长
  • 直觉类比 — 就像一家公司里,所有员工处理每一个任务——小事大事全员出动,资源浪费但管理简单
稠密 FFN:y = W₂ · σ(W₁x + b₁) + b₂ (所有神经元都参与计算)

🔀 混合专家模型(MoE — Mixture of Experts)

定义:FFN 层被替换为多个"专家"子网络(Expert),每个 token 只激活其中一部分专家(通常 top-2)。由一个"路由网络"(Router/Gate)决定该 token 应该交给哪些专家处理。

  • 代表模型 — Mixtral 8×7B、DeepSeek-V2/V3、Qwen2-MoE、GPT-4(推测架构)
  • 优点 — 参数量巨大但计算量持平。以 Mixtral 8×7B 为例:总参数 47B,但每个 token 只激活 7B × 2 专家 ≈ 14B 参数,推理速度和 14B 稠密模型持平,但效果接近 47B
  • 缺点 — 训练不稳定(专家"坍塌"——某些专家学废了);路由负载不均衡;推理需要更多显存(所有专家参数都要加载)
  • 直觉类比 — 就像一家公司里,每个任务只分配给对应领域的专家团队——效率高、专业强,但管理复杂
MoE FFN:y = Σ gᵢ · Expertᵢ(x)  其中 gᵢ = softmax(Router(x))  (只激活 top-k 个专家)

🔁 稠密 vs MoE:一次处理两个词元的对比

假设模型有 8 个"专家"。稠密模型中,每个词元都要经过全部参数;MoE 模型中,每个词元只激活最适合它的 2 个专家。

🧱 稠密模型(Dense) 所有参数全部激活 Token A Token B E1 E2 E3 E4 E5 E6 E7 E8 全部激活 全部激活 A B 🔀 混合专家(MoE) 每个 token 只激活部分专家 Token A Token B Router E1 E2 E3 E8 TOP-2 TOP-2 A B 稠密:计算量 = 参数总量(每个 token 都用全部参数) MoE:计算量 ≈ 参数量 ÷ 专家数 × Top-k(每个 token 只用部分专家) MoE 以更少的计算量实现了更大的模型容量 Mixtral 8×7B:总参数 47B,每个 token 激活 14B → 速度 ≈ 14B 稠密,效果 ≈ 47B 稠密

▲ 左:稠密模型——Token A 和 B 都经过全部 8 个专家(所有参数激活)。右:MoE——Router 为 Token A 分配专家 E1、E3,为 Token B 分配 E2、E8,其他专家闲置。MoE 的参数量更大但计算量更小。

💡 为什么 MoE 越来越流行?

📈 规模扩展红利
MoE 可以在不增加计算量的前提下增加参数量。增加专家数量只需少量额外计算(Router 更大),但模型容量大幅提升。
🔄 专家专业化
研究表明,MoE 的专家会自动专业化——有的专家擅长处理数学问题,有的擅长代码,有的擅长文学翻译。路由网络隐式学习了这种分工。
🚀 推理灵活
推理时可以通过调整 Top-k 值来控制计算量。对简单问题只激活 1 个专家,对复杂问题激活更多——实现"动态计算"。
💸 成本优势
训练 MoE 需要更多显存(加载所有专家参数),但推理成本远低于同等参数量的稠密模型。这也是 GPT-4 推测使用 MoE 的原因之一。

Token:LLM 世界的"原子"

Token 是 LLM 处理文本的基本计量单位。它不是"字"也不是"词",而是一种介于两者之间的子词(Subword)单元。理解 Token 是理解 LLM 一切特性的基础。

🔤 Token 的直觉理解

想象你面前有一段英文文本。Token 化(Tokenization)的任务是:"把这个句子切成若干个小块,每个小块是一个 Token。"常见词("the"、"is"、"and")每个就是一个 Token;罕见词("antidisestablishment")可能被切成多个 Token;中文每个字通常就是一个 Token。

"I love machine learning" → ["I", " love", " machine", " learning"] (4 个 Token)
"我爱深度学习" → ["我", "爱", "深", "度", "学", "习"] (6 个 Token)
"unhappiness" → ["un", "happi", "ness"] (3 个 Token)
💰 Token = 钱
LLM API 按 Token 收费。输入+输出都算。百万 Token 的价格从 $0.15(DeepSeek)到 $15(GPT-4)不等。
📏 Token = 窗口
上下文窗口的大小以 Token 计。128K 上下文意味着模型最多可以"记住" 128,000 个 Token。
⚡ Token = 速度
推理速度以 Tokens Per Second(TPS)衡量。一个 7B 模型在消费级 GPU 上大约 30-50 TPS。
🌐 Token ≠ 语言中立
英文一个词 ≈ 1-2 Token,中文一个字 ≈ 1-2 Token。但某些语言(如韩语、日语)每个字可能需要更多 Token,导致同样的内容更贵也更慢。

LLM 家族三兄弟:Encoder、Decoder、Encoder-Decoder

Transformer 架构有三个变体,分别适应不同的任务类型。理解它们的区别,你就基本理解了市面上所有 LLM 的基因。

🔍 Encoder-Only(编码器)

原理:双向注意力——每个词可以"看见"左右两侧的所有词。天然适合理解类任务

代表:BERT、RoBERTa、ERNIE

擅长:文本分类、命名实体识别(NER)、情感分析、语义相似度

不擅长:文本生成(需要额外加 Decoder 头)

📝 Decoder-Only(解码器)

原理:因果(单向)注意力——每个词只能"看见"左侧的词。天然适合生成类任务

代表:GPT 系列、LLaMA、Mistral、Qwen、DeepSeek

擅长:文本生成、对话、代码生成、翻译、任何"续写"任务

地位:目前绝对主流——几乎所有现代 LLM 都采用 Decoder-Only 架构

🔄 Encoder-Decoder(编码器-解码器)

原理:Encoder 做双向理解,Decoder 做因果生成——两者通过 Cross-Attention 连接。

代表:T5、BART、Flan-T5

擅长:翻译、摘要、文本转换类任务(输入和输出差异较大时)

现状:在 LLM 时代逐渐式微,但在特定任务(如翻译、摘要)上仍有优势

📊 为什么 Decoder-Only 赢了?

2020 年以来的经验表明:Decoder-Only 的因果语言模型在大规模预训练后,涌现出了包括理解、推理在内的几乎所有能力。GPT-3 证明了"纯生成"足以表达所有智能行为。加上 Decoder-Only 训练更简单(只需一个目标函数:下一个词预测)、推理更高效(不需要 Encoder-Decoder 之间的交叉注意力)、扩展更好(纯粹的堆叠层数),它最终成为了 LLM 的主导架构。

模型规模梯队:从几十亿到上万亿参数

不同的参数量级决定了模型的部署方式和使用场景。选择什么规模的模型,是 AI 工程中的核心决策。

📱 小型模型(0.5B - 8B 参数)手机/笔记本

代表:LLaMA-3.2-1B/3B、Phi-3-mini、Qwen2.5-7B、Gemma-2B
部署:手机、笔记本、树莓派。量化后(INT4)可低至 2-4GB 显存。
能力:简单问答、代码补全、文本分类、摘要。适合特定领域微调后使用。
意义:边缘计算的主力——无需联网,隐私好,延迟极低。

💻 中型模型(13B - 34B 参数)消费级显卡

代表:Mistral 7B/8x7B、LLaMA-3-8B/13B、Yi-34B、Qwen2-14B/32B
部署:单卡/双卡(RTX 4090 24GB 或 A100 40GB)。需 4-bit 量化。
能力:较强的推理、代码生成、多语言能力。适合大多数企业级应用
意义:性价比最高的区间——能力不错,硬件门槛适中。

🏢 大型模型(70B - 180B 参数)服务器集群

代表:LLaMA-3-70B、Qwen2.5-72B、Mixtral 8x22B、DeepSeek-V2
部署:4-8 块 A100/H100(80GB)。通常使用 8-bit 量化 + Tensor Parallelism。
能力:接近前沿的推理能力、复杂的指令理解、长篇内容生成。适合高要求的商业场景
意义:目前"好用"与"成本"的最佳平衡点。

🌌 前沿模型(200B+ 参数)超级计算集群

代表:GPT-4(推测约 1.7T MoE)、Claude-3.5(推测约 800B)、Grok-1(314B 稠密)
部署:成百上千块 GPU 进行分布式推理。普通公司无法负担。
能力:目前人类 AI 的巅峰——最复杂的推理、最长的上下文、最小的幻觉率。
意义:前沿探索的引擎——所有中小模型通过蒸馏(Distillation)从这些模型中学习。

开源 vs 闭源:一场影响深远的大模型生态博弈

当前 LLM 世界最火热的话题之一就是"开源还是闭源"。这不仅仅是技术选择,更是商业模式、社区文化、甚至 AI 安全理念的差异。

🌿 开源模型生态

核心理念:模型权重公开,任何人可以下载、部署、微调、研究。

  • LLaMA 系列(Meta)— 开源界的标杆。LLaMA-3.1-405B 是当今最强开源模型
  • Qwen 系列(阿里)— 中文能力极强,生态完善
  • DeepSeek 系列(深度求索)— MoE 先驱,极致性价比
  • Mistral 系列(Mistral AI)— 法国新锐,效率优先
  • Yi 系列(零一万物)— 李开复带队,双语能力出色

优势:可定制、数据安全、无供应商锁定、社区创新。
挑战:推理成本需要自己承担、部署运维复杂。

☁️ 闭源模型生态

核心理念:通过 API 提供服务,用户无法获取模型权重。

  • GPT-4 / GPT-4o(OpenAI)— 综合能力最强,生态最完善
  • Claude 3.5(Anthropic)— 安全对齐最佳,长上下文出色
  • Gemini 2.0(Google)— 多模态能力领先
  • 文心一言 4.0(百度)— 中文场景深耕
  • 通义千问 2.5(阿里,有开源版)— 同时走开源和闭源路线

优势:开箱即用、免运维、持续升级、通常更强。
挑战:成本随用量增长、数据隐私风险、供应商锁定。

开源模型正在以惊人的速度缩小与闭源模型的差距。2023 年初,最强开源模型仅相当于 GPT-3.5 的水平;到了 2024 年底,LLaMA-3.1-405B 已经能与 GPT-4 在许多基准上正面竞争。开源不是"劣质"的代名词——它是 AI 民主化的引擎。

—— AI 开源社区的真实写照

基础模型(Base Model)vs 微调模型(Chat/Instruct Model)

你下载一个开源模型时,通常会看到两个版本:basechat/instruct。它们有什么区别?

📄 Base Model(基础模型)
只经过预训练,没有经过指令微调。它的行为像"文本续写器"——你给它一段话,它继续往下写。不会"回答问题"或"遵循指令"。但它是最"纯净"的版本,适合做进一步的领域微调或研究。
💬 Chat / Instruct Model
在 Base 模型之上做了指令微调(SFT)+ 偏好对齐(RLHF/DPO)。它会以对话形式回应你,遵循指令,拒绝有害请求。这是普通用户使用的版本——你日常使用的 ChatGPT、Claude 都是 Chat Model。
🎯 领域微调模型
在 Base 或 Chat 模型基础上,用特定领域数据(医疗、法律、金融、编程)进一步微调。比如 Medi-GPT(医疗)、CodeLLaMA(编程)。通常比通用模型在特定领域表现更好。

🧪 一个有趣的对比实验

给 Base Model 输入 "User: 什么是梯度下降?\nAssistant:",它不会知道这是在"对话",它只会把这当作"一段文本",然后继续写——可能接着写 "Assistant: 梯度下降是一种..." 也可能写 "User 2: 什么是反向传播?"。而 Chat Model 经过指令微调后,明确知道 "User" 是提问者,"Assistant" 是回答者,它应该以有帮助的助手身份回应。这就是"微调"带来的本质变化。

量化(Quantization):让大模型"瘦身"的魔法

一个 70B 的模型以 FP16(16 位浮点)存储需要 140GB 显存——没有任何一块消费级显卡装得下。量化就是通过降低每个参数占用的比特数来压缩模型。

📦 量化的本质:用更少的比特表示同样的数值

就像用"粗粒度"的尺子量东西——精度降低了,但大致长度还在。量化同理:模型精度略微下降,但体积大幅缩小。

一个参数的存储方式对比 FP16 16 位 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 = 0.7834 (精确) 70B 模型 → 140GB INT8 8 位 0 1 0 1 1 0 0 1 ≈ 0.78 (近似) 70B 模型 → 70GB INT4 4 位 0 1 0 1 ≈ 0.8 (更粗略) 70B 模型 → 35GB

▲ FP16(16位)→ INT8(8位)→ INT4(4位),精度递减但模型体积减半再减半。INT4 量化后的 70B 模型仅需 35GB 显存——单张 4090 即可运行!

🎯 GPTQ

基于逐层量化(Layer-wise Quantization),在少量校准数据上最小化量化误差。INT4 精度损失极低。需要先量化再使用。

🧩 GGUF / llama.cpp

由 llama.cpp 项目推动,专为 CPU/混合推理设计。支持多种量化级别(q2_k, q3_k, q4_k_m, q5_k, q6_k, q8_0)。q4_k_m 是最推荐的性价比配置

⚡ AWQ

激活感知权重量化(Activation-aware Weight Quantization)。识别"重要"的权重通道,给它们保留更高精度。通常比 GPTQ 略好。

💨 Bitsandbytes / QLoRA

QLoRA 让微调量化模型成为可能。模型以 4-bit 加载,训练时保持量化,只微调少量 LoRA 参数。单卡 24GB 可以微调 70B 模型。

🔑 本节速记:LLM 的"常识清单"

稠密 vs MoE
稠密:参数全激活,简单但浪费。MoE:专家路由,参数量大但计算量小,越来越主流。
Token
LLM 的原子单位,决定了成本、窗口、速度。英文约 1 词 = 1-2 Token,中文约 1 字 = 1-2 Token。
参数规模
小 (1-8B) → 中 (13-34B) → 大 (70-180B) → 前沿 (200B+)。越大越强,但成本指数级上升。
Base vs Chat
Base = 续写器,适合二次开发。Chat = 对话助手,日常使用。区别在是否做了指令微调和对齐。
量化
FP16 → INT8 → INT4,体积减半再减半。INT4 量化后 70B 模型只需 35GB 显存。精度损失微小。
开源生态
LLaMA、Qwen、DeepSeek、Mistral 四大开源阵营。与闭源(GPT-4、Claude)差距正在快速缩小。

大语言模型(Large Language Model, LLM)的训练是整个深度学习中最令人兴奋的领域之一。一个LLM从"无"到"有"通常经历以下阶段:

🔤 词元化(Tokenizer)

在训练之前,文本需要先被转换为数字。LLM不使用"字"或"词"作为基本单位,而是使用子词(Subword)。常用算法包括:

  • BPE(Byte-Pair Encoding) — GPT系列使用,将高频字节对合并为子词
  • WordPiece — BERT使用,基于频率分解为子词单元
  • SentencePiece — LLaMA系列使用,语言无关的子词切分(不依赖空格预分词,对中日韩友好)

例如 "unhappiness" 可能被拆分为 ["un", "happi", "ness"] 三个子词。这让模型可以处理未登录词(OOV)。

阶段一:预训练(Pre-training)无监督 · 基础

这是最核心、最耗时的阶段。模型在海量文本数据(数万亿token)上学习语言模式。核心任务是下一个词预测(Next Token Prediction):给定前面所有词,预测下一个最可能的词。

📚 数据来源
Common Crawl网页、维基百科、书籍(BookCorpus)、GitHub代码、网页文章、Reddit讨论等。
🎯 学习目标
自回归语言建模(Auto-regressive LM):最大化 P(xₜ | x₁, x₂, ..., xₜ₋₁),即下一个词的概率分布。
🧮 损失函数
交叉熵损失(Cross-Entropy Loss):衡量模型预测的词分布与真实词的差距。通过反向传播(Backpropagation)更新参数。
⚙️ 训练规模
GPT-3(1750亿参数)在约45TB文本上训练,使用1000+块A100 GPU,训练约34天,耗资约460万美元。

预训练后模型学会了什么?语法、事实知识、推理能力、多语言理解、代码能力、指令跟随雏形——大量 emergent abilities(涌现能力)在预训练阶段就已经出现了。

阶段二:监督微调(SFT)有监督 · 指令

预训练模型虽然掌握了语言,但它只会"续写"文本,不会"回答问题"或"遵循指令"。SFT阶段使用人工编写的高质量指令-回复数据(如InstructPix、Alpaca等数据集),让模型学会以对话形式回应用户。

📝 指令数据
人类专家手写或LLM自动生成的指令对:{"instruction": "解释量子计算", "output": "量子计算利用..."}。
🔄 继续预训练
在指令数据上以较低学习率继续训练(继续预训练),保留预训练知识的同时学会指令遵循。

阶段三:人类偏好对齐强化学习 · 对齐

让模型的回答不仅正确,还要安全、有帮助、符合人类价值观。这是让LLM真正可用的关键一步。主流对齐方法有两种:

🏆 RLHF(基于人类反馈的强化学习)

步骤1:用SFT模型生成多个回复 → 步骤2:人工对回复进行排序 → 步骤3:训练一个"奖励模型(Reward Model)"来预测人类偏好 → 步骤4:用PPO算法微调SFT模型,最大化奖励模型的得分。

这是ChatGPT当年震惊世界的方法。优点:效果好;缺点:训练不稳定、成本高、需要大量人工标注。

✨ DPO(直接偏好优化)

2023年提出的新方法,绕过奖励模型和PPO,直接在偏好数据上优化:让模型的输出分布更偏好"人类喜欢的"回答,同时远离"不喜欢的"回答

DPO有解析解,训练更稳定、更快、更省资源。如今许多新模型(如LLaMA-3.1)已用DPO替代RLHF。

阶段四:后训练与持续学习持续迭代

模型部署后,会根据实际使用反馈持续优化:

  • 持续预训练(Continual Pre-training) — 用更新的数据继续预训练,扩展知识或语言能力
  • 领域微调(Domain Adaptation) — 在特定领域(医疗、法律、金融)数据上进一步微调
  • 上下文窗口扩展 — 用长文本数据训练,将上下文窗口从4K扩展到128K甚至200K+

推理(Inference)是训练好的模型根据用户输入(prompt)生成回答的过程。这看起来简单——"输入文字,输出文字"——但背后涉及复杂的计算过程和大量工程优化。

自回归生成(Autoregressive Generation)

目前主流LLM采用自回归(自回归= "自我回归")的生成方式:模型一次生成一个词元,然后把新生成的词元追加到输入中,再生成下一个。就像"接龙游戏"。

1

输入编码

将用户prompt通过Tokenizer转为词元ID序列 [3201, 8923, ...]

2

Forward Pass

词元序列通过Transformer层,最后一层输出每个位置的词元概率分布

3

采样/解码

从概率分布中按策略选出一个词元(greedy/top-k/top-p)

4

追加 & 循环

将选中的词元追加到上下文,回到步骤2,直到生成结束标记

🔬 3D 交互式 LLM 可视化

想直观地看到一个 LLM 从输入到输出的完整内部构造吗?由 Brendan Bycroft 制作的这个 3D 交互式可视化工具,以 GPT-2(small)架构为蓝本,完整展示了 token 嵌入、位置编码、层归一化、自注意力机制、前馈网络和最终的 softmax 输出——所有 Transformer 核心组件均可 3D 交互探索。

LLM Visualization 点击加载交互式可视化

▲ 点击上方卡片加载交互式可视化。加载后支持鼠标拖拽旋转视角、滚轮缩放、点击各层展开查看详细结构。建议在桌面端 Chrome/Firefox 上使用,首次加载可能较慢。

解码策略(Decoding Strategies)

模型输出的概率分布可能有数千个候选词元,选哪个词决定了生成的质量。主流策略有:

🎯 Greedy Search(贪婪搜索)

每次都选概率最大的词元。优点:确定性、速度快。缺点:容易重复、缺乏多样性。适合需要稳定输出的场景。

🎲 Sampling(采样)

按概率分布随机采样。温度(Temperature)越低越确定,越高越随机。适合创意生成场景。

🔢 Top-k 采样

只从概率最高的k个词元中采样(如k=50)。避免选到极低概率的词,兼顾多样性和质量。

📊 Nucleus Sampling (top-p)

从累积概率达到p的最小词元集合中采样(如p=0.9)。动态调整候选数量,效果通常优于top-k。这是OpenAI的默认策略。

⚡ 推理的核心优化:KV Cache

在自回归生成中,每一步都需要重新计算之前所有词元的注意力。这非常低效——但注意到,之前词元的Key和Value缓存下来,每一步复用即可。这就是KV Cache。

  • 无KV Cache:生成第n个词时,需要重新计算前n-1个词的注意力 → O(n²) 复杂度
  • 有KV Cache:每一步只计算新词元的注意力,复用历史KV → 线性复杂度 O(n)
  • 128K上下文窗口 + 70B参数模型 → KV Cache大约需要20-40GB显存

深入理解:Q、K、V 到底是什么意思?

在注意力公式 Attention(Q,K,V) = softmax(QK^T / √d)V 中,Q、K、V 分别代表什么?很多教程讲到这里就跳到数学公式,让读者一头雾水。让我们用一个图书馆比喻来理解。

想象你在一座巨大的图书馆里查资料。你手里有一个查询关键词(Q = Query),每本书都有一个目录标签(K = Key),而每本书的正文内容就是(V = Value)。你要做的事情是:用你的查询关键词去比对所有书的目录标签,找到最相关的那些书,然后把它们的内容综合起来作为回答。

—— 注意力机制的图书馆比喻
Q = Query(查询)

"我想查什么?"

当前这个词想要寻找什么信息。比如你在理解"它"这个词时,Q 就是"我想找一个前文的代词指代对象"。每个词在计算注意力时都有一个自己的 Q——它决定了"谁对我最重要"。
K = Key(键/标签)

"我是什么?"

每个词对自己的描述。比如"巴黎"这个词的 K 标签可能是"城市-法国-欧洲"。当你用 Q="找地点"去搜索时,"巴黎"的 K 标签会匹配到"地点"这个查询,获得高注意力分数。
V = Value(值/内容)

"我能提供什么信息?"

每个词携带的实际内容。如果某个词的 K 和查询匹配上了,那么这个词的全部信息(V)就会被提取出来,加权融合到当前的理解中。Q 和 K 越相关,这个 V 的贡献就越大。

🔎 QKV 注意力流程:从查询到加权融合

以句子"那只狗追球,它跑得很快"为例。当模型理解"它"时,会计算它与前面每个词的注意力分数,最终"狗"的 V 被大量提取到"它"的理解中。

Q K V 它(Q) 那只(K) 狗(K) 追(K) 球(K) 那只(V) 狗(V) 追(V) 球(V) 0.05 0.72 ★ 0.12 0.11 0.72 0.05 0.12 0.11 softmax(Q·K) → 注意力权重 加权融合 V "那只"极少 + "狗"极多 → 它 = 狗 语义关联: "它"→"狗"最强 Q 和所有 K 做相似度计算 → softmax 归一化 → 作为权重对 V 加权求和

▲ 理解"它"时,Q("它")与所有前面词的 K 做匹配。"狗"的 K 与"它"最相关(分数 0.72),所以"狗"的 V 被大量提取到"它"的理解中。

KV Cache 为什么是推理加速的核心?

理解了 QKV 之后,KV Cache 的意义就一目了然了。自回归生成时模型一个字一个字地蹦——每一步都依赖前面的所有 token:

📊 有 KV Cache vs 无 KV Cache 的对比

假设上下文长度是 1000 个 token,需要再生成 50 个 token。

❌ 无 KV Cache 每一步重新计算全部注意力 生成第2字: 1000 + 1 = 1001 次计算 生成第3字: 1000 + 2 = 1002 次计算 生成第51字: 1000 + 50 = 1050 次计算 总计 ≈ 50 × 1025 ≈ 51,250 次 (每次都要重新算前面 1000+ 个 token) ✅ 有 KV Cache 缓存历史的 K、V,只算新 token 生成第2字: 读缓存 + 1 次新计算 生成第3字: 读缓存 + 1 次新计算 生成第51字: 读缓存 + 1 次新计算 总计 ≈ 50 × 1 = 50 次 (KV 缓存已存好前 1000+ 个 token) 加速 1000 倍+

▲ 有 KV Cache 时,每一步只需计算 1 个新 token 的注意力,历史的 K/V 直接读缓存。复杂度从 O(n²) 降到 O(n),推理速度提升 10 倍以上。

🧮 KV Cache 的显存开销

KV Cache 不是免费的午餐。每个 token 都需要保存所有层的 K 和 V。以 LLaMA-3.1-70B 为例(128K 上下文):

📐 每个 token 的 KV 大小
80 层 × 8 个 KV 头(GQA) × 128 维度 × 2字节(FP16) × 2(K+V) ≈ 320KB/token
📦 128K 上下文的总 KV 大小
320KB × 128,000 ≈ 40 GB — 仅 KV Cache 就占 40GB 显存!
🎯 实际场景
模型参数 140GB + KV Cache 40GB = 总需求约 180GB。这解释了为什么 70B 模型需要 8 块 A100 (80GB)。

进一步加速:PagedAttention 与 FlashAttention

📋 PagedAttention(vLLM)

借鉴操作系统的"虚拟内存分页"思想:将 KV Cache 切成固定大小的"页"(每页存 16 个 token 的 KV),像内存分页一样分散存储、按需分配。

效果:消除内存碎片,KV Cache 内存使用减少 2-3 倍。吞吐对比:比 HuggingFace Transformers 高 24 倍,比 Beam Search 高 3.5 倍。

⚡ FlashAttention

传统 Attention 需要反复从 HBM(高带宽内存)读取 Q、K、V 矩阵做矩阵乘法,带宽是瓶颈。FlashAttention 通过"分块计算 + 重计算"策略,将中间结果存在更快的 SRAM 中,减少 HBM 访问次数。

效果:比 PyTorch 原生 Attention 快 2-4 倍,是目前大多数推理框架的默认选择。

推理加速技术

🚀 量化(Quantization)

将模型参数从FP16(16位浮点)压缩到INT8(8位整数)甚至INT4。模型体积缩小2-4倍,推理速度显著提升,精度损失很小。GGUF/Q4_K_M是流行格式。

🔪 推测解码(Speculative Decoding)

用一个小型"草稿模型"快速生成多个候选词,再用大模型并行验证。小模型错了就回退,对了就接受,整体加速2-3倍。

💡 混合专家(MoE)

如Mixtral、GShard。模型由多个"专家网络"组成,每个词元只激活部分专家。参数量大但计算量小,推理速度大幅提升。

理解LLM,除了知道它怎么训练和推理,还需要掌握一些关键概念和设计理念。

规模

参数(Parameters)

Parameters / Weights
模型的可学习变量总数,决定了模型的"容量"和"知识库"。GPT-3有1750亿参数,LLaMA-3有8B/70B两种规模。参数量越大,模型能力越强,但训练和推理成本也越高。
上下文

上下文窗口(Context Window)

Context Window / Max Length
模型一次能处理的文本长度(以token计)。从最初2K发展到现在的128K、200K甚至更高。窗口越大,模型能"记住"和"参考"的信息越多。
涌现

涌现能力(Emergent Abilities)

Emergent Abilities
当模型规模达到一定阈值后,突然展现出之前不具备的能力。如:指令遵循、思维链推理(CoT)、少样本学习(Few-shot)。小模型没有,大模型突然"开窍"了。
幻觉

幻觉(Hallucination)

Hallucination
模型自信地生成看似合理但事实错误的内容。本质是概率模型在做"最可能的续写"而非"事实查询"。是目前LLM最核心的安全挑战之一。

思维链(Chain-of-Thought, CoT)

2022年Google发现:如果在prompt中给出一个示例,示例中包含"逐步推理过程"(如"让我们一步步思考..."),大模型在复杂推理任务上的表现会大幅提升。这就是思维链。

💭 Few-Shot CoT 示例

用户:小明有5个苹果,吃了2个,又买了3包每包4个的饼干,他现在有多少食物?
模型:小明原来有5个苹果... 吃了2个后剩3个... 买了3×4=12个饼干... 总共3+12=15个食物。答案是15。
用户:一个农场有15只鸡,每只鸡每周下3个蛋。如果有5只鸡跑了,剩下的鸡一个月(4周)下多少蛋?
模型:让我们一步步思考... 还剩10只鸡... 每周下10×3=30个蛋... 一个月30×4=120个蛋。答案是120。

RAG(检索增强生成)

模型内部的知识是静态的(训练截止),而现实世界在不断变化。RAG解决这个问题的思路是:不在模型内部存知识,而是每次回答前临时检索相关信息,把检索结果当作prompt的一部分喂给模型。

1

用户提问

用户输入查询

2

向量检索

在知识库中查找最相关的文档片段

3

构造Prompt

将检索结果 + 用户问题 + 指令组装成prompt

4

模型生成

LLM基于检索内容生成回答

缩放定律(Scaling Laws)

2020年,Kaplan等人发现:模型性能(以损失函数衡量)与参数量、训练数据量、算力三者呈幂律关系。简单来说——模型越大、训练数据越多、算力越强,性能越稳定提升。这一发现指导了后续几乎所有大模型的研发方向。

📈 Chinchilla定律
2022年发现:给定算力预算,存在最优的"参数量-数据量"配比。盲目加大模型而减少数据反而效率更低。LLaMA系列就采用了Chinchilla最优配比。
🧪 注意力即计算
Transformer的自注意力机制允许任意两个位置直接交互,信息可以一步传播。这是它能够高效学习复杂模式的核心原因。
🌐 自监督学习
LLM不需要人工标注标签,只需海量无标注文本,就能通过"下一个词预测"这个自监督任务学到丰富的语言和世界知识。
🧬 世界模型
有观点认为,大规模预训练让模型内部形成了一个对世界的"认知地图"——它不只是学会了语言模式,还学到了事物之间的因果关系。

判断一个大模型不能只看“榜单第几名”。真正有价值的问题是:它能不能在你的任务里稳定、可靠、安全、低成本地完成目标?因此,大模型评估通常要把通用能力、专业能力、事实性、安全性、效率和部署成本放在同一个框架里看。

🧭 一句话标准:好模型 = 能力 × 可靠性 × 成本 × 安全

如果一个模型考试分数很高,但回答经常编造、调用工具不稳定、延迟太高、价格太贵,放到真实业务里依然可能不好用。反过来,一个小模型虽然通用榜单不靠前,但在固定场景中经过微调、RAG 和评测集验证后,可能比大模型更适合落地。

七个维度看清模型强弱

🎯 任务正确率
看模型能不能答对。常用 Accuracy、Exact Match、F1、pass@k、任务成功率等指标。适合选择题、数学题、代码题、信息抽取等可判定任务。
🧠 推理与专业深度
看模型是否能跨步骤推理、理解专业知识、处理反直觉问题。常见评测包括 MMLU、GPQA、BIG-Bench Hard、MATH、AIME 等。
💬 指令跟随与对话体验
看模型是否听得懂要求、格式是否稳定、语气是否自然、多轮对话是否不跑偏。常见指标有 Win Rate、Elo、LLM-as-a-Judge 打分与人工偏好评测。
🧾 事实性与可验证性
看模型会不会“自信地胡说”。评估重点包括幻觉率、引用是否支持结论、回答是否与给定资料一致,以及不知道时能否承认不确定。
🧰 工具调用与结构化输出
真实应用中模型常要调用搜索、数据库、函数或外部 API。要评估函数选择准确率、参数填写正确率、JSON/Schema 遵循率和端到端任务完成率。
🛡 安全与对齐
看模型是否拒绝危险请求、避免歧视和毒性内容、抵抗越狱提示。常见指标有 Attack Success Rate(攻击成功率)、拒答准确率、偏见/毒性分数。
⚡ 成本与效率
同样重要的是“用得起、跑得动”。看首 token 延迟(TTFT)、吞吐量、每秒 token、上下文长度、显存占用、每百万 token 价格和稳定性。
🌏 多语言与本地化
英文强不等于中文强。中文、日文、阿拉伯语等语言要单独评测,还要关注本土知识、文化语境、法规表达和专业术语。

常见评估指标怎么读

1. Accuracy / Exact Match / F1 客观正确性

Accuracy 是答对比例,常用于选择题;Exact Match 要求答案完全一致,常用于短答案;F1 同时考虑精确率和召回率,适合答案有多个片段的问答或信息抽取。

2. pass@k 代码与数学

让模型生成 k 个候选答案,只要其中一个通过单元测试或标准答案,就算通过。HumanEval、MBPP 等代码评测常用它。pass@1 更接近真实用户一次生成的体验,pass@10 更像“多试几次”的上限能力。

3. Win Rate / Elo 人类偏好

两个模型回答同一个问题,由人类或评审模型判断哪一个更好。Chatbot Arena 就使用类似竞技场的方式积累对战结果,再用 Elo 评分估计模型的相对受欢迎程度。

4. Hallucination Rate / Groundedness 事实可靠

幻觉率衡量回答中有多少不被事实或给定资料支持;Groundedness 衡量回答是否忠实于检索资料。在 RAG 系统里,这往往比通用知识分更重要。

5. ASR / Toxicity / Bias 安全风险

ASR(Attack Success Rate) 是越狱或攻击成功率,越低越好;Toxicity 衡量毒性内容;Bias 衡量对性别、地域、职业等群体是否存在系统性偏见。

6. Latency / Throughput / Cost 工程可用

真实产品要看首 token 延迟、总响应时间、并发吞吐、失败率和价格。一个模型如果质量只高 2%,但成本高 5 倍、延迟慢 3 倍,未必是最优选择。

主流 Benchmark 与“国际考试”地图

下面这些评测经常出现在模型技术报告、排行榜和论文中。它们可以帮助横向比较模型,但不能替代你自己的业务评测集。

📚 综合知识

MMLU / MMLU-Pro:覆盖人文、社科、STEM、法律、医学等多学科。
AGIEval:收集高考、SAT、LSAT、GMAT、GRE、公务员、律师资格等公开考试题。
BIG-Bench / BBH:大量非传统任务,常用于观察复杂推理与泛化能力。

🧪 高难科学推理

GPQA:研究生水平、刻意设计为“搜索也不容易直接找到答案”的科学问答。适合测试模型是否真的理解专业概念,而不是记忆常见题。

🧮 数学与竞赛题

GSM8K:小学数学应用题,测试多步算术推理。
MATH:竞赛级数学题,难度明显更高。
AMC / AIME / IMO 风格题:常被用来展示顶级模型的数学上限。

💻 代码与软件工程

HumanEval / MBPP:生成函数并通过单元测试,常看 pass@1、pass@k。
LiveCodeBench:用更新、更难污染的编程题降低“背题”影响。
SWE-bench / SWE-bench Verified:让模型修真实 GitHub issue,更接近软件工程实战。

💬 对话偏好

MT-Bench:多轮开放问题,用评审模型或人工评价回答质量。
Chatbot Arena:匿名双盲对战,用户选择更好的回答,再汇总为 Elo 分数。

🛡 事实性与安全

TruthfulQA:测试模型是否会模仿人类常见错误观念。
HarmBench / RealToxicityPrompts / BOLD:分别关注拒答鲁棒性、毒性生成和偏见表现。

常被引用的国际考试类型

🌐 为什么模型报告喜欢列考试成绩?

人类考试题有明确答案、难度分层清楚、公众更容易理解,所以常被用来展示模型能力。例如 GPT-4 技术报告就列出过律师资格考试、LSAT、SAT、GRE、AP、AMC、USABO、Codeforces 等成绩。但要记住:考试成绩是展示材料,不是完整评估。

  • 升学考试:SAT、GRE、GMAT、LSAT、高考等,主要测试语言理解、数学、逻辑和综合知识。
  • 职业资格考试:Uniform Bar Exam(美国律师资格考试)、律师资格、公务员考试、医学/金融/会计类资格题等,主要测试专业规则和推理。
  • 学科竞赛:AMC、AIME、IMO 风格数学题,USABO 生物奥赛题,Codeforces 编程竞赛题等,主要测试高难推理和问题求解。
  • 课程考试:AP 各科、大学本科/研究生课程题、专业医学/法律/计算机题库等,常被整合进 MMLU、AGIEval、C-Eval、CMMLU 等评测集。

看排行榜时最容易踩的坑

污染

训练污染

Data Contamination
公开题库可能已经出现在训练数据中。模型“答对”不一定代表会推理,也可能是见过类似题。越新的、私有的、动态生成的测试集越能降低污染。
提示

Prompt 敏感

Prompt Sensitivity
同一个模型换一种提示、温度、是否允许思维链、是否提供工具,分数都可能变化。比较模型时必须固定提示模板和参数。
饱和

榜单饱和

Benchmark Saturation
当大量模型在某个榜单都接近满分时,它就很难区分强弱。此时要看更难的新评测、错误样本分析和真实任务表现。
场景

不等于业务效果

Task Mismatch
通用榜单高,不代表你的客服、投研、法务、教育或代码库任务一定好。最终要用自己的真实样本、真实约束和人工验收来评估。

实战:为自己的场景选模型

1

定义任务

明确输入、输出、风险、可接受延迟和成本

2

做黄金集

准备 50-200 条真实样本,覆盖常见与边界情况

3

统一测试

固定 prompt、温度、工具和上下文,横向比较

4

错误分析

统计错因:幻觉、格式错、漏召回、拒答不当等

5

综合决策

用质量、成本、速度、安全和维护性做取舍

📌 小结

榜单适合筛选候选模型,真实评测决定最终选择。专业团队通常会先参考 MMLU、GPQA、HumanEval、SWE-bench、Chatbot Arena 等公开评测,再建立自己的私有评测集,持续跟踪模型版本变化、提示词变化和业务数据漂移。

📎 延伸阅读与资料源

MMLU、HELM、AGIEval、GPT-4 Technical Report、HumanEval、SWE-bench、TruthfulQA、Chatbot Arena 等论文和项目,是理解大模型评估体系的常用入口。

大语言模型的世界广大而深邃。从基础常识到训练推理,从核心概念到评估体系——这一章为你搭建了完整的 LLM 知识框架。
下一章让我们换个视角——探索一种更贴近生物大脑的神经网络:脉冲神经网络(SNN)