萧箫 发自 凹非寺

量子位 | 公众号 QbitAI

大模型们胡说八道太严重,英伟达看不下去了。

他们正式推出了一个新工具,帮助大模型说该说的话,并回避不应该触碰的话题。

这个新工具名叫“护栏技术”(NeMo Guardrails),相当于给大模型加上一堵安全围墙,既能控制它的输出、又能过滤输入它的内容。

一方面,用户诱导大模型生成攻击性代码、输出不道德内容的时候,它就会被护栏技术“束缚”,不再输出不安全的内容。

另一方面,护栏技术还能保护大模型不受用户的攻击,帮它挡住来自外界的“恶意输入”。

现在,这个大模型护栏工具已经开源,一起来看看它的效果和生成方法。

防止大模型胡言乱语的三类“护栏”

根据英伟达介绍,目前NeMo Guardrails一共提供三种形式的护栏技术:

话题限定护栏(topical guardrails)、对话安全护栏(safety guardrails)和攻击防御护栏(security guardrails)。

话题限定护栏,简单来说就是“防止大模型跑题”。

大模型具备更丰富的想象力,相比其他AI更容易完成创造性的代码和文字编写工作。

但对于特定场景应用如写代码、当客服而言,至少用户不希望它在解决问题时“脱离目标范围”,生成一些与需求无关的内容。

这种情况下就需要用到话题限定护栏,当大模型生成超出话题范围的文字或代码时,护栏就会将它引导回限定的功能和话题上。

对话安全护栏,指避免大模型输出时“胡言乱语”。

胡言乱语包括两方面的情况。

一方面是大模型生成的答案中包括事实性错误,即“听起来很有道理,但其实完全不对”的东西;

另一方面是大模型生成带偏见、恶意的输出,如在用户引导下说脏话、或是生成不道德的内容。

攻击防御护栏,即防止AI平台受到来自外界的恶意攻击。

这里不仅包括诱导大模型调用外部病毒APP从而攻击它,也包括黑客主动通过网络、恶意程序等方式攻击大模型。护栏会通过各种方式防止这些攻击,避免大模型瘫痪。

所以,这样的护栏要如何打造?

如何打造一个大模型“护栏”?

这里我们先看看一个标准的“护栏”包含哪些要素。

具体来说,一个护栏应当包括三方面的内容,即格式规范(Canonical form)、消息(Messages)和交互流(Flows)。

首先是格式规范,即面对不同问题的问法时,规定大模型要输出的内容。

例如被问到“XX文章是什么”,大模型必须给出特定类型的“文章”,而非别的东西;被问到“谁发表了什么”,大模型必须给出“人名”,而非别的回答。

然后是消息定义,这里以“用户问候”话题为例,大模型可以输出这些内容:

最后是交互流的定义,例如告诉大模型,怎么才是问候用户的最好方式:

一旦问候用户的机制被触发,大模型就会进入这个护栏,规规矩矩地问候用户。

具体工作流程如下:首先,将用户输入转换成某种格式规范(canonical form),据此生成对应的护栏;随后,生成行动步骤,以交互流指示大模型一步步完成对应的操作;最后,根据格式规范生成输出。

类似的,我们就能给大模型定义各种各样的护栏,例如“应对用户辱骂”的护栏。

这样即使用户说出“你是个傻瓜”,大模型也能学会冷静应对:

目前,英伟达正在将护栏技术整合进他们的AI框架NeMo中,这是个方便用户创建各种AI模型、并在英伟达GPU上加速的框架。

对“护栏”技术感兴趣的小伙伴们,可以试一试了~

开源地址:

https://github.com/NVIDIA/NeMo-Guardrails

参考链接:

https://www.nvidia.com/en-us/ai-data-science/generative-ai/nemo-framework/

声明:本文来自量子位,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。