大语言模型 LLM / 大模型 / 语言模型
通过预测下一个词元学会「说话」的模型。理解它需要计算机、概率统计与语言学三个视角——本专题把它们连成一张小地图。
概念地图
连线上有方向的箭头表示关系方向;[前置] 表示先懂哪个,[应用] 表示用到哪个。
关系说明
地图上点一个概念,可以看到与它直接相连的关系;全部关系也列在下面(不需要脚本即可阅读)。
- 词元(token) → 概率分布(probability distribution) [前置]
概率分布给「下一个词元」的每个候选打分——先有词元的概念,才谈得上候选。
- 上下文窗口(context window) → 概率分布(probability distribution) [前置]
分布是根据窗口内已经出现的文字算出来的——窗口装不下的内容,影响不到这次预测。
- 概率分布(probability distribution) → 文本生成(text generation) [前置]
生成就是把「按分布取出一个词元、接上去、再预测」循环起来。
- 温度(temperature) → 概率分布(probability distribution) [应用]
温度改变候选之间的相对差距:低温拉大、高温拉近。
- 分词器(tokenizer) → 词元(token) [前置]
分词器把文本切成 token——切法由它定义,模型只认它切出来的单位。
- 词表(vocabulary) → 词元(token) [前置]
每个 token 都是词表里的一个条目,对应唯一编号;词表是模型认识的全部文字积木。
- 语言模型(language model) → 概率分布(probability distribution) [前置]
语言模型每一步的输出,就是「下一个 token」的概率分布——它本质上是一个打分器。
- 模型参数(model parameters) → 语言模型(language model) [前置]
模型 = 结构 + 参数:几十亿个参数决定了它算出的分布长什么样。
- 贪心解码(greedy decoding) → 文本生成(text generation) [应用]
贪心解码是生成的一种做法:每步永远取概率第一名的 token。
- 随机采样(random sampling) → 文本生成(text generation) [应用]
随机采样是另一种做法:按概率抽签——高分候选更常被抽中,但小概率候选也有机会。
- 温度(temperature) → 随机采样(random sampling) [应用]
温度是采样前对分布的最后调整:低温让抽签几乎总是落在第一名上。
- 训练语料(training data) → 损失函数(loss function) [前置]
训练时在海量语料上不断问「预测得差多少」——误差由损失函数来算。
- 损失函数(loss function) → 参数更新(parameter update) [前置]
误差指出参数该往哪个方向调、调多少——没有误差就没有更新依据。
- 参数更新(parameter update) → 预训练(pretraining) [前置]
预训练就是千万亿次重复「预测 → 算误差 → 更新参数」的循环。
- 预训练(pretraining) → 语言模型(language model) [前置]
预训练结束后,参数里留下了语言的统计规律——语言模型由此成型。
从一个问题开始
本专题概念
分词器(tokenizer)词表(vocabulary)词元(token)提示词(prompt)上下文窗口(context window)模型参数(model parameters)语言模型(language model)概率分布(probability distribution)贪心解码(greedy decoding)随机采样(random sampling)温度(temperature)文本生成(text generation)训练语料(training data)预训练(pretraining)损失函数(loss function)参数更新(parameter update)推理(inference)流式输出(streaming)微调(fine-tuning)幻觉(hallucination)泛化(generalization)