单轮对话像教模型接一句话,多轮对话像教它演一部连续剧——多轮对话数据怎么构造,关键是把上下文承接写清楚。大模型的多轮能力不是单轮数据的简单叠加,它需要模型记住前几轮说过什么、对方立场有没有变、话题岔开后怎么拉回来,这些都要在数据里预先演练。
单轮和多轮差在哪
单轮样本是一问一答的孤立对,模型只学这一次交互的映射。多轮样本是一条完整对话,里面有指代、有省略、有话题切换,后一轮的问题往往依赖前几轮的信息。比如用户先说预算三千,隔两轮后问那款够吗,模型必须回翻上文才知道那款指什么。
这个差别决定了数据构造的工作量。单轮数据可以批量凑,多轮数据得一段段写,每条都要自洽。更麻烦的是评估:单轮答非所问一眼能看出,多轮答非所问可能是第三轮才露馅,所以微调后的模型评估对多轮场景要整段对话一起测。
一条多轮样本的骨架
一条合格的多轮样本通常有四个部件。开头要有场景交代:谁在什么渠道为了什么事发起对话,这决定了后续的语气和用词。中间每一轮都要有真实感,用户会跑题、会改主意、会追问细节,不能全是整齐的问和答。轮次之间要有承接,回答里自然带上前文信息,下一轮的问题才有落脚点。结尾要有收束,问题解决或者明确结束。
写的时候有个实用技巧:先编剧本再填对话。把这场对话的目的、冲突点、用户情绪变化列成大纲,再逐轮展开,比直接一句句写更容易保证连贯。涉及固定格式输出的,还要在样本里保持格式一致,模型才会把格式当成对话的一部分记住。
四个部件缺一不可,每一件都有可判断的合格线。
| 部件 | 要写清什么 | 合格的样子 |
|---|---|---|
| 开头场景交代 | 谁在什么渠道、为了什么事发起对话 | 后续语气和用词有依据 |
| 中间每一轮 | 跑题、改主意、追问细节 | 不是整齐的一问一答 |
| 轮次之间的承接 | 回答里自然带上前文信息 | 下一轮的问题有落脚点 |
| 结尾收束 | 问题解决或者明确结束 | 对话不悬在半空 |
上下文断层是最常见的毛病
新手写的多轮数据,最常见问题是上下文断层。典型表现是第三轮的回答无视第一轮给出的条件,或者用户突然换了一个完全没交代过的话题。人写的时候觉得顺,是因为脑子里有隐含设定,但数据里没写出来,模型学到的就是可以无视上文。
防断层的办法是每写完一条就通读检查:任意抽一轮,遮住后面的内容,看这一轮的回答是否依赖了没出现过的信息;再遮住前面的,看这一轮是否丢掉了已建立的约束。两个方向都通得过,这条样本才算立得住。显式保留约束,是连续剧本式写法的核心。
多轮数据的质检看什么
质检通常抓四件事。一看连贯,指代和省略是否有依据。二看一致,模型在前两轮承认过的条件,后面不能自相矛盾。三看话题管理,用户岔开话题时,回答是生硬拽回还是自然承接,两种都可以,但不能前言不搭后语。四看格式稳定,如果这个场景要求固定输出结构,每一轮都要守规矩。
量上有个经验值:覆盖核心场景的前提下,每个场景十几条完整对话,比一百条残缺对话管用。腾讯元宝和 Kimi 在长文档、多轮任务上被讨论得多,背后都是大量多轮数据反复打磨的结果。还有个隐性门槛是标注成本,一条自洽的多轮对话,写加校的时间往往是单轮样本的好几倍,排产时要把这部分工时算进去。拒答与边界样本在多轮里尤其难写,因为拒绝一次之后,用户可能换着花样追问三轮,语气还得保持前后一致,这属于风格与能力的迁移要管的问题。
对照表:单轮数据一对一、可批量凑;多轮数据一段一剧本、要自洽。质检抓连贯、一致、话题管理、格式稳定四件事。立不住的样本,比没有样本更糟。
聊聊多轮数据的常见疑问
- 轮次越多越好吗?不是,超过目标场景常见长度的轮次,边际作用下降,还容易引入无关闲聊噪声。
- 多轮数据能拿单轮数据拼吗?不能直接拼,随机拼接会产生大量矛盾和无依据指代,模型会学到错误的承接习惯。
- 怎么知道多轮能力练出来了?拿训练里没出现过的完整对话测试,重点看第三轮以后的承接质量,而不是首轮表现。


