英伟达的护栏技术NeMo Guardrails-开源

大模型的幻觉问题还没有彻底的解决方案,无论是它直接使用,还是作为Agent的大脑使用,幻觉问题都直接影响最终效果。如果是对外提供服务,甚至会带来极其严重的后果。为了解决这个问题,当前的主要手段就是护栏(Guardrails)。护栏是控制大型语言模型输出的特定方式,例如不谈论政治、以特定方式响应特定用户请求、遵循预定义的对话路径、使用特定语言风格、提取结构化数据等。针对这个问题,英伟达有专门的护栏方案,NeMo Guardrails,本文作一介绍。

01 主要能力

英伟达2024年3月就发布了护栏技术NVIDIA NeMo Guardrails,最近又有了更新。NeMo Guardrails 是一个开源工具包,可轻松为基于 LLM 的对话应用程序添加可编程护栏。它的原理大体是这样的:

就是在应用和大模型之间加一个过滤和控制,它是可编程的,主要有以下功能:

  • 可以定义轨道来引导和保护对话;您可以选择定义基于 LLM 的应用程序在特定主题上的行为,并防止其参与不必要主题的讨论。
  • 安全地连接模型、链和其他服务:您可以无缝、安全地将 LLM 连接到其他服务(又名工具)。
  • 可控对话:您可以引导 LLM 遵循预定义的对话路径,从而允许您按照对话设计最佳实践设计交互并执行标准操作程序(例如,身份验证、支持)。

02 五个控制点(轨道)

NeMo Guardrails主要支持五种护栏(见下图的五种轨道)

输入轨道:应用于来自用户的输入;输入轨道可以拒绝输入、停止任何额外处理或者改变输入(例如,屏蔽潜在的敏感数据、重新表述)。

对话轨道:影响 LLM 的提示方式;对话轨道对规范形式消息进行操作(更多详细信息请见此处)并确定是否应执行某个操作,是否应调用 LLM 来生成下一步或响应,是否应使用预定义的响应等。

检索轨道:在 RAG(检索增强生成)场景中应用于检索到的块;检索轨道可以拒绝某个块,防止其被用于提示 LLM,或者更改相关块(例如,屏蔽潜在的敏感数据)。

执行轨道:应用于需要由 LLM 调用的自定义操作(又名工具)的输入/输出。

输出轨道:应用于 LLM 生成的输出;输出轨道可以拒绝输出,防止其返回给用户,或者对其进行更改(例如,删除敏感数据)。

五条轨道,基本就把应用控制住了。

03 架构及原理

让我们看看用户和机器人之间的交互循环。

  1. 当用户通过自定义应用程序或聊天机器人测试 UI 与机器人通信时,服务器(图中左上角的Server)会收到他们的输入。此输入可能是自然语言,可能包括各种表达、俚语、拼写错误或其他特质。
  2. 第一个任务是解释此输入并将其翻译成规范形式。这涉及将输入简化为其基本含义,同时去除自然语言容易出现的多变性。例如,“hi”、“hello”和“hey there”等不同的问候语可能都被翻译成单一的规范形式,如“问候”。创建规范形式的目的是简化聊天机器人的决策过程。通过标准化输入,聊天机器人不需要单独理解短语或问题的每个可能变体;它可以理解和响应规范形式。这种标准化支持聊天机器人更有效地将用户输入与正确的响应或操作相匹配(图中中间框上边的两个黑框:Input->Canonical form及Match/generateguardrail flow部分)。
  3. 然后,执行 K-NN 向量搜索,利用系统内定义的 Guardrails 流将规范输入与适当的响应流进行匹配。这包括使用 Colang 文件中的配置。一旦确定了流,就会启动 Action Server。此服务器可以调用 LangChain 对 LLM 服务的调用,这些服务将根据确定的流采取行动。(图中Colang的框)
  4. LLM 服务对于响应用户输入生成动态内容至关重要。可以执行本地操作和工具(例如 LangChain),也可以使用外部集成(例如 Zapier)来扩展机器人的功能并处理复杂的操作或数据检索。然后将规范形式转换为用户可理解的输出(图中Canonical form->output)。这个最终输出是机器人对用户初始输入的响应,从而有效地关闭了交互循环。

04 主要应用场景

以下应用,都需要围栏,都可以直接用NeMo Guardrails.

  • 对一组文档进行问答(又名检索增强生成):强制事实核查和输出审核。
  • 特定领域助手(又名聊天机器人):确保助手紧扣主题并遵循设计的对话流程。
  • LLM 端点:为您的自定义 LLM 添加护栏,以实现更安全的客户互动。
  • LangChain 链:如果您在任何用例中使用 LangChain,则可以在链周围添加护栏层。
  • 代理(即将推出):为基于 LLM 的代理添加护栏。

05 总结

很多人以为英伟达就是做芯片的训练软件的,其实现在英伟达的软件也不少,甚至模型都在做。

护栏是当前非常重要的应用,算是大模型时代新出现的赛道,目前还在非常初级的阶段,可能是未来发展的重要领域之一。英伟达发了论文,开源了软件,并且做了非常好的文档,说明英伟达在AI上,还有更多的野心。

论文在 https://arxiv.org/pdf/2310.10501

开源在 https://github.com/NVIDIA/NeMo-Guardrails

文档在 https://docs.nvidia.com/nemo/guardrails/introduction.html

文章来自 公众号 AI与安全

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注