Nemo Guardrails:提升AI安全性和可靠性

2024-07-24

By Abdelrahman Elgendy

Nemo Guardrails:提升AI安全性和可靠性

如今,随着组织越来越依赖AI技术,AI的安全性和可靠性变得越来越重要。确保AI系统的准确性、可靠性和鲁棒性对于道德原因以及在市场中保持信任和信誉至关重要。随着AI在各个行业的进一步整合,优先考虑安全性对于预防错误和抵御攻击至关重要。

现在,我们有了NVIDIA NeMo Guardrails,这是一个开源工具包,提供了确保使用大型语言模型(LLMs)的智能应用程序的准确性、相关性、适当性和安全性所需的工具。这个工具包包括所有必要的代码、示例和文档,以便企业增强AI驱动文本生成应用程序的安全性。

66.1.jpeg 66.1.jpeg

理解Nemo Guardrails

66.2.png 66.2.png

66.3.png 66.3.png

AI的自动文本生成可能伴随着许多潜在的风险和不准确性。因此,我们需要一些东西,可以作为屏障,防止生成的文本偏离轨道,确切地说,就是护栏。这就是Nemo Guardrails的用武之地。

在编程中,护栏由可编程规则或约束组成,它们作为应用程序代码或用户与大型语言模型(LLM)之间的中介。这些护栏监督、影响并控制用户与聊天机器人的交互。NeMo Guardrails支持三种主要类型的护栏,分别是主题护栏、安全护栏和安全护栏。

66.4.png 66.4.png

Nemo Guardrails

让我们首先解释一下主题护栏,它旨在确保AI的响应在用户查询的范围内,确保生成的文本保持主题相关性并满足用户的需求。然后我们有安全护栏,它内置了过滤器和监控器,以确保所有生成的内容符合预定义的道德标准,并且没有偏见、攻击性语言或不适当的内容。最后,安全护栏保护AI模型免受潜在攻击,如数据投毒或模型反演攻击。这些功能有助于保护敏感数据并维护用户信任。

此外,Nemo Guardrails还提供了全面的文档和许多实际示例。这使开发人员能够理解如何根据其特定要求实施和自定义AI安全功能。

现在让我们来看看如何安装、实施和使用Nemo Guardrails的示例。

步骤1:安装

pip install nemoguardrails

步骤2:创建一个新的护栏配置

每个护栏配置必须存储在一个文件夹中。标准文件夹结构如下:

.
├── config
│   ├── actions.py
│   ├── config.py
│   ├── config.yml
│   ├── rails.co
│   ├── ...

为你的配置创建一个文件夹,例如config:

mkdir config

config.yml包含所有一般配置选项(例如,LLM模型、活动护栏、自定义配置数据),config.py包含任何自定义初始化代码,actions.py包含任何自定义Python操作。

以下是config.yml的示例:

models:
  - type: main
    engine: openai
    model: gpt-3.5-turbo-instruct

rails:
  # 输入护栏在收到用户新输入时被调用。
  input:
    flows:
      - check jailbreak
      - mask sensitive data on input

  # 输出护栏在生成机器人消息后触发。
  output:
    flows:
      - self check facts
      - self check hallucination
      - activefence moderation
      - gotitai rag truthcheck

  config:
    # 配置应在用户输入中屏蔽的实体类型。
    sensitive_data_detection:
      input:
        entities:
          - PERSON
          - EMAIL_ADDRESS

这个护栏配置指定了确保AI模型的安全性和可靠性的规则,特别关注输入和输出交互。让我们从输入护栏开始,分解每个部分,涵盖其配置流程,包括“检查越狱”(Check Jailbreak),它检查是否有任何试图利用AI模型或其运行系统的漏洞的行为,例如未经授权的访问或操纵。“在输入时屏蔽敏感数据”(mask sensitive data on input)屏蔽或隐藏从用户接收的敏感信息(例如个人姓名、电子邮件地址),以保护隐私和安全。

接下来,我们有输出护栏,其配置流程包括“自我检查事实”(self check facts)、“自我检查幻觉”(self check hallucination)、“ActiveFence审核”(activefence moderation)、“GotItAI RAG真相检查”(gotitai rag truthcheck)。“自我检查事实”通过与可靠来源或数据库进行交叉引用,验证生成的响应的事实准确性。“自我检查幻觉”检查生成的响应中是否有任何幻觉或无意义的内容,确保连贯性和相关性。“ActiveFence审核”涉及ActiveFence提供的审核机制,用于过滤生成的响应中的有害或不适当内容。“GotItAI RAG真相检查”利用GotItAI提供的真相检查服务,根据事实信息验证生成的响应的准确性。

