Guardrails
Guardrails: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지
해결하는 문제
NeMo Guardrails는 애플리케이션과 대규모 언어 모델(LLM) 사이에 프로그래밍 가능한 레이어를 제공하여 대화가 안전하고 보안을 유지하며 주제를 벗어나지 않도록 보장합니다. 이는 LLM이 원치 않는 주제를 논의하는 것을 방지하고, jailbreak 및 prompt injection과 같은 취약점에 대비하며, 모델이 예측 불가능한 행동으로 벗어나기보다 미리 정의된 대화 경로를 따르도록 보장합니다.
작동 방식
이 툴킷은 5가지 주요 단계에서 정보의 흐름을 가로채고 수정하는 프로그래밍 가능한 제어 장치인 "rails"를 구현합니다:
- Input Rails: 사용자의 입력이 LLM에 도달하기 전에 필터링하거나 변경합니다.
- Dialog Rails: Colang이라는 특화된 모델링 언어를 사용하여 대화를 미리 정의된 경로로 유도합니다.
- Retrieval Rails: RAG 시나리오에서, 검색된 문서 청크가 프롬프트에 사용되기 전에 이를 필터링하거나 수정합니다.
- Execution Rails: LLM이 호출하는 커스텀 도구 또는 작업의 입출력을 제어합니다.
- Output Rails: LLM의 응답이 사용자에게 전달되기 전에 검토하고 수정합니다.
개발자는 config.yml 파일과 .co (Colang) 파일을 통해 이러한 rails를 구성할 수 있으며, 그 후 Python API 또는 전용 guardrails 서버를 사용하여 배포할 수 있습니다.
대상 사용자
- LLM 애플리케이션 개발자: 모델 동작에 대한 엄격한 제어가 필요한 챗봇 또는 도메인 특화 어시스턴트를 구축하는 개발자.
- RAG 구현자: 검색된 데이터에 대해 사실 확인 및 출력 중재가 필요한 개발자.
- 기업용 AI 팀: 고객 대상 AI를 위한 표준 운영 절차(예: 인증) 및 안전 보증이 필요한 조직.
주요 특징
- Colang: 유연하면서도 제어 가능한 대화 흐름을 설계하기 위한 전용 모델링 언어.
- 포괄적인 보호: jailbreak 탐지, 환각(hallucination) 탐지 및 콘텐츠 안전성에 대한 내장 지원.
- 유연한 통합: 다양한 LLM (GPT-4, LLaMa-2, Falcon 등)과 작동하며 LangChain과 선택적으로 통합됩니다.
- 평가 도구: 주제 관련 rails, 중재 및 사실 확인을 테스트하기 위한 CLI 도구(
nemoguardrails evaluate)를 포함합니다.
Sources
- undefinedNVIDIA-NeMo/Guardrails