LLM 基础
从语言模型起源建立发展脉络、工作原理与关键术语地图
建议阅读:约 20 分钟
学习目标
本章关键词
| 关键词 | 解释 | ESP32 工程类比 |
|---|---|---|
| 语言模型 | 估计 token 序列概率或下一个 token 条件概率的模型。 | 像根据已收到的协议字段预测下一字段类型与取值范围。 |
| 参数 | 训练得到并在推理时固定复用的权重,是模型的长期统计状态。 | 像编译进固件、跨请求复用的查表常量和控制系数。 |
| 预训练 / 对齐 | 预训练学习通用模式;对齐用指令、偏好或规则塑造可用行为。 | 像先训练通用协议解析器,再按产品规范收紧命令与错误处理。 |
| 幻觉 | 模型生成流畅但不受事实证据支持或与现实不一致的内容。 | 像校验和正确、格式完整,但 payload 语义仍然错误的数据包。 |
承上:回顾与定位
前六天已经建立从神经网络、模型产物到端侧资源与视觉流水线的传统 AI 工程闭环。今天从模型类别切换到生成式语言模型,先建立一张不会被工具名和参数量带偏的全局地图。
历史发展脉络
LLM 的形成不是单一论文带来的跳跃,而是语言概率建模、分布式表示、并行架构、规模化预训练和人类偏好对齐逐步叠加的结果。理解这些典型时刻,才能分清哪些能力来自训练目标,哪些来自结构,哪些来自部署时的系统工程。
Transformer 以 Attention 重写序列建模主干
《Attention Is All You Need》移除循环和卷积主干,用 self-attention、前馈网络、残差与位置编码构建可并行训练的 encoder–decoder。
Transformer 原始论文 ↗GPT-3 展示规模化自回归模型的上下文学习
GPT-3 在不更新参数的情况下,通过提示中的描述或少量示例完成多类任务,使规模、prompt 与 in-context learning 成为重要研究和产品变量。
GPT-3 原始论文 ↗InstructGPT 把指令遵循与人类偏好引入对齐链
监督指令数据、奖励模型与人类反馈强化学习被组合起来,让基础模型更倾向于遵循用户意图,同时也暴露出对齐评估与安全边界的重要性。
InstructGPT 原始论文 ↗类比图解
一套持续修订、现场只读的协议预测固件
研发中心先用大量历史报文训练一套预测固件,把常见结构压进参数;产品团队再用规范样例校正它如何响应指令。设备收到一次新请求时,只加载固定固件,把当前报文放入会话缓冲区,逐段预测后续内容。预测可以很流畅,但关键字段仍必须通过确定性协议校验。
类比的边界: LLM 参数不是可逐条查询的数据库,token 也不等于协议中的固定语义字段;类比只用于区分训练期长期状态、请求期短期状态与外部校验责任。
本章讲解
先从任务定义开始:LLM 是条件概率模型
语言模型学习的是在已有 token 前缀条件下,下一个 token 的概率分布。训练时把真实序列向右错一位形成监督信号,一段文本就能贡献许多预测样本;推理时则从分布中选择一个 token,再把它追加到前缀继续预测。这个统一目标能迫使模型压缩语法、语义、事实共现与任务格式,但它优化的是预测似然,不是事实数据库的一致性、逻辑证明的完备性或现实世界的安全性。
从统计计数到分布式表示,核心问题一直是泛化
早期 n-gram 语言模型按有限历史统计下一个词,简单、可解释,却容易遭遇未见组合和维度爆炸。神经语言模型用 embedding 把离散词映射到连续空间,并用共享参数在相似上下文之间迁移统计强度。word2vec 等方法进一步展示分布式表示的可复用性。LLM 并非突然出现的魔法,而是语言建模目标、表示学习、计算规模与数据工程长期汇合的结果。
Transformer 让长依赖与大规模并行训练更可行
循环网络必须沿序列逐步传递状态,长路径让训练并行与远距离信用分配都更困难。Transformer 用 self-attention 建立 token 间的直接交互,再叠加逐位置前馈网络、残差连接、归一化与位置机制,使训练阶段可以并行处理整段序列。它并没有让自回归生成失去先后顺序;输入处理与输出生成是两种不同的计算形态,后续章节会分别拆解 Attention、Prefill、Decode 与 KV cache。
预训练、微调与对齐是三种不同责任
预训练从大规模语料学习通用表示和生成能力;监督微调用更小、更明确的数据塑造任务格式;指令对齐再用偏好数据或规则,让回答更符合人的意图与安全约束。三者都改变权重,却使用不同数据、目标和验收标准。工程上还要区分 prompt 内学习:它只在当前上下文中提供示例,并不会永久修改参数。把这些过程混称为“训练一下”会导致成本、隐私和可回滚性判断错误。
规模带来能力,也放大数据、评估与系统问题
参数量、训练数据和计算量共同扩大模型容量,但任一数字都不能单独代表能力。更大的模型可能展现更强的少样本迁移和任务泛化,也会需要更高训练成本、更多权重存储、更多推理带宽和更严格的数据治理。所谓基础模型强调一个预训练模型可适配许多下游任务;它不是“懂一切”的认证。比较模型时应固定任务、提示模板、上下文、精度、硬件和评估集。
把常见术语放回正确的生命周期
token 是 tokenizer 定义的离散编号;embedding 是编号进入模型后的向量;参数是训练后冻结并跨请求复用的长期状态;context 是本次请求可见的 token 序列;KV cache 是该序列在各层产生的临时中间状态;logits 是下一 token 的未归一化分数;sampling 决定如何从分布选出输出。术语一旦归位,模型文件、会话内存、服务调度与产品体验就能进入同一张资源账本。
概率流畅不等于事实可靠,能力必须用证据界定
模型会根据训练分布和当前上下文补全最可能的文本,因此可以生成语法流畅但事实错误、来源虚构或前后矛盾的内容。检索、工具调用、结构化约束和人工复核能降低风险,却不能把概率模型自动变成真值机。端侧产品要标出允许模型建议的范围,把设备控制、安全判断和不可逆操作留在确定性验证边界内,并用真实失效样本持续评估。
动态过程演示
一条语言能力如何从语料进入一次回答
播放器把长期训练阶段与一次请求的短期推理阶段分开,避免把参数更新、上下文和缓存混成同一件事。
收集与治理语料 · documents + provenance
清洗、去重、过滤并记录来源
模型能力与风险都从数据分布开始
循环 / 返回条件: 生成阶段从“逐 token 生成”回到自身,直到 EOS、长度上限或取消;只有离线训练或微调才会回到参数更新。
查看静态全景图
文本语料 ──tokenize──► token 序列 ──预训练:预测下一个 token──► 基础模型 用户指令 ──template──► context ──逐 token 推理──► 概率分布 ──sampling──► 输出
代码或命令示例
tokens = tokenizer(chat_template(messages))
for token in tokens:
state = model(token, state)
while not stop:
logits, state = model(next_token, state)
next_token = sample(logits)动手实验
实验记录与导出
工程陷阱
核心测试
完成 3 道单选题后提交;提交前不会显示答案。
在 GitHub 上讨论本章
登录 GitHub 后提问、补充实测或分享你的实现;评论会保存在本课程的 GitHub Discussions 中。
评论区需要 JavaScript;也可以直接打开 GitHub 讨论区: 打开 GitHub 讨论区 ↗
延伸阅读
启下:下一章如何使用本章能力
下一章进入 Tokenizer:追踪文本如何变成 token id,并把词表、特殊 token 与 chat template 视为模型 ABI。
下一天: Day 8 · Tokenizer