语言模型在学习什么
条件概率与下一个 Token
自回归语言模型接收一段已经可见的 Token 序列,估计下一个 Token 在词表中的条件概率分布。生成不是一次写出完整答案,而是“计算分布—选择一个 Token—把它追加到序列—再次计算”的循环。训练目标与用户任务目标因此并不相同:模型直接优化的是序列预测,业务正确、事实可追溯和动作安全必须由系统另外定义。
这条机制解释了两个现象。第一,流畅性来自对语言模式的强建模,不等于每个事实都有可靠来源;第二,早期生成会进入后续可见序列,错误也能被继续扩写成语法完整、自洽但错误的叙述。
训练与推理
训练通过数据和优化过程更新参数;推理在一组既定参数和服务配置下,根据当前输入计算输出。Agent 工程通常不负责训练主模型,而是控制模型版本、Prompt、Context、工具、输出约束、推理预算与外部验证。不要把“模型会什么”“本次请求看到了什么”和“系统允许它做什么”混成一个问题。
文本怎样变成模型可计算的表示
Tokenizer、词表与 Token ID
模型不直接读取字符或单词。Tokenizer 根据自己的规则把文本切成 Token,再用词表将每个 Token 映射为整数 ID。Token 可以是一个字、子词、空格与词的组合、标点、字节片段或代码片段;不同模型的词表和切分规则不同,所以同一段中文、JSON 或代码的 Token 数也不同。
Token 数直接进入 Context Window、Prefill 工作量和计费,但不存在对所有模型有效的“一个 Token 等于几个汉字”公式。工程上应使用目标模型对应的 Tokenizer 对真实输入分布实测,并把工具定义、Schema、系统指令和历史消息一起计入。
子词与 BPE
固定词表无法列出开放世界中的所有名字、复合词和新标识符。子词方法把低频或未知词拆成可组合的片段。Sennrich 等人的工作将 Byte Pair Encoding(BPE)式子词用于神经机器翻译,核心动机正是用固定词表表达开放词汇。现代模型的具体 Tokenizer 可能采用 BPE、Unigram、字节级变体或其他实现,不能把 BPE 当作所有模型唯一方案。Neural Machine Translation of Rare Words with Subword Units。
Embedding 与位置信息
Token ID 只是离散编号。Embedding 将它映射成连续向量,后续层不断结合上下文更新表示。同一个 Token 在不同上下文中的内部表示会不同,因此不能把初始 Embedding 当作词典释义。序列还需要位置信息,否则注意力只看到一组向量,无法区分先后和距离。具体模型可使用绝对、旋转或其他位置方案;Agent 工程需要理解其结果——位置会影响模型如何利用长上下文,而不是背某一种实现公式。
Transformer 怎样处理上下文
Self-Attention 与 Q、K、V
Self-Attention 让序列中的当前位置按相关性聚合其他可见位置的信息。可以用检索类比理解三组投影:Query 表达当前位置需要匹配什么,Key 表达各位置可供匹配的特征,Value 是匹配后真正参与聚合的内容。实际计算通过点积、缩放、Softmax 和加权求和完成;类比用于建立直觉,不意味着模型在执行数据库查询。
Causal Mask
生成式模型在预测当前位置时不能读取未来 Token,Causal Mask 将这些位置屏蔽。训练时,已知序列上的多个位置可以并行计算各自的预测;真正生成时,下一个位置依赖刚刚选出的 Token,所以 Decode 仍然逐步推进。这是“训练可以高度并行、输出生成却具有串行依赖”的根本原因之一。
多头注意力与 Transformer Block
Multi-Head Attention 使用多组投影并行学习不同关系,再合并结果。注意力之后的前馈网络对每个位置进行非线性变换;残差连接让原信息跨层传递;归一化帮助深层计算保持稳定。多个 Block 逐层把局部符号变成上下文化表示。2017 年 Transformer 原论文给出了以注意力为核心、移除循环与卷积的序列转换架构;现代 Decoder-only LLM 已在此基础上演进,本文借用其核心机制而不把原始 Encoder–Decoder 细节误写成所有当前模型的固定结构。Attention Is All You Need。
模型怎样生成下一个 Token
Hidden State、Logits 与 Softmax
最后位置的 Hidden State 汇集当前可见上下文信息,经输出投影得到对词表中每个候选的 Logit。Logit 是未归一化分数;Softmax 将其转换为总和为 1 的分布。这个分布是“在当前模型、参数和上下文条件下下一个 Token 的相对可能性”,不是答案正确率,也不是业务置信度。
Greedy、Temperature、Top-K 与 Top-P
Greedy 每次选择最高概率候选;Temperature 调整分布的尖锐程度;Top-K 只保留概率最高的固定数量候选;Top-P 保留累计概率达到阈值的动态候选集合,再从中采样。它们改变选择行为和多样性,不会补充模型缺失的知识,也不会执行事实校验。不同 Provider 对参数支持、默认值和组合语义可能不同,应以目标 API 为准。
| 控制 | 主要作用 | 不能证明 |
|---|---|---|
| Temperature | 调整分布相对尖锐程度 | 低温不等于事实正确 |
| Top-K | 限制候选数量 | 候选一定覆盖正确答案 |
| Top-P | 按累计概率裁剪候选 | 跨模型参数含义完全一致 |
| Seed | 在支持的服务上提高复现实验能力 | 服务、快照和外部状态永远确定 |
EOS、停止条件与错误传播
EOS 是模型词表中的结束信号;Stop Sequence 通常由服务在生成流中匹配指定序列;最大输出 Token 是硬预算;内容过滤、超时和取消又是其他终止原因。它们不能折叠成一个“finish”。结构化输出被长度截断时,即使前半段可解析,也不能假装完整业务对象。
能力怎样形成
预训练
预训练让模型从大规模序列中压缩语言、代码和部分世界模式。它能形成广泛生成与迁移能力,但参数不是按文档主键组织的数据库:知识覆盖稀疏、来源难以追溯、冲突难以局部更新,推理时能否召回还受 Prompt 和上下文影响。
指令微调与偏好对齐
监督式指令微调使用示范塑造期望响应,偏好优化或基于人类反馈的强化学习进一步改变帮助性、安全性、拒答和表达风格。InstructGPT 工作展示了“模型更大”不自动等于更符合用户意图,并使用示范与输出排序进行后训练。这个结果说明后训练能显著改变行为,但不能推出事实永远正确或所有当前推理模型沿用同一训练配方。Training language models to follow instructions with human feedback。
In-context Learning
模型可以根据当前 Prompt 中的说明和示例临时表现出任务模式,而不更新参数。这就是 Zero-Shot 与 Few-Shot 的基础。它带来快速适配,也意味着示例错误、顺序偏差、格式污染和上下文冲突会直接影响当前行为;它不是把新知识永久写进模型。
基座、指令、推理与多模态模型
基座模型主要延续序列,指令模型针对交互和任务遵循后训练,推理模型通常使用额外训练与推理资源改善部分复杂任务,多模态模型增加图像、音频或视频等输入输出能力。名称描述能力形态,不是可靠性保证。模型系列、具体快照、API 配置和工具能力必须分别进入评测。
知识、推理与行动为什么会失败
参数知识、请求上下文与外部事实
参数知识覆盖广但难更新和追溯;请求上下文可由应用控制,却受窗口、位置、冲突和污染影响;RAG 与 Tool 返回的外部事实可更新、可引用,但检索、权限、版本和执行器仍会失败。系统应按事实所需的新鲜度与可验证性选择来源,不把“模型似乎知道”当依赖契约。
知识、推理、引用与行动失败
“幻觉”过于笼统。知识失败包括过时、混合与错误归因;推理失败包括错误前提、跳步和全局矛盾;引用失败包括来源不存在或不支持结论;行动失败包括虚构工具结果、参数错误和把提案说成已执行。分类之后才能分别选择检索、约束、校验、重规划或人工。
不确定性、置信度与拒答
模型说“95% 确定”通常不是经过校准的概率。语言置信度会受提示、表达风格和任务分布影响。高风险系统应使用独立 Holdout、规则校验、引用支持、历史错误切片或人工复核建立阈值。正确拒答保护边界,错误拒答则损失能力;两者需要分别计量。
模型与服务漂移
快照、别名、后训练、安全策略、推理默认值和服务基础设施都可能变化。即便 API 向后兼容,同一 Prompt 的行为也可能不同。OpenAI API 文档明确建议在生产记录请求 ID,并指出模型快照变化可能改变相同消息的表现。OpenAI API compatibility guidance。系统需要版本记录、回归、灰度、回滚和 Owner。
Context Window 怎样约束推理
输入、历史、工具结果与输出共享预算
Context Window 是一次推理可处理序列的容量边界。系统指令、用户输入、历史、检索材料、工具定义与结果,以及为输出预留的空间会竞争预算。具体 Provider 是否将某些内部推理 Token、缓存内容或多模态内容以何种方式计入,需要按目标模型文档核验。
位置、干扰与 Lost-in-the-Middle
能接收长文本不等于能同等利用每个位置。Lost in the Middle 研究在多文档问答和键值检索中观察到,相关信息位置变化会显著影响表现,开头和结尾常优于中间;这是特定实验结论,不应扩张为所有模型所有任务必然遵循的定律。Lost in the Middle。
真实系统还会受到相似证据干扰、指令冲突、陈旧历史和检索噪声影响。因此“窗口更大”不是取消 Context 治理的理由,而是扩大了应用必须评测的信息空间。
截断、摘要、压缩和检索重组
截断删除内容;摘要用有损表示替代原文;压缩保留选定事实或结构;检索重组只选择当前任务相关材料。每种方法都可能遗漏信息,需要记录来源、保留原始状态并定义无法安全压缩时的拒绝或拆分路径。
一次推理请求怎样执行
排队与 Prefill
请求先经过网络、鉴权、限流和排队,随后 Prefill 处理整段输入并建立各位置表示与注意力缓存。输入越长,Prefill 通常越重,首 Token 前时间也更容易增加;具体延迟还受硬件、批处理、模型架构与服务调度影响。
Decode 与 KV Cache
Decode 每次产生新 Token。Transformer 会复用此前位置的 Key/Value,避免为每个新 Token 完整重算历史,这就是 KV Cache 的核心价值。代价是缓存随序列和并发占用服务资源,长请求可能降低同一实例可承载的并发。应用不需要管理 Provider 内部缓存,但必须理解长 Context 和长输出如何共同影响容量。
Streaming、TTFT 与任务完成时间
Streaming 让客户端在完整响应前消费增量,主要改善 Time to First Token(TTFT)和感知等待。模型仍需完成 Decode,客户端还要解析、校验、执行工具或提交业务。应分别测请求开始、首个可用内容、模型终态和业务完成时间。
从单请求扩展到服务容量
RPM、TPM、并发与吞吐
Requests Per Minute 限制请求频率,Tokens Per Minute 限制 Token 处理规模,并发限制同时进行的请求,吞吐描述单位时间完成的有效工作。它们不能相互替代:大量短请求可能先打满 RPM,少量长请求可能先打满 TPM 或并发;流式连接还会长时间占用资源。
超时、取消与背压
浏览器、网关、应用服务、SDK 和 Provider 可能有不同超时。用户关闭页面后,如果取消信号没有向下传播,后端仍可能继续生成甚至执行工具。消费者读取流过慢时需要背压或缓冲上限,不能让内存无界增长。取消后的真实任务状态必须可查询或明确标为未知。
Prompt Cache 与单位成功成本
Prompt Cache 依赖可复用的稳定前缀,动态变量放置、模型与 Provider 规则会影响命中。成本不能只看一次输入输出价格:失败重试、Tool 循环、Fallback、人工复核、下游返工和缓存未命中都进入单位成功任务成本。价格和限额易变化,文章不固化具体数字。
用实验把理论变成工程直觉
Token、采样与位置实验
选取中文、英文、代码、JSON、数字和长标识符,用目标 Tokenizer 记录切分和 Token 数;固定模型、Prompt 与输入,多次运行不同采样配置,报告输出差异而非展示一次结果;将同一关键规则放在开头、中间和结尾,并逐步加入相似干扰,测任务成功率。
长上下文、TTFT 与并发基准
构造短、中、长 Context 和不同输出预算,在低并发与压力场景同时记录 TTFT、模型终态、业务完成、Usage、错误、取消和质量。测试报告要标明模型快照、时间、区域、样本和重复次数,不能把本地小实验推广为普遍性能结论。
能力—失效—控制矩阵
| 失效 | 首选控制 | 验证证据 |
|---|---|---|
| 事实过时 | 权威 Tool/RAG 与时间戳 | 引用支持与新鲜度测试 |
| 结构不合法 | Schema 约束与运行时校验 | 契约测试和失败样本 |
| 业务规则错误 | 领域校验器 | 边界用例与不变量 |
| 重复副作用 | 幂等执行器与账本 | 故障注入和回执 |
| 模型漂移 | 版本、回归、灰度和回滚 | Scorecard 与发布记录 |
重建机制:Temperature 为什么不能被理解为“正确率旋钮”?
迁移判断:Context Window 从 32K 增加到 1M,能否删除摘要和检索策略?
资料与事实边界
以下以官方文档、标准、论文和原始工程资料为主。厂商 API、价格、限额与模型能力会变化,落地时仍需按目标版本做能力探测和回归。
- Vaswani et al.:Attention Is All You Need — Transformer、缩放点积注意力、多头与位置表示的原始论文
- Sennrich et al.:Subword Units — BPE 式子词处理开放词汇的原始研究
- Ouyang et al.:InstructGPT — 指令微调与基于人类反馈后训练的代表性研究
- Liu et al.:Lost in the Middle — 长上下文中相关信息位置变化的实验观察
- OpenAI API compatibility — 请求 ID、版本行为与生产升级核验