智能体因执着于提示词而产生幻觉:RLHF 如何破坏了 Winograd 和 Flores 于 1986 年提出的状态机(以及一行代码的修复方案)

Reddit r/AI_Agents 新闻

摘要

作者提出 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 年的四值逻辑如何让我们删掉那些“禁止”规则

Reddit r/AI_Agents

作者讲述了如何用 Flores 与 Winograd 的言语行为状态机、Belnap 四值逻辑和 CSP 通道前缀,把 AI 智能体提示词里不断膨胀的 130 行防御性“禁止”规则,重构成可验证的状态迁移与 Makefile 依赖图,并向社区征集类似实践。