NVIDIA-NeMo/Guardrails

NeMo Guardrails is an open-source toolkit for easily adding programmable guardrails to LLM-based conversational systems.

它解决的问题

由 LLM 驱动的聊天机器人和助手可能会偏离主题、泄露敏感数据、产生幻觉事实,或被越狱和提示注入攻击操纵。NeMo Guardrails 是一个工具包,允许开发者在他们的应用和 LLM 之间插入一个可编程的安全和控制层,以便他们定义模型可以说什么、应该避免哪些主题、在某些情况下应如何回应,以及可以安全调用哪些工具。

工作原理

应用不是直接调用 LLM,而是使用 generate() 等方法调用护栏层。该层运行一系列可配置的“护栏”,处理用户输入,指导 LLM 的提示方式,检查检索到的文档(用于 RAG),验证工具调用,并在模型输出到达用户之前检查输出。护栏在包含 config.yml 文件(LLM 模型、活动护栏、设置)、可选的 actions.py(用于自定义 Python 操作)以及用 Colang(一种对话建模语言)编写的 .co 文件的配置文件夹中定义。Colang 允许你用可读的、类似 Python 的语法指定对话流程和规则。该库支持五种护栏类型:输入护栏、对话护栏、检索护栏、执行护栏和输出护栏。它还包括一个用于运行护栏服务器的 CLI、一个 Docker 镜像、可选的 LangChain 集成,以及用于越狱检测、内容安全、事实核查和幻觉检测的内置护栏。

适用人群

构建基于 LLM 的对话应用的开发者,他们需要比原始模型提示提供更多的控制和安全。它面向创建问答机器人、特定领域助手或暴露的 LLM 端点的团队,并希望强制执行合规性、防止有害内容并设计可预测的对话流程。用户应熟悉 Python 和基本的 YAML 配置;了解 Colang 有帮助,但该语法设计为易于学习。

亮点

  • 五种可编程护栏:输入、对话、检索、执行和输出。
  • Colang 对话建模语言,具有类似 Python 的语法,用于定义对话流程和护栏条件。
  • 内置护栏,用于越狱和提示注入检测、内容安全、事实核查和幻觉检测。
  • 支持多种 LLM(OpenAI GPT-3.5/GPT-4、LLaMa-2、Falcon、Vicuna、Mosaic),并可选择与 LangChain 集成。
  • 包括 CLI、带 HTTP API 的服务器模式,以及用于部署的 Docker 支持。
  • 提供评估工具(nemoguardrails evaluate)来测试对话安全性。
  • NVIDIA 的活跃开源项目,提供大量文档和示例。

相关

  • 项目
  • 项目
  • 项目
  • 项目