大模型们胡说八道太严重,英伟达看不下去了。
他们正式推出了一个新工具,帮助大模型说该说的话,并回避不应该触碰的话题。
这个新工具名叫“护栏技术”(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/