
Программируемые защитные механизмы для LLM-чат-приложений: обеспечение входных/выходных ограничений, блокировка джейлбрейков и prompt-инъекций, обнаружение галлюцинаций и маскирование конфиденциальных данных.
ПОСЛЕДНИЙ РЕЛИЗ / ВЕРСИЯ ДЛЯ РАЗРАБОТКИ: Ветка develop отслеживает последнюю версию в разработке. Последняя выпущенная версия — 0.24.1.
✨✨✨
📌 Официальная документация библиотеки NeMo Guardrails доступна по адресу docs.nvidia.com/nemo/guardrails.
✨✨✨
Библиотека NVIDIA NeMo Guardrails — это открытый набор инструментов для простого добавления программируемых guardrails в диалоговые приложения на основе LLM. Guardrails (или сокращённо «rails») — это определённые способы управления выводом большой языковой модели, например: не говорить о политике, отвечать определённым образом на конкретные запросы пользователя, следовать заранее заданному пути диалога, использовать определённый языковой стиль, извлекать структурированные данные и многое другое.
Эта статья представляет библиотеку NeMo Guardrails и содержит технический обзор системы и текущую оценку.
Python 3.10, 3.11, 3.12 или 3.13.
Для установки с помощью pip:
> pip install nemoguardrails
Более подробные инструкции см. в Руководстве по установке.
Библиотека NeMo Guardrails позволяет разработчикам, создающим приложения на основе LLM, добавлять программируемые ограждения (programmable guardrails) между кодом приложения и LLM.
Ключевые преимущества добавления программируемых ограждений:
Создание надёжных, безопасных и защищённых приложений на основе LLM: вы можете определять ограждения для управления и защиты диалогов; вы можете задать поведение вашего приложения на основе LLM по определённым темам и предотвратить его участие в обсуждениях нежелательных тем.
Безопасное подключение моделей, цепочек и других сервисов: вы можете безопасно и беспрепятственно подключать LLM к другим сервисам (также известным как инструменты).
Управляемый диалог: вы можете направлять LLM по заранее заданным сценариям разговора, что позволяет проектировать взаимодействие в соответствии с лучшими практиками дизайна разговоров и соблюдать стандартные операционные процедуры (например, аутентификацию, поддержку).
Библиотека NeMo Guardrails предоставляет несколько механизмов защиты чат-приложения на основе LLM от распространённых уязвимостей LLM, таких как джейлбрейки и инъекции промптов. Ниже приведён примерный обзор защиты, обеспечиваемой различными конфигурациями ограждений для примера ABC Bot, включённого в этот репозиторий. Более подробную информацию см. на странице Сканирование уязвимостей LLM.
Вы можете использовать программируемые ограждения в различных типах сценариев:
NEMOGUARDRAILS_LLM_FRAMEWORK=langchain или вызовите set_default_framework("langchain").Чтобы добавить программируемые ограждения в ваше приложение, вы можете использовать Python API или сервер ограждений (см. Руководство по серверу для получения подробной информации). Использование Python API аналогично прямому использованию LLM. Вызов слоя ограждений вместо LLM требует лишь минимальных изменений в кодовой базе и включает два простых шага:
LLMRails.generate/generate_async.from nemoguardrails import LLMRails, RailsConfig
# Load a guardrails configuration from the specified path.
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?"}
Формат ввода и вывода для метода generate аналогичен Chat Completions API от OpenAI.
Библиотека NeMo Guardrails — это набор инструментов, ориентированный на асинхронность, поскольку основная механика реализована с использованием асинхронной модели Python. Публичные методы имеют как синхронную, так и асинхронную версии. Например: LLMRails.generate и LLMRails.generate_async.
Вы можете использовать NeMo Guardrails с несколькими LLM, такими как OpenAI GPT-3.5, GPT-4, LLaMa-2, Falcon, Vicuna или Mosaic. Для получения более подробной информации ознакомьтесь с разделом Supported LLM Models в руководстве по конфигурации.
Библиотека NeMo Guardrails поддерживает пять основных типов guardrails: