只有当歧义会导致明显不同的结果时,追问才值得发起
别名: 结果分叉才问 · 无害歧义 · value of clarifying information
概念解释
「弄成蓝色」落在一颗只有填充色的按钮上,两种理解画出的还是同一颗蓝按钮,问「你指填充还是描边」是浪费。同一句话落在一张海报上,蓝可能是品牌色、底、或强调色,三种理解是三张不同的海报,这时才值得问。追问的门槛是结果会不会分叉(ask only on outcome-changing ambiguity),不是句子在语言学上是否含糊。
许多系统按「我不确定」来问。模型不确定和结果分叉不是一回事。不确定但所有解释通向同一动作,问了只是增加一轮。
机制
澄清的价值等于:不同解释下动作差的代价,乘上走错的概率,减去问一句的成本。动作差接近零时,价值是负的。语言学上的歧义(代词、省略、多义词)几乎句句都有,若每处都问,对话无法前进。人只在「两条路通向不同世界」时才打断对方。
工程上常用置信度当门槛,置信度测的是模型对自己分布的感觉,不是动作差。低置信、动作相同,仍会冒出无用追问;高置信、动作截然不同(「删除」指向文件还是文件夹),反而被跳过。门槛接错了传感器。
怎么研究
为每条指令构造解释集合,并对每种解释生成将要执行的动作或产物,计算动作之间的可观察距离(是否同一 API 调用、像素 diff、用户是否判定为不同结果)。只有距离超过阈值才允许追问。自变量:门槛类型(模型置信 / 动作距离 / 一律问)。因变量:无用追问率(问了但两种解释产物不可辨)、有害跳过率(没问但产物被判定为不同)、总轮数。
「用户是否判定为不同」必须由未参与设计的人来做。设计者会把内部不同、表面相同的两次调用看成分叉,用户不会。
边界
安全与合规把某些歧义一律视为分叉(涉及未成年人、医疗剂量、是否对外发送),即使产物看起来接近,也要问。探索性创作里用户有时想看分叉本身,追问可以改成「要不要并排出两个版本」,那已经不是澄清,是分叉展示。解释集合算不全时(开放领域),动作距离无法估,应退到更保守的问,并承认这是估不出来,不是模型谦虚。
怎么落地
- 在追问之前对候选解释各跑一遍「将要做什么」的干计算:同一工具、同一参数则不问;参数或工具不同则问,并把差的那一维说出来(「蓝的是底还是字」)。
- 不要用模型置信度单独决定问不问。置信度可以排序候选,不能代替动作差。
- 无害歧义直接执行,并在结果旁用半句标出选了哪条解释,方便事后纠正,而不要为此先停住。
- 验证:收集二十条含糊指令,人工标「两种解释是否会让用户看成不同结果」。系统只应在「看成不同」的那些上开口。开口落在「看成相同」上的,记无用追问;该开口却执行了的,拿产物给第三人看是否被判成不同——判成不同就是有害跳过。