智能体因执着于提示词而产生幻觉:RLHF 如何破坏了 Winograd 和 Flores 于 1986 年提出的状态机(以及一行代码的修复方案)
摘要
作者提出 LLM 幻觉源于 RLHF 强制模型在 Token 1 无条件承诺(Promise),导致生成过程中无法反悔只能编造 API;建议用 Winograd/Flores 对话行动状态机的『Zero-Shot Flores Handshake』显式授权模型先反问或拒绝,再生成代码。
我们都见过 LLM 在第 1 个 token 就回复“当然!以下是如何使用 PackageX 实现 Y”,打开代码块,然后在第 15 行若无其事地编造出一个宇宙有史以来从未存在过的 performY 方法。大多数开发者认为这是记忆缺陷(“它忘了文档”)。然而,如果你开启一个新对话,问同一个模型“PackageX 有没有用于 Y 的原生方法?”,它通常会告诉你没有,并解释手动实现的替代方案。早在 1999 年,我就写过一个名叫 spew 的 Perl 工具,它将加权 BNF 解析器反向运行——从 START 开始沿语法树向下遍历,生成有效输出。编写代码的自回归 LLM,就是一个拥有数十亿参数的 BNF 反解析器。在 Terry Winograd 和 Fernando Flores 于 1986 年提出的“行动对话”状态机中,执行者在回应客户请求时,核查现实情况后有三种合法行动:承诺、反提议或拒绝。商业化的 RLHF 偏好调优砍掉了反提议和拒绝——迫使模型在第 1 个 token 就作出无条件承诺。由于 token 生成只能追加,一旦模型输出“当然!”并在第 10 个 token 打开代码围栏,那么当它写到第 15 行、意识到 PackageX 没有用于 Y 的 API 时,就无法退格删除。为了闭合所承诺的代码块对应的外层语法树,它在数学上唯一的逃生通道,就是凭空捏造出一个标识符,仿佛它过早作出的承诺若为真,这个标识符就应该存在。由于 Winograd、Flores 和 John Searle 的言语行为形式体系已经深深编码在预训练权重中,在一个全新的提示开头加入我所谓的“零样本 Flores 握手”——要求模型先输出有见证依据的断言(?Assert),并明确允许它提出 ?Counter-Offer 或 ?Decline,同时给出可检验的完成期限(By-When)——就能阻止第 1 个 token 处的“当然!”反射,让模型在打开代码围栏之前先提出真正可行的替代方案。还有人尝试过用言语行为协议或形式化协商状态,在代码生成开始之前覆盖 RLHF 的“唯唯诺诺”先验吗?
相似文章
为什么我们的 AI 智能体提示词不断劣化成一份 130 行的法律合同,以及 1986 年的言语行为状态机与 1977 年的四值逻辑如何让我们删掉那些“禁止”规则
作者讲述了如何用 Flores 与 Winograd 的言语行为状态机、Belnap 四值逻辑和 CSP 通道前缀,把 AI 智能体提示词里不断膨胀的 130 行防御性“禁止”规则,重构成可验证的状态迁移与 Makefile 依赖图,并向社区征集类似实践。
幻觉作为特性而非缺陷:评估多智能体架构将推测性语言模型输出转化为可测试科学假设的能力
本文提出了一种基于Rust的多智能体架构,利用LLM幻觉作为特性来生成和评估科学假设,并将其性能与直接提示和其他方法进行比较。
幻觉雪球效应:多智能体LLM流水线中错误传播的状态转换建模
本文将多智能体LLM流水线中的幻觉传播建模为马尔可夫过程,表明错误在各个阶段变得越来越难以检测,并提出早期验证以降低存活率。
我的智能体不停撒谎,于是我让它们展示工作过程
作者描述构建了一个‘门控’,记录工具调用并验证AI智能体回答中的声明是否对应实际日志条目,迫使智能体展示其工作过程,从而减少幻觉回答。
LLM代理中针对工具幻觉的封闭世界解决方案
本文介绍了一种封闭世界解决方案,用于应对LLM代理中的工具幻觉,并提供了一个分类体系和基准测试,以测量和解决虚构的工具调用。