章节摘要:对话模型与基座之间隔着一层"序列化协议"——chat template。4.1 节把这层协议讲透:messages 列表怎么被 special tokens 包裹成 token 序列(nanochat 采用 Harmony 风格的消息边界标记,如 <|beginmessage|>/<|messageassistant|>/<|endoftext|>),模板为什么必须训练与推理逐字节一致,附渲染代码。4.2 节讲协议之上的最后一层手感来源:采样参数——温度、top-p、重复惩罚对"聊天手感"的影响矩阵(发散/复读/死板的症状对应哪个旋钮),给出从 0.7/0.9 起步的默认组合。4.3 节集中清算全流水线最贵的一类 bug:模板不一致与训练推理错位——三种典型错位(换了模板没重训、推理少拼起始标记、终止符没被正确处理)的复现、诊断与预防纪律。本章焊死第 3 章训练与第 6 章部署之间的接缝。
阅读完本章,你应当能够:
<|endoftext|> 为何既是文本也是控制信号。(文字流程图) B ──训练侧:3.1 掩码──▶ SFT 训练 B ──推理侧:add_generation_prompt──▶ 采样生成·4.2 温度/top-p SFT 训练 ──逐字节一致──▶ 采样生成·4.2 温度/top-p 采样生成·4.2 温度/top-p ──第 6 章 llama.cpp<br/>同款模板──▶ 部署服务
一句话金句:模板是模型与外界签的合同——训练时签的哪一版,推理时就必须一字不差地履约。
模板即协议;Harmony 风格 special tokens 家族与进词表三要点;渲染代码与"推理提示必须是训练序列字节前缀"的回环校验。
温度/top-p/重复惩罚的手感影响矩阵(发散/复读/死板/胡编四诊法);默认参数组与十分钟调参纪律;手感病的分流决策树。
三种典型错位的复现与诊断三板斧;"一份模板三处消费"纪律;全书四层故障排查地图的收拢。
4.1 协议本身(序列怎么拼、标记怎么画) │ ▼ 4.2 协议之上的手感(拼对之后,声音调多好听) │ ▼ 4.3 协议的裂缝(错位的 N 种死法与预防)──► 第 6 章 llama.cpp 部署的模板对齐
前置知识:第 2 章的 messages 契约(模板的输入);3.1 的掩码构造(训练侧消费模板的方式,本章解释其另一半);1.2 的词表概念(special tokens 追加进词表意味着什么)。
为后续奠定基础:4.1 的模板是第 6 章 llama.cpp 部署(GGUF 转换要携带同款模板)与第 8 章中文改造(中文模板重设计)的直接前置;4.2 的采样参数是第 5 章评测(不同采样下的表现差异)与第 7 章语音界面(实时性 vs 手感的权衡)的调参基础;4.3 的纪律贯穿此后所有章节——模板错位是部署与改造阶段复现率最高的故障。