Transformers 对比搜索:续写重复怎么做采样对照
本地续写出现重复句式,先不要同时换模型、改输入和调参数。本文从三类重复样本入手,提供接口核对、两组配置登记和固定样本对照流程,帮助开发者与技术编辑判断是否值得切换解码策略。资料包仅确认官方博客索引中的历史文章条目,未提供方法正文、当前接口说…
准备三类样本,先辨认重复从哪里来
要排查 AI 续写重复,第一步是保留发生问题时的完整输入和原始输出。不要先删除重复段落,否则后续无法判断重复来自生成、上下文拼接还是展示层。
- 准备干净续写样本:输入只出现一次事实和一次续写要求,用于观察生成阶段是否自行绕回前文。
- 准备输入重复样本:有意重复一段资料,单独标记该变体,用于检查输入处理对结果的影响。
- 准备必要复述样本:要求结尾简短回顾关键条件,用于检查是否把合理总结误判为退化。
- 保留当前可用生成配置、模型权重版本、分词器版本、输入模板、依赖版本、设备与精度,实验另建配置,不覆盖生产配置。
三类样本分别比较,不把它们混成一个重复率。输入本来就在重复、生成不断重复且没有新信息、内容为总结而复述,是不同问题。若使用对话模型,还应检查角色边界和模板是否重复应用,可参照聊天模板迁移中的消息格式检查。
填完兼容表,才进入解码接入
资料中的 Hugging Face Blog 索引收录了 2022 年 11 月 8 日的 Generating Human-level Text with Contrastive Search in Transformers。它能帮助定位研究方向,不能证明当前安装版本仍提供相同入口,也不能证明某个模型或中文续写场景适用。以下是使用当前环境时的核对表,所有兼容结论均待填写。
| 核对对象 | 需要留下的依据 | 放行条件 |
|---|---|---|
| 库与运行环境 | 实际安装版本、后端版本、依赖锁定记录 | 核对材料与安装版本对应,不能只写最新版 |
| 模型与输入 | 模型标识及固定修订、分词器、语言和输入格式说明 | 同一模型能完成现有普通采样基线 |
| 当前解码入口 | 与安装版本对应的官方说明、实现位置及调用约定 | 明确存在对应实现;若不存在则停止该分支 |
| 模型适配条件 | 实现对模型输出、状态和缓存的要求及限制 | 所选模型满足要求,不把能加载当作支持证明 |
| 参数与策略选择 | 实际参数名、合法范围、默认值和互斥规则 | 确认请求确实选择目标策略,无未使用参数警告 |
| 长度与结束条件 | 新增输出长度、上下文余量、结束标记和停止规则 | 两组采用同一长度预算和停止规则 |
| 最小运行验证 | 短输入的原始请求、输出、日志和实际执行路径 | 成功生成且执行路径可辨认,不能静默退回其他策略 |
先根据索引条目定位文章正文,再核对当前版本说明和本地实现。若只能找到历史用法,就把状态写为未确认,保留普通采样,不据此填写支持版本、模型清单或性能结论。本文也不把其他重复惩罚配置视为对比搜索的替代证明。
用同一份续写材料建立配置对照
下面是原创虚构材料,只用于实验,不是业务事实或模型生成结果。先使用干净版本 S01,完整输入如下。
样本:S01
任务:接续最后一句,写出接下来需要完成的工作,不重写已有段落。
事实材料:编辑组计划整理一份设备维护说明。现有材料包括操作记录和故障清单。两份材料使用的设备名称尚未统一,发布时间也尚未确定。
已有正文:编辑组已经收齐操作记录和故障清单。下一步不能直接合并成稿,因为同一设备在两份材料中使用了不同名称。为避免读者误解,
限制:只依据材料续写;不得补充设备型号、故障数量或确定的发布日期。制作 S02 时,仅把事实材料原样再放入一次,其他要求不变;制作 S03 时,仅将任务改为接续正文并在末尾用一句话回顾名称统一与发布时间待定这两个条件。每个变体单独保存输入和编码结果,不能在两组生成之间修改。
下列配置是团队登记格式,不是 Transformers 参数。字段名和示例数值由本文自行设计;需在兼容核对通过后,映射到已确认的接口。资料包没有确认当前官方参数,因此不提供未经核对的具体调用代码。
{
"shared": {
"model_revision": "填写固定权重修订",
"tokenizer_revision": "填写固定分词器修订",
"input_ids_record": "填写各样本编码记录位置",
"new_token_budget": 160,
"batch_size": 1,
"stop_policy": "两组相同,登记实际规则"
},
"sampling_branch": {
"strategy": "普通采样",
"resolved_options": "填写现有可用采样参数及实际值",
"seed_list": [17, 29, 43]
},
"contrastive_branch": {
"strategy": "对比搜索",
"compatibility_status": "未确认,禁止提交生成",
"entrypoint_record": "填写核对后的入口和实现版本",
"resolved_options": "填写已确认的参数、范围与选定值"
}
}160 个新增 token 是本次实验建议预算,不是推荐最优值,也不等于 160 个汉字。两组共享模型、输入和预算,策略专属参数分别登记,不把采样参数整包复制进另一分支。已有重复控制设置应明确记录,并尽可能保持可比;无法对齐的差异需要在结论中列出。
按固定顺序生成,记录完整输出与成本
- 冻结样本、模型、模板和两套配置。正式运行前写明延迟与内存预算、质量底线,避免看到结果后临时改变标准。
- 先做短输入验证,核对策略实际生效。任一分支报错或参数被忽略,都不能进入质量比较。
- 分别预热两组,预热记录与正式计时分开,模型加载时间也单独记录。
- 对 S01、S02、S03 分别运行普通采样,按示例种子列表保留全部结果,不只挑最顺的一篇;随机种子仅是复现条件之一,不保证跨环境逐字一致。
- 在核对通过后,对相同样本运行另一分支。是否需要随机种子以该实现为准;若是确定性路径,重复运行用于观察成本波动,不能当成多个独立内容样本。
- 交替两组的运行顺序,保持设备、精度、批量和并发条件一致。计时覆盖完整生成区间;异步设备需要在区间边界等待计算完成,否则耗时可能失真。
- 保存原始输出,再提取新增续写部分供评分。记录实际新增 token 数、停止原因、完整耗时、峰值设备内存及主机内存;缺少监测能力的项标为未采集,不填零。
固定的是同一输出预算,不应为了凑长度而禁用自然结束。提前结束时照实保留,并同时比较共同长度区间和完整输出。输出更短可能看起来重复更少,因此必须把实际长度、内容完成度一起解释。
| 样本与分支 | 配置与运行标识 | 新增 token/停止原因 | 耗时/内存 | 原始结果 |
|---|---|---|---|---|
| S01 普通采样 | 待填配置版本、种子和轮次 | 待运行 | 待采集 | 待填输出记录位置 |
| S01 对比搜索 | 待填核对依据和轮次 | 待核对后运行 | 待采集 | 待填输出记录位置 |
为 S02、S03 及后续自有文章样本追加同样的记录。以上没有填入任何生成结果或性能数据,不能据此判断哪种策略更好。
用人工评分区分少重复与写得更好
将输出隐藏策略名称后交给编辑独立评分。下表是本文自定的 0 至 2 分评审尺度,各项均为分数越高越好;它不是官方指标,不建议直接相加得出唯一排名。
| 维度 | 0 分 | 1 分 | 2 分 | 必须记录 |
|---|---|---|---|---|
| 重复片段控制 | 整句或整段循环,明显阻碍阅读 | 有无新增信息的局部复述 | 无无效复述,必要回顾克制 | 重复原句、首次与再次出现的位置、是否必要复述 |
| 事实边界 | 改写关键条件或编造确定事实 | 出现依据不足的暗示或模糊推断 | 保持全部条件,未添加无依据事实 | 问题原句及对应材料;未发现问题也要登记 |
| 连贯性 | 接续断裂或前后矛盾 | 基本能接上,但指代或过渡不清 | 自然接续,指代与逻辑一致 | 衔接处与需要返工的位置 |
| 主题推进 | 只改述前文,没有推进 | 提出下一步但展开不足 | 在材料边界内推进任务 | 新增且与任务相关的信息点 |
评分记录按样本、匿名输出编号、评审者、四项分数、问题片段、理由和最终处置建行。两名编辑有分歧时保留各自原始评分,再讨论判定,不用平均分掩盖事实错误。
以 S01 为例,检查的是是否继续说明如何统一名称,而不是再次介绍已经收齐两份资料;把发布时间写成确定日期则应标记事实偏移。S03 末尾简短回顾待定条件属于任务要求,不应仅因词语重复就扣分。这些是评分规则示例,不是某个模型的输出表现。
结果异常时,按故障与原因逐项修正
| 常见故障 | 可能原因 | 修正动作 |
|---|---|---|
| 找不到入口或提示参数未使用 | 历史用法与当前版本不对应,或封装层未传递参数 | 核对实际安装版本、入口实现和最终请求;无法确认则停用该分支,恢复已有基线 |
| 输出前面又出现完整输入 | 展示或保存时把输入与新增内容拼接了两次 | 对照原始返回和正文提取边界,先修正提取逻辑,再重做评分 |
| 两组都复述相同段落 | 输入重复、旧草稿拼入多次,或任务要求不明确 | 先对照 S01 与 S02 的输入;另建清理版本,保持其他条件不变重新比较 |
| 重复少了,但事实偏移增加 | 文字多样性掩盖了无依据补充,或输出偏离任务 | 逐句回查材料并降低事实边界评分;不得以少重复抵消事实错误,必要时回退 |
| 输出短得多,看起来更流畅 | 结束规则、长度参数不同,或提前结束 | 核对预算和停止原因,同时评估共同区间与完整内容,不能只看重复数量 |
| 耗时或内存超出预算 | 策略实现成本、配置差异、设备竞争或测量范围不一致 | 先统一运行条件与计量口径;另开单变量实验,不在原对照中同时缩短输入、换精度和调参数 |
发布前检查,再决定采用还是回退
- 当前入口、参数与模型适配均有对应版本的依据;未确认的内容没有写成支持结论。
- 两组模型、分词器、输入编码、长度预算和停止规则已留档,额外差异已明确列出。
- 干净输入、重复输入、必要复述三类样本分别评估,并补充具有代表性的自有续写材料。
- 普通采样保留全部约定轮次,另一分支的重复运行没有被误计为独立质量样本。
- 重复片段、事实偏移、连贯性和主题推进均有人工判断,错误句子可以定位回查。
- 耗时、实际输出长度、结束状态和资源口径完整;未采集数据明确标记,没有虚构收益。
- 待发布正文已人工检查事实、重复、衔接与完整性,未把失败或截断结果直接发布。
- 保留普通采样配置和切换入口,记录采用范围、复核负责人及触发回退的条件。
只有在目标样本中无效重复减少、事实边界与连贯性不退步,并且成本处于预设预算内,才考虑小范围采用。任一关键条件未满足就继续使用基线,或另开实验排查输入与模型适配。现有资料不足以判断中文效果和当前接口兼容性,下一步应先补齐正文及版本核对记录,再执行上述对照,而不是直接替换生成策略。
下一步
把这篇的方法练一遍
提示词和步骤可以带到创作里直接试做一版。