优化方法阶段详细优点缺点应用项目备注
DPO 算法训练过程结合业务场景构建偏好数据,通过DPO算法对齐偏好。针对重复问题,可按照“chosen无重复,reject重复”的逻辑构造数据。可提高话术质量,提高可用率。- 无法完全避免重复问题,仍然存在比较明显重复

- DPO阶段仅对齐话术偏好,可能会影响项目的其他指标(如准确率)
智能6级FAQ厘清通用数据:中文单轮rlhf数据(huggingface.co… 20k)

+ 业务数据
解码时检测历史回复出现的 N-gram解码过程解码时结合next token和已生成部分,检测历史回复出现的N-gram(N越大对token概率的惩罚越大)。注:1. 先对logits做归一化后再做惩罚,减少不同LLM分布差异的影响 2. 仅对部分需要惩罚的output片段进行惩罚可有效规避字面重复性问题,减少重复的强弱可通过惩罚项动态调整。相较于repetition penalty,对重复的惩罚更加精准,仅惩罚需要避免重复的内容。- 无法从“逻辑”上解决重复询问,只是杜绝了字面重复,模型会换个方式提问而已。

- Friday推理暂不支持复杂的自定义解码流程。且惩罚token概率时仅惩罚output中的部分token,还需要考虑特定的inputs span,通用性不强。
智能6级FAQ厘清实验设置:N_gram = 3,

n_gram_penalty = 10

惩罚得分=n_gram_penalty * n_grams_frequent
调整提示词,让模型输出可以推动流程的话术提示词调整猜测:话术出现重复的原因是模型对上文的理解不够,遗忘了自己询问过哪些问题,对交互流程的状态不敏感。

做法:在指令中要求模型输出话术前,先判断用户最新的query和对话历史中的关系(首次询问/回复问询/不配合交互),然后结合该判断的结果再输出可以推动流程的话术。
可有效提高话术多样性,减少重复比例。且只需要改动提示词即可。对模型的指令遵循能力有要求(要求不高,只需要能按照格式输出)智能6级FAQ厘清
构造(不)包含禁止项的训练数据训练+推理成对构造遵循禁止项的训练数据,对于同一份数据(相同的对话上文),使用包含禁止项的prompt构造答案A,再使用不含禁止项的prompt构造答案B。

推理阶段在禁止项中增加禁止重复的命令。
灵活性强,推理阶段的禁止项可灵活配置。对指令遵循能力有较高的要求。方案沟通机器人
剔除/修正低质量数据训练前筛选SFT训练轮次中的重复话术,计算回复话术和对话历史的最长公共子串作为筛选条件。利用GPT4修复回复话术与对话历史重复内容较多的case,再进行人工质检(或直接剔除重复的训练case)当训练集不干净时,经过清洗可有效提高重复问题出现的比例。SFT的训练过程仅有正反馈,模型无法真正学到“不能重复”的负反馈。(仅让模型学习不重复的话术,不代表模型学到了不能重复的要求)因此无法根治重复问题。标准问意图厘清拟人化、神会员对话机器人
模型生成重复话术后进行后处理线上后处理基于jaccard计算字面相似度,达到重复判断阈值后再次请求一遍,使用以下2种方法

1. 修改提示词,让LLM对第一遍生成的重复内容改写润色或者再Chat一轮让模型reflection

2. 调整decoding args,设置repetition penalty或bad word ids(黑名单词的选取需要考虑重复的关键词)
可有效提高话术多样性,减少重复比例需要串联请求两次模型神会员对话机器人、托管厘清机器人
利用 reflection 机制让 gpt 反思重新构造训练数据训练前通过reflection让GPT4反思第一次结果中违背指令的地方,进行第二次推理,CoT内和指令中的要求有更多的呼应效果比较明显,人工侧厘清机器人的重复比例从8%降至1%(针对重复问题构造了60条左右数据)构造训练数据较为繁琐托管厘清机器人