对话式人工智能

NVIDIA 实现值得信赖、安全可靠的大型语言模型对话系统

大语言模型( LLM )非常强大,能够回答复杂的问题,进行创造性的写作、开发、调试源代码等。通过将 LLM 应用程序连接到外部工具,例如从实时源读取数据,或者使 LLM 能够决定根据用户的请求采取什么行动,您可以构建极其复杂的 LLM 应用。然而,以安全可靠的方式构建这些 LLM 应用程序具有挑战性。

NeMo Guardrails 是一个开源工具包,用于轻松开发安全可靠的 LLM 会话系统。由于生成人工智能的安全性是全行业关注的问题, NVIDIA 设计 NeMo Guardrails 与所有 LLM 一起工作,包括 OpenAI 的 ChatGPT 。

该工具包由社区构建的工具包提供支持,如 LangChain ,它在短短几个月内就在 GitHub 上聚集了约 3 万颗星。工具包提供了可组合、易于使用的模板和模式,通过将 LLM 、 API 和其他软件包粘合在一起来构建 LLM 驱动的应用程序。

构建值得信赖、安全可靠的 LLM 会话系统

NeMo Python 通过添加可编程规则来定义应用程序中所需的用户交互,使开发人员能够轻松地指导聊天机器人。它本机支持 LangChain ,为基于 LLM 的会话应用程序添加了一层安全性、保卫性和可信度。开发人员可以定义用户交互,并使用 Guardrails 库将这些 Guardrails 轻松集成到任何应用程序中。

将 Guardrails 添加到会话系统

Guardrails 是介于用户和 LLM 之间的一组可编程约束或规则。这些 Guardrails 监控、影响和支配用户的互动,就像高速公路上的 Guardrails 一样,它定义了道路的宽度,防止车辆转向不需要的区域。

用户向机器人发送查询,机器人返回响应。全套查询和响应加在一起就是一个闲聊。机器人程序响应用户查询并创建相应的提示,包括要执行的中间步骤或操作。然后,机器人程序使用提示调用 LLM , LLM 返回形成机器人程序响应的信息。

有时,机器人会使用包含文档的知识库中的相关信息。机器人从知识库中检索块,并将它们作为上下文添加到提示中。

NeMo Guardrails 基于 Colang ,这是一种由 NVIDIA 开发的用于对话式人工智能的建模语言和运行时。 Colang 的目标是为用户提供一个可读和可扩展的界面,以使用自然语言定义或控制对话机器人的行为。

与这个系统交互就像一个传统的对话框管理器。您可以通过在包含以下关键概念的 Colang 文件中定义流来创建 Guardrails :

  • 规范形式
  • 信息

一个canonical form是对一个话语的简化转述。这被用来推理对话的内容,并将规则与话语相匹配。

信息表示一种简写方法,将用户意图分类为规范形式的生成,这是一种使用自然语言的轻量级表示。在引擎盖下,这些消息被索引并存储在内存中的矢量存储中。激活时,顶部N来自向量存储的大多数类似消息被检索或发送到 LLM 以生成类似的规范形式。例如:

define user express greeting
	"Hi"
	"Hello!"
	"Hey there!"

这个例子代表了问候语的简写。它定义了一个新的规范形式express greeting,并提供一些自然语言提示或消息。任何类似于给定提示集的提示都被理解为用户表达问候。

由一组消息和操作组成,并定义用户交互的结构或流程。流也可以被认为是用户和机器人之间交互的树或图。

define flow greeting
	user express greeting
	bot express greeting
	bot ask how are you

当问候流被触发时,用户和机器人被指示交换问候。定义这些的语法与消息相同。

Guardrails 技术

当定义 Guardrails 时,这些模型位于用户和人工智能应用程序之间,监控两个方向的通信,并采取适当的行动来确保安全性,从而使模型保持在应用程序的期望域内。您可以使用简单直观的语法以编程方式定义 Guardrails 。

如今, NeMo Guardrails 支持三大类 Guardrails :

  • 有关时事的
  • 安全
  • 保卫

专题 Guardrails

主题 Guardrails 旨在确保对话集中在特定主题上,防止他们转向不希望的领域。

它们是一种机制,可以检测一个人或机器人何时参与超出主题范围的对话。这些主题 Guardrails 可以处理这种情况,并引导对话回到预期的主题。例如,如果客户服务机器人旨在回答有关产品的问题,它应该认识到某个问题超出了范围,并相应地回答。

安全 Guardrails

安全 Guardrails 确保与 LLM 的互动不会导致错误信息、有毒反应或不适当的内容。众所周知, LLM 会给出听起来似乎合理的答案。安全 Guardrails 可以帮助检测和执行策略,以提供适当的响应。

安全的其他重要方面 Guardrails 是确保模型的响应是真实的,并得到可靠来源的支持,防止人类入侵人工智能系统以提供不适当的答案,以及减轻偏见。

保卫 Guardrails

保卫性 Guardrails 防止 LLM 以一种会带来安全风险的方式执行恶意代码或对外部应用程序的调用。

当 LLM 应用程序被允许访问外部系统时,它们是一个有吸引力的攻击表面,并且会带来重大的网络安全风险。保卫 Guardrails 有助于提供一个强大的安全模型,并在发现基于 LLM 的攻击时减轻攻击。

Guardrails 工作流程

NeMo Guardrails 是完全可编程的。随着时间的推移,应用 Guardrails 和 Guardrails 触发的一组操作很容易自定义和改进。对于关键情况,只需几行代码就可以添加新规则

这种方法与人类反馈强化学习( RLHF )等技术高度互补,在 RLHF 中,模型通过模型训练过程与人类意图保持一致。 NeMo Guardrails 可以帮助开发人员强化他们的人工智能应用程序,使其更具确定性和可靠性。

以下是 Guardrails 流程的工作流程:

  1. 将用户输入转换为规范形式。
  2. 使用 Colang 基于规范形式匹配或生成护栏。
  3. 计划并规定机器人执行操作的下一步。
  4. 从规范形式或生成的上下文生成最终输出。
Diagram shows user input converted to canonical form, using existing guardrails or generating new guardrails based on canonical forms. The steps are then executed, and the final output is generated from the canonical form or generated context.
图 1 。用户与 NeMo Guardrails 交互的过程流程

有关解决实现 Guardrails 的常见模式的几个示例的更多信息,请参阅 NeMo GuardrailsGitHub repo。在 NeMo Guardrails 中构建自己安全可靠的 LLM 会话系统时,这些都是一套很好的食谱。

总结

NVIDIA 正在将 NeMo Guardrails 纳入NeMo 框架,其中包括使用公司的领域专业知识和数据集培训和调整语言模型所需的一切。

NeMo 也可以作为服务使用。它是NVIDIA AI Foundations,是一系列云服务,适用于希望基于自己的数据集和领域知识创建和运行自定义生成人工智能模型的企业。

NVIDIA 期待着与人工智能社区合作,继续让每个人都能使用值得信赖、安全可靠的 LLM 。今天就探索 NeMo Guardrails

 

Tags