与 Guardrails AI 的 Shreya Rajpal 一起让 AI 革命不脱轨
摘要
Guardrails AI 是位于概率性语言模型与确定性软件之间的运行时规范与纠错层。 Shreya Rajpal 发现,即便提示词塞满指令和感叹号,也“远远不足以”保证输出可用,于是搭建了 Guardrails。开发者逐字段定义正确性;Guardrails 校验响应,将失败封装成定向反馈,只针对出错组件重新提问,再合并修正结果。
眼下最直接的切入口,是让 LLM 输出足够安全,能够成为软件指令,而不只是生成文本。 Rajpal 以信用卡为例,按类型、格式和合理区间约束抽取出的利率;在 text-to-SQL 案例中,系统在沙箱执行查询,将执行错误返回给模型自我修正,屏蔽私有表,并拒绝 DROP、UPDATE 或 INSERT 等操作。结论是:领域知识必须转化为可执行的正确性规范。
前沿模型变强,并不会消除基础设施机会,因为成本、延迟、可移植性和不断上升的产品目标,仍会让可靠性成为约束。 Nathan Labenz 观察到,GPT-4 可以零样本完成 Waymark 的核心任务,而“便宜20倍”的 GPT-3.5 Turbo 可靠性较低。Rajpal 预计,未来会出现“不同价位、不同延迟、来自不同供应商的高性能模型”,供应商越多,与模型无关的验证层就越有价值。
语义验证把软件测试从语法、类型和可执行代码,扩展到更广的层面。 Guardrails 可以逐句拆解摘要,将每个论断与来源段落匹配,删除低于开发者设定相似度阈值的句子,并过滤冗余内容。Rajpal 偏好的架构,是将规则、启发式方法、窄领域高精度模型和 LLM 评审器组合起来,形成“整体大于部分之和”的系统——这是概率性防线,而非确定性承诺。
智能体的可靠性是一个误差累积问题,解决方案是在每个决策和动作上都进行验证。 Labenz 将朴素的多智能体系统描述为“链条中最弱的一环有多强,系统就有多强”;Rajpal 认同智能体需要正确性规范,但指出,目标由系统自主生成后,动态配置约束会更加困难。订机票体现了这一差距:理解意图越来越可行,但日历、预算、支付、登录和双重认证等环节,让有依据的执行仍然脆弱。
更尖锐的安全分歧在于:产品采用会等到信任建立,还是会跑在信任前面。 Rajpal 警告,即便技术上完美的智能体也可能面临“信任赤字”,并认为系统必须在真正需要人类介入时及时暴露这一点;Labenz 则反驳说,Guardrails 可能是在“拯救人们免于自作自受”,因为用户只要觉得系统足够可靠,就会开始委托。Fergal Reid 将运行原则概括为“信任但验证”,并强调正确性取决于场景:过滤脏话可能有助于事实生成,却可能损害一个追求真实感的聊天机器人。
安全必须包围模型,因为训练无法覆盖对抗行为的长尾。 Rajpal 建议开发者在“LLM API 调用前后夹上验证层”,限制可接受的交互,并在生成后检查被禁止的行为。同一框架还支持重新提问、确定性修复、过滤、抛出异常,或采用默认空操作模式:原样返回输出,同时记录失败,让每个产品自行编码对成本、延迟和错误的容忍度。
精读
1. LLM 输出进入生产软件的那一刻,可靠性就开始崩溃
Rajpal 从自己的原型讲起:文档聊天应用看起来很强大,但反复测试后发现,它们无法稳定地产生预期体验。与传统机器学习不同,应用开发者既没有训练模型,也不能简单地加入领域数据;实际可控的界面,只剩下提示词,外加“大量文字说明”,或许还有“大量感叹号”。
她对底层错配的判断是明确的:语言模型“真的很有能力,也真的很强大”,但同时“天生具有很强的随机性,非常难以控制”。产品团队可能清楚知道正确响应应该是什么样,却缺少系统化表达、测试和执行这套知识的方法。
Guardrails 把这些知识转化为规范。开发者拆解预期输出,分别校验各个组件,并决定每种失败应如何处理;因此,这套框架既瞄准模型输出,也瞄准概率性生成与传统软件交汇处那条脆弱的接口。
Rajpal 从自动驾驶中借鉴了设计类比:深度学习感知系统向更偏规则驱动的决策系统提供输入。工程问题不是假装感知系统永远不会失败,而是要在失败发生时,让“这个随机系统与那个确定性系统之间的接口”保持稳健。
2. 结构化抽取暴露出最简单、最具投资价值的切入口
Rajpal 的原型使用了自己的 Chase 信用卡协议。她希望得到包含关键条款的干净 JSON,同时提前知道利率必须是数字,可以带百分号,并应落在合理区间内;费用名称则应足够简洁,能够作为展示字段或下游变量使用。
模型可能抽取出了正确概念,却以不一致的形式返回,导致后续数据同步不可靠。Guardrails 允许开发者约束每个实体的类型、范围、格式、描述和相关性,用一套可检查的 schema,替代“给我 JSON”这种模糊指令。
这不如开放式推理光鲜,却是商业化的基础:生成答案只有在普通软件能够解析并信任其接口时,才真正具备操作价值。Labenz 后来意识到,这一工具的即时便利在于,开发者可以在更高层定义目标结构,无需手写类似 XML 的示例,也不用再剥离“I hope this was helpful”之类的前缀。
早期 traction 证明了这一痛点的广泛性:Labenz 提到,录制时项目在 GitHub 上约有1,200颗 star。这一信号不只是市场对又一个模型封装器的兴趣,也反映出市场需要一份能在概率性模型与应用之间复用的契约。
3. Text-to-SQL 说明,正确性就是被执行化的领域知识
在 text-to-SQL 中,用户用自然语言提问,希望得到一条能在特定数据库上实际运行的查询。Guardrails 创建 SQL 沙箱,执行生成的查询,捕获失败原因,再把错误返回给模型,让模型针对这一环境自行修正。
可执行只是第一层。开发者可以排除私有表,限制客户可查询的表,并拒绝 DROP、UPDATE 或 INSERT 等操作;这些约束表达的是业务权限和安全政策,而不只是 SQL 语法。
Rajpal 的框架是:每个应用负责人都拥有关于“在这个任务里,对我而言什么才算正确”的领域知识,也知道违反规则的代价有多大。一条格式错误的查询可能完全不可用,必须修正;较轻的质量问题则可能只需记录下来,留待后续处理。
4. 语义验证把测试推进到 assert 语句无法表达的领域
Labenz 将概念边界划在显式的软件错误——语法错误、变量缺失、类型无效——与“答案是否合理、相关、逻辑自洽”等判断之间。Rajpal 的答案不是设计一个通用评估器,而是组合规则检查、启发式方法、传统分类器和作为评审器的语言模型。
她以摘要为例,将一段看似不可拆分的文本分解成句子。每个句子都与来源中的段落进行相似度匹配,从而实现细粒度归因;开发者再设定一个阈值,体现自己接受多大程度的变化,并可以删除与来源相似度低于阈值的句子。
简洁性也可以成为独立测试的属性。Guardrails 比较生成摘要中的句子,过滤彼此过于相似的内容,在无需重新生成全文的情况下处理重复问题。更大的方法论是:把含混的质量判断拆成更小、可验证的任务。
Rajpal 认为,这套能力还带来了生成之外的二阶价值:“你确实可以把这些模型用作验证系统。”一个 LLM 可以评判另一个 LLM 的工作;而在延迟、专有数据或精度更重要时,小型分类器可能更合适。之后,Fergal Reid 认为,更高的评估器多样性和集成方法,能够提供更多保障和信心。
5. 即便 GPT-4 更擅长遵循指令,可靠性经济学仍然成立
Labenz 的 Waymark 案例具体呈现了价格与性能的权衡。大约1年半前,一套微调后的 GPT-3 首次完成 Waymark 的视频脚本任务,表现并不完美;如今 GPT-4 基本可以零样本完成,而 GPT-3.5 Turbo 的可靠性较低,但价格大约“便宜20倍”。
这为 Guardrails 创造了一个价值驱动因素:在保留应用层可靠性目标的同时,把部分工作负载迁移到更便宜、更快或开源的模型上。Rajpal 已经听到一些开发者反馈:他们同时喜欢 Guardrails 和 OpenAI,但认为后者对于正在构建的产品来说过于昂贵。
不过,Rajpal 说,对她而言更有意思的是模型正在执行什么任务,而不是模型替换本身。Guardrails 最有价值的场景,是 LLM 被使用时“不是仅仅作为文本生成器,而是像一条软件指令”——例如 AI 接待员必须遵循工作流、尊重可用时间、正确安排日程,并避免索取私密信息。
创意产品同样有硬约束。生成脚本可能需要排除脏话、竞争对手或同类产品,即便原创性本身值得鼓励;验证机制让创意在有价值的地方保持不受限,同时执行那些决定输出能否被接受的要求。
6. 定向重新提问,把定性反馈转化为纠错闭环
Rajpal 首先保留了一个重要限制:人类反馈仍然是判断输出是否符合用户原始标准的有效、且往往不可或缺的方法。Guardrails 的起点,是将其中一部分定性判断通过规则、机器学习或另一个 LLM,编码成具体失败项。
一旦被编码,失败就会变成可执行的上下文。Guardrails 找出相关的出错字段,构造纠正提示词,只要求模型重新生成这些部分,再将结果合并进原响应;用户感知到的仍是一次调用,即便后端实际调用了模型多次。
这利用了 Rajpal 认为真正新出现的一项能力:只要提供足够上下文,模型就能“自我修复或自我纠正”。这套框架把人类反复回到 ChatGPT、解释答案为何失败并要求再次尝试的行为系统化了。
边界取决于领域。“这段文字必须有趣”几乎无法可靠评分,而医疗或其他高风险输出,即便经过自动筛查,也可能仍需人工确认。编码可以减少监督,但不会让每个主观或高后果决策都变得可自动化。
7. 智能体的错误累积速度快于能力累积速度
Labenz 将 Guardrails 映射到这样一类系统:一个模型承担多个由脚手架组织起来的角色——规划器、编码器、检索器,甚至模拟城镇中的每一个人。由于每一步都有一定失败概率,朴素的链式系统“链条中最弱的一环有多强,系统就有多强”,验证于是成为各角色之间的连接组织。
Rajpal 认同智能体需要约束和正确性规范,但指出了一个结构性缺口:传统应用由开发者定义任务和输出,而智能体可能自行生成目标和执行计划。于是,人类缺少把保障机制附着到每个动态生成动作上的细粒度入口。
理想架构应当持续评估智能体,而不要求开发者预先授权每一步。Rajpal 称这是“需要解决的关键问题”,否则这些智能体很难从令人兴奋的演示走向可雇佣、可工作的系统。
社区构建的 GitHub Action AutoPR 展示了一个受约束的工作流:它将 issue 转换成 pull request,但生成的文件必须存在,diff 也必须符合仓库要求。这些明确不变量,让整个流程适合进行运行时验证。
8. 近期瓶颈在有依据的执行,而不是语言理解
Labenz 区分了实时副驾驶与委托型系统。Waymark 的流程高度结构化:用户委托脚本写作和素材选择,随后检查渲染后的视频。当用户希望直接说“帮我订一张机票”,并期待系统解决所有下游依赖时,智能体才变得更重要。
他与高管助理公司 Athena 的合作暴露出两者的分野。模型能够理解客户请求、解析含义并提出合理的追问,却仍然无法可靠地“点对按钮”,而这涉及网页界面、结账、支付、登录或双重认证。
Rajpal 将订机票转化为一组有依据的约束:目的地、时间安排、预算、实时可用性和用户偏好。验证必须发生在每个决策和动作上,而不只是最终行程上,因为每一步都必须持续符合这些约束。
9. 人类信任可能落后于能力,也可能危险地跑在能力前面
Rajpal 从自动驾驶中引入了另一条经验:能力与采用是两个不同问题。她说,即便智能体在技术上变得完美,用户在委托任务时仍可能存在“信任赤字”;因此,系统需要验证机制,展示自己正在做什么,并在每个重要步骤保留控制权。
Labenz 押注于相反的行为路径。用户未必会等到护栏建立后才拒绝委托,而可能很快得出“对,看来它能用”的结论,直到后来才发现下行风险有多严重;在这一框架下,Rajpal 是在“拯救人们免于自作自受”。
Labenz 引用了他归因于哈佛医学院教授 Zach Kahani 的一项发现:GPT-4 在评估文本方面优于生成文本,这推动了自我批评工作流;但即便名义上有人工参与的临床医生,也可能随着模型质量提升而变得懒惰或过度信任。
Fergal Reid 认为,人类仍将不可或缺,因为正确性随场景变化。过滤脏话可能适合事实生成,却可能伤害一个需要模仿脏话使用者、以保持真实感的聊天机器人。他还警告,持续弹出“注意”提醒最终会失去作用,而干预过少则会助长自满。
10. 安全要求在模型输入和输出两端形成夹层
Labenz 认为,提示词注入、对抗性用户、被操纵的网页,以及正在形成的 AI 搜索与 SEO 军备竞赛,会暴露出良性测试无法发现的漏洞。模型替换还会带来另一重风险:廉价微调的 Llama 并不一定具备与 OpenAI 或 Anthropic 系统一致的运行行为或安全性。
Rajpal 不认同仅靠训练就能弥合这一差距。随机性模型将面对人们使用它们时“令人兴奋且古怪的各种方式”,任何数据集都无法覆盖每一种对抗性输入;因此,安全属性需要模型周围更具确定性的机制来保障。
她的设计模式是在“LLM API 调用前后夹上验证层”。输入闸门可以将交互限制在受支持的类别内,或检测已知的注入模式;输出检查则可以在输入过滤器漏掉攻击时,捕捉被禁止的行为。
目标是按应用拆解纵深防御。团队不再要求一个模型普遍安全,而是定义可接受的领域,过滤超出边界的内容——这相当于设置多个检查点,类似生产级机器学习系统在学习组件之间交替加入确定性或人工验证。
11. 运行时控制补足内容审核、评估和模型训练
OpenAI 的 moderation endpoint 是一种窄范围验证器:将输出归类到一组有限的潜在问题内容类别中,再由开发者决定下游动作。Rajpal 的扩展思路,是将这一模式推广到代码、摘要、结构化抽取、数据库查询和应用特定标准。
失败处理取决于产品的“痛苦承受度”。高风险且不可用的输出可能触发定向重新提问;糟糕的摘要句子或包含脏话的段落可以被过滤;某个值可以通过确定性方式修复;另一个应用则可能直接抛出异常。
Guardrails 的默认空操作模式仍会运行每个验证器,但原样返回输出,并记录失败项。这让团队在执行规则前先获得可观测性,也为后续决定是否调整提示词、模型、阈值或运行时政策积累证据。
Rajpal 认为,OpenAI Evals 是另一套用于离线基准测试的系统,评估用户真正关心的任务;她也认可其众包式产品闭环。Anthropic 的 Constitutional AI 同样通过训练发挥作用,而她关注的是可配置的事后控制:当产品对正确性的定义发生变化时,无需重新训练即可调整。
12. 配置层可能成为模型大规模扩张时代的可移植标准
Guardrails 的 RAIL 规范,即 Reliable AI Markup Language,将输出 schema 与高层任务提示词分离。开发者用标记语言表达类型、结构和验证规则;Guardrails 再将这份契约编译成适合特定模型的提示策略。
这套抽象也能吸收模型漂移。底层模型行为变化时,开发者可以保留同一份规范;框架则更新契约被渲染成指令的方式,包括 instruction tags 等模型特定技术。
开销并非单向增加。重新提问会增加延迟,但 Rajpal 发现,真正需要正确性的应用用户通常愿意等待;结构化约束消耗的 token 也可能少于冗长的英文指令,并降低反复试验提示词的工程复杂度。
Labenz 怀疑,OpenAI 的行为是否会成为事实标准,因为周边工具都围绕当前领先者构建。Rajpal 仍然预计供应商将保持多元:不同价格、不同延迟、不同专长,以及开源选项都会存在;在标准与模型共同演化的过程中,互操作性压力也会持续存在。她更广泛的希望,是让税务、旅行预订和其他琐碎工作自动化;她的担忧,则是 AI 大幅提升知识工作者效率后带来的岗位替代。