文章目录
- 1. 前面几篇的主要内容
- 2. 从「单个 ID」到「整段序列」
- 3. 上下文能力对照
- 4. 三条适配路径的记忆要点
- 5. 提交前检查
- 6. 汽车场景下的路径选择
- 7. 和前面篇章的关系
- 8. 常见误区
- 9. 术语与延伸阅读
- 10. 小结与下一主题
摘要:第 33~35 篇分别讲了下一词建模、更长上下文下的 Transformer,以及微调、蒸馏与提示三条业务适配路径。本文不引入新的核心公式,把语言模型单元串成可对照的备忘:什么时候上序列模型、上下文能力差在哪里、三条路径怎么选,并预告下一主题——生产环境中的机器学习系统。
1. 前面几篇的主要内容
Embedding 处理的是单个离散 ID。车评、故障描述、工单备注则是有顺序的符号串。语言模型相关几篇补的就是「已知上文,估计下一词(或某一位置的词)」以及怎样把大模型接到业务上。
| 篇次 | 大概讲了什么 |
|---|---|
| 33 | token、上下文、N-gram 与 RNN;下一词概率的直觉与局限 |
| 34 | Transformer、自注意力、掩码预训练与生成;更长上下文 |
| 35 | 提示工程、微调、蒸馏与离线缓存;把基础模型接到应用 |
贯穿示例仍是汽车:短句填空、车评摘要、工单分类或固定字段抽取。换了序列模型或大模型之后,划分、防泄漏、验证集选参与输出校验的要求没有换。
若刚读完 33~35,本文可当复习;若手头正好有文本任务,也可先对照第 5 节的核对项,再决定走表格基线、提示,还是微调 / 蒸馏。
2. 从「单个 ID」到「整段序列」
第 29~32 篇解决的是高基数类别怎么进模型。语言模型解决的是另一类输入:token 序列。两者可以同时出现在一个系统里——品牌仍走 Embedding,车评文本再走序列编码器或 LLM。
常见推进顺序可以概括为:
明确任务与验收指标 → 能用表格 / Embedding 就先做基线 → 需要语言理解或生成时,再上序列模型 / LLM → 先用提示试口径与格式 → 仍不稳再微调;上线太贵 / 太慢再蒸馏或离线缓存与第 28、32 篇串讲相同的部分:先切分再拟合;测试集少碰;生成内容要有规则或人工闸门。语言模型多出来的部分:要决定上下文长度、采样或解码方式,以及提示 / 微调 / 蒸馏哪一条路径更划算。
纯数值油耗回归,没有必要先上语言模型。自由文本多、格式要求高、或需要摘要与对话时,再进入本单元的工具箱。
也要注意边界:Embedding 解决的是「离散 ID 怎么变成短向量」;语言模型解决的是「这些 token 按顺序组合后,下一个(或某一位置)更可能是什么」。前者可以没有语言生成;后者几乎总要处理变长序列。把车评整段塞进词袋再接逻辑回归,有时也能做基线,但丢掉了顺序信息——是否够用,仍然用验证集判断。
3. 上下文能力对照
第 33、34 篇的核心可以压成一张对照:
| 路线 | 上下文怎么用 | 常见瓶颈 |
|---|---|---|
| N-gram | 固定短窗口计数 | 窗口一长,组合爆炸;未见 n-gram 稀疏 |
| RNN | 逐步更新隐状态 | 长程依赖难保留;并行训练不友好 |
| Transformer | 注意力一次汇聚多位置 | 算力与上下文长度成本上升 |
| 业务适配(35) | 提示 / 微调 / 蒸馏 | 不解决「会不会胡编」本身,需要校验 |
可以把注意力看成「按相关性给上文各位置加权」,而不是简单截取最近几个词。参数更大、上下文更长,通常提高的是模式覆盖与长程组合能力,并不自动等于事实正确。幻觉、偏见与格式漂移,仍然要靠评估集与业务闸门约束。
下一词目标在形式上仍是词表上的多类分布。记当前上文为c cc,下一 token 为w ww,语言模型优化的是:
P ( w ∣ c ) = S o f t m a x ( f θ ( c ) ) P(w \mid c) = \mathrm{Softmax}\big(f_\theta(c)\big)P(w∣c)=Softmax(fθ(c))
| 符号 | 含义 |
|---|---|
| c cc | 上下文(前文 token,或掩码任务中的可见部分) |
| w ww | 待预测的 token |
| f θ f_\thetafθ | 网络(N-gram 特征、RNN 或 Transformer)打出的词表 logits |
| θ \thetaθ | 模型参数 |
N-gram 用计数近似同一目标;RNN 与 Transformer 用可学习的f θ f_\thetafθ逼近。训练目标一致,差别主要在c cc能看多远、以及f θ f_\thetafθ的表达能力。
生成时常见的温度、top-k / top-p 等采样选择,影响的是多样性与稳定性的权衡:温度过高,摘要口径容易飘;压得过低,又可能反复输出同一套套话。选型仍以验证集上的业务指标为准,而不是以「读起来更像人」为唯一标准。
4. 三条适配路径的记忆要点
第 35 篇把基础大模型接到业务上,归纳为三条路径。串讲时只保留决策要点:
| 路径 | 是否改参数 | 更适合 |
|---|---|---|
| 提示工程 | 否 | 快速试口径、少样本约束格式 |
| 微调 | 是(可参数高效) | 领域黑话、固定字段仍不稳 |
| 蒸馏 | 训练更小的学生 | 在线延迟 / 成本吃紧 |
建议顺序(可以按项目裁剪):表格或 Embedding 基线 → 提示 + 输出校验 → 微调 → 蒸馏或离线缓存。离线推理适合可以预先计算的批量打标;在线对话则更在意延迟与缓存命中率。
微调通常保持同级参数量;想变小,靠的是蒸馏,而不是「再微调一轮就会自动变小」。提示写得再长,也不会更新权重;它解决的是输入约束,不是训练。
教师模型更新后,学生与缓存往往需要重训或刷新计划。否则线上仍在用过期口径,验证集上的好看分数会慢慢失真。
若把三条路径写成一句话:提示负责「先对齐产品说法」,微调负责「把说法写进参数」,蒸馏与缓存负责「在可接受的延迟与成本下重复使用」。汽车售后里,同一套口径可能同时出现在客服话术、工单标签与报表字段上——口径一变,三条路径都要同步检查,而不是只改其中一处。
5. 提交前检查
[ ] 任务是否必须用序列 / LLM;表格或 Embedding 基线是否已做过 [ ] 上下文长度与输出格式要求是否写清楚 [ ] 是否先用提示跑通;仍不稳再考虑微调 [ ] 微调有验证集;监控过拟合与格式指标 [ ] 延迟 / 成本紧张时,是否评估蒸馏或离线缓存 [ ] 生成内容有规则 / 人工闸门,防止幻觉直接入业务 [ ] 评估集覆盖不同车型、不同表述,避免只在单一话术上好看 [ ] 教师或提示模板更新后,学生与缓存有刷新计划若提示已经能稳定抽出「品牌 / 故障件 / 严重度」等字段,不必为了「用上微调」而微调。路径是手段,验收指标才是目的。
概念示意(工单严重度:先规则校验,再决定是否调用模型):
ALLOWED={"低","中","高"}defparse_severity(text:str)->str|None:"""从模型输出里抽出严重度;不在词表则视为失败。"""forlabelinALLOWED:iflabelintext:returnlabelreturnNonedefroute(ticket:str,llm_call):# 极短、已含明确等级时,可以先走规则hit=parse_severity(ticket)ifhit:returnhit,"rule"raw=llm_call(ticket)label=parse_severity(raw)iflabelisNone:returnNone,"need_human"returnlabel,"model"这段代码不替代微调或蒸馏,只提醒:语言模型单元收尾时,业务闸门与解析校验往往比再换一个更大的基座更靠近上线。
6. 汽车场景下的路径选择
| 需求 | 优先尝试 |
|---|---|
| 品牌、车型等表格字段 | Embedding + 监督模型(见第 32 篇) |
| 试摘要口径、输出格式 | 提示工程(零样本 / 少样本) |
| 固定字段、领域黑话仍然不稳 | 微调(可以先做参数高效微调) |
| 要低延迟分类 / 打分上线 | 教师打标 + 蒸馏学生 |
| 可以预先计算的批量标签 | 离线推理 + 缓存 |
| 短句下一词直觉、教学演示 | N-gram / 小 RNN(第 33 篇) |
| 长上下文摘要、对话骨架 | Transformer / LLM(第 34 篇) |
表示与词表纪律见 【机器学习】(32)—— Embedding 串讲。序列侧骨架见 【机器学习】(34)—— 更大的语言模型;适配细节见 【机器学习】(35)—— 微调、蒸馏与提示。
同一工单流水线里,也可以组合:检索或规则先收窄候选,提示或小模型做分类,必要时再调用更大的生成模型写摘要。组合的目的是把贵的调用留在真正需要生成的步骤上。
7. 和前面篇章的关系
| 主题 | 相关篇 | 与语言模型单元的关系 |
|---|---|---|
| Embedding 与词表 | 29~32 | token 仍先映成稠密向量,再进注意力或 RNN |
| 划分、泄漏、验证 | 18、19、22、28 | 提示模板、微调数据与词表纪律同样不能泄漏 |
| Softmax 与多类头 | 27 | 下一词就是词表上的多类分布 |
| 过拟合与早停 | 21、26、28 | 微调数据少时更容易过拟合格式与话术 |
| 神经网络前向 / 反向 | 23~25 | Transformer 仍是可微模块的堆叠与训练 |
可以把语言模型看成「在序列上做多类预测」,把第 35 篇看成「预测能力如何接到产品约束」。旧纪律仍然约束新模块:没有验证集的微调、没有校验的生成、没有基线的大模型上线,都会把问题从「准不准」变成「为什么说不清」。
实践里也常见「先逻辑回归 / 浅层网络 + 文本特征基线,再换 LLM」的对比。基线能说明任务难度与标注质量;若基线已经很好,上大模型的必要性会下降。
8. 常见误区
| 情况 | 说明 |
|---|---|
| 表格任务直接上 LLM | 往往更贵、更慢,且未必更准 |
| 以为上下文越长就一定更好 | 成本上升;噪声上下文也可能干扰 |
| 以为微调会自动得到更小模型 | 变小靠蒸馏 |
| 以为多写提示等于在训练 | 提示不改参数 |
| 只看通顺,不看事实与格式 | 幻觉与字段缺失仍可能发生 |
| 蒸馏只用硬标签 | 软分数往往信息量更大 |
| 忽略数据偏见 | 预训练、微调与教师数据都会带偏见 |
| 有了 LLM 就忽略 Embedding 基线 | 结构化 ID 仍常更合适 |
适用前提:任务确实需要语言理解或生成,并且团队可以维护校验、评估与刷新流程。把本单元当成「唯一正确架构」,反而容易在油耗回归或纯 ID 特征上绕远路。
9. 术语与延伸阅读
| 术语 | 含义 |
|---|---|
| 语言模型 | 估计序列中 token 概率的模型 |
| 上下文 | 预测某一位置时所依赖的上文(或双向上下文) |
| N-gram | 用固定长度局部统计估计下一词 |
| Transformer | 以自注意力为核心、便于并行的序列架构 |
| 基础 / 预训练 LLM | 大规模通识预训练得到的通用模型 |
| 提示工程 | 通过输入说明与例子约束输出 |
| 微调 | 用任务数据继续训练以适配应用 |
| 蒸馏 | 大教师教小学生对齐预测 |
| 离线推理 | 预先批量预测并缓存 |
| 资源 | 说明 |
|---|---|
| 【机器学习】(35)—— 微调、蒸馏与提示 | 三条适配路径 |
| 【机器学习】(34)—— 更大的语言模型 | Transformer 与生成 |
| 【机器学习】(33)—— 语言模型 | 下一词与上下文 |
| 【机器学习】(32)—— Embedding 串讲 | 表格高基数表示 |
| 【机器学习】(28)—— 神经网络小结 | 验证与过拟合 |
| 【机器学习】(27)—— 神经网络多分类 | Softmax 多类头 |
10. 小结与下一主题
语言模型这几篇可以概括为:
- 序列任务的核心是下一词(或掩码位置)的条件分布;N-gram 与 RNN 给出短上下文台阶,也暴露稀疏与长程瓶颈。
- Transformer 用注意力一次利用更长上下文;更大的模型提高覆盖面,不等于自动事实正确。
- 接到业务时,按「提示 → 微调 → 蒸馏 / 缓存」递进;结构化字段继续尊重 Embedding 与表格基线。
本单元到此先告一段落。后面讨论生产系统时,会默认已经熟悉:token 与上下文、注意力与生成风险,以及提示 / 微调 / 蒸馏的分工。若这些内容还有些模糊,可以把第 33~35 篇按「下一词 → 更长上下文 → 业务适配」再过一遍。
下一主题会进入生产环境中的机器学习系统:模型代码往往只是整条链路的一小部分,还要考虑静态 / 动态训练与推理、测试、缺陷模式与监控。汽车例子也会从「单个模型准不准」,扩展到「数据怎么进、预测怎么出、坏了怎么被发现」。
例如:油耗模型是定期重训还是在线更新、工单分类是请求时推理还是批量预打标、摘要服务的延迟与缓存命中如何监控——这些问题不再只属于「选 N-gram 还是 Transformer」,而属于整条生产链路的设计。语言模型单元给出的能力边界(幻觉、成本、刷新),会在生产系统篇里变成可检查的组件与告警项。
系列导航:
- 上一篇:【机器学习】(35)—— 微调、蒸馏与提示
- 下一篇(预告):生产环境中的机器学习系统
如果本篇对你有帮助,欢迎点赞、收藏、关注博主,机器学习专栏持续更新中,下次更新不迷路。