L2.05.2invariance of unmentioned parts设计研究

修改需保留未涉及部分不变

别名: 未涉及部分冻结 · 修改不变式 · keep the rest still

概念解释

人说「只改第三个数字」,发送后第三个数字对了,第一段的用词、第二节的顺序、署名也换了一轮。动作名叫修改,实际是另一次全文采样,碰巧在被点名处也变了。未涉及部分不变(invariance of unmentioned parts)是局部修改要成立的不变式:请求没有点到的字符、结构、已选定的事实,在这一轮结束后应与进入前逐位可对。没有这条不变式,局部只是文案。

它不解释为什么局部比整篇重来更划算——那是成本。它钉的是「没叫你动的,不许动」。

机制

自回归生成没有天然的「这几段锁死」。除非工程上把未选中文本当不可写条件(约束解码、只把选区送进模型、或生成后再把未选中区贴回去),模型会把整篇当作新的条件分布再走一遍。温度大于零时,未点名处的每一个 token 都有机会换成近邻。人无法从表面上分辨「系统理解了只改这里」还是「系统重写了全文、这里也撞上了」。

不变式一旦破,评价策略被迫回到全文再读。局部动作的经济性被抽空。人会改用复制粘贴自己改,等于退出生成循环。

怎么研究

在局部请求前后对产物做 diff。金标准是:选区外应零差异(或仅允许空白规范化)。自变量:实现策略(约束解码 / 只送选区 / 生成后粘回)、温度、选区大小、周围文本是否含易被「顺手润色」的重复句式。因变量:选区外的编辑距离、被改动的类型(用词 / 事实 / 顺序)、用户能否在不看 diff 的情况下发现外围动了。

不要用「意思差不多」当通过。不变式是字面的,不是语义的。标题同义替换也算破。

边界

用户的请求表面上局部、实际上全局(「整体通顺一点,顺便改那个数字」)时,不变式与请求冲突,应先澄清作用域,而不是偷偷全篇润色。跨段引用(第三节数字改了,第一节的「如下所述」必须跟着改)是合法的连带,应被标成连带而不是当看不见的外围改动。代码里为了通过格式化工具而动空白,可白名单。图像局部重绘的接缝处物理上很难零差异,不变式要改成「接缝外的像素锁死」。这条不处理多轮之后慢慢漂离最初目标——那是漂移;这里只要求单轮外围冻结。

怎么落地

  • 实现上把未选中区当锁:只把选区(外加必要的上下文只读)送给模型,生成后按原位写回。不要整篇重抽再希望模型「自觉」。
  • 写回后打一份对用户可见的 diff。外围若出现改动,这一轮应失败或回滚,而不是当作润色赠品。
  • 请求里的作用域含糊时,先确认「只动选区 / 允许连带」,不要默认允许。
  • 验证:选中一个数字做局部改,提交前后对全文做逐字 diff。选区外非空白差异必须为零。再请没看 diff 的人通读:若他们指出「开头用词也变了」,不变式已破且已被人感知。把这条 diff 检查写进局部改的发布清单。

延伸

  • 同组L2.05.1 局部修改优于整体重生成 · L2.05.3 迭代历史需可回溯
  • 相邻L2.12 结果的迭代修改与局部重生成 · L2.06 控制粒度 · L3.12 生成内容的编辑与接管
  • 站内检索invariance of unmentioned parts · constrained decoding · span-locked generation

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/L2.05.2