总的来说,这个护栏配置旨在在整个AI交互过程中实施各种安全措施,包括输入验证、输出验证和敏感数据保护,从而提高AI模型的可靠性和可信度。

66.5.png 66.5.png

步骤3:加载和使用护栏配置

加载护栏配置并创建一个LLMRails实例,然后使用generate/generate_async方法调用LLM。

from nemoguardrails import LLMRails, RailsConfig
# 从指定路径加载护栏配置。
config = RailsConfig.from_path("PATH/TO/CONFIG")
rails = LLMRails(config)

completion = rails.generate(
    messages=[{"role": "user", "content": "Hello world!"}]
)

示例输出

{"role": "assistant", "content": "Hi! How can I help you?"}

正如您从上面的代码中看到的,使用Nemo护栏的实现和使用非常简单,只需三个步骤,我希望您也注意到了如何根据配置文件中的具体要求轻松自定义安全功能。

实际应用

Nemo护栏在各种实际应用中可能非常有用,特别是需要仔细管理大型语言模型(LLMs),包括RAG管道,以避免风险并确保安全和合规性。这些应用包括医疗咨询平台、教育工具和金融咨询。

在医疗咨询平台方面,没有犯错的余地,因为可能会对用户造成伤害,因此护栏至关重要,可以防止这种情况发生。在教育工具中,NeMo护栏可以帮助确保LLMs提供的内容准确、适合年龄、并且具有教育学意义。最后,对于金融咨询工具,确保机器学习模型提供的信息准确且不具有误导性至关重要,因为提供未经授权或投机性的金融建议可能会产生严重后果。

66.6.png 66.6.png

集成Nemo护栏

将NeMo护栏集成到AI模型和系统中涉及几个最佳实践,以确保在不同平台和技术中有效且安全地使用大型语言模型(LLMs)。专注于支持广泛AI技术的NVIDIA生态系统,当整合Nemo护栏时,有几件事情需要考虑。

首先,明确定义护栏需要实现的目标。这可能包括内容审核、数据隐私、符合特定法规或防止模型生成有害内容。然后,深入理解您使用的AI模型的能力和限制,这将帮助您正确配置护栏。接下来,根据应用程序的特定需求定制护栏,并尝试定期在现实场景中测试它们,以确保它们按预期工作。

此外,我建议实施机制,收集用户对AI在护栏方面的性能反馈。然后,您将使用此反馈微调护栏并提高用户满意度和安全性。最后但同样重要的是,确保护栏的实施符合道德AI原则,促进公平性、问责制和透明度。

现在让我们谈谈Nemo护栏与AI技术和平台的兼容性。正如您可能知道的,Nemo护栏在NVIDIA的生态系统中特别相关,该生态系统包括可以利用这些护栏的各种工具和平台。您可以与Nemo护栏集成的一个伟大工具是Riva,这是NVIDIA用于部署AI模型的服务,它允许开发人员在训练和推理阶段无缝应用护栏。接下来,我们有NVIDIA的平台,如DGX系统和CUDA-X AI库,它们旨在实现可扩展的AI部署,因为护栏应该是可扩展和高效的,以不妨碍NVIDIA硬件提供的性能优势。

Nemo护栏与各种深度学习框架兼容,如TensorFlow、PyTorch等在NVIDIA生态系统中常用的框架。Nemo护栏应与这些框架无缝交互,在模型生命周期的不同阶段应用约束或修改。

结论

我希望现在您理解了Nemo护栏如何革新了AI的可靠性和安全特性,护栏是什么以及它们如何工作,实际的AI应用,以及将Nemo护栏简单集成到您的AI集成中以及最佳实践。

我们已经讨论了Nemo护栏强大的框架如何高效且有效地工作,以确保使用大型语言模型(LLMs)的智能应用程序或会话AI是准确的、相关的、适当的,也是安全的。Nemo护栏使全球的开发人员能够执行特定的标准和规则,以确保AI交互保持安全、适当,并符合法规要求。通过过滤、修改或重定向AI输出,这些护栏有助于防止有害内容的传播,保护用户数据隐私,并维护道德标准,从而促进对AI应用程序的信任和信心。

随着AI的不断发展,整合像Nemo护栏这样的高级安全特性将是应对这些强大技术所带来挑战的关键。开发人员、研究人员和组织应优先了解和实施这些护栏,确保AI系统不仅有效,而且与社会价值观和安全标准一致。

  • Abdelrahman Elgendy

    Abdelrahman Elgendy

    Freelancer Technical Writer

    准备好开始了吗?

    立刻创建 Zilliz Cloud 集群,存储和检索您的向量。

    免费试用 Zilliz Cloud