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 모델, 활성 레일, 설정), 사용자 지정 Python 작업을 위한 선택적 actions.py, 그리고 대화 모델링 언어인 Colang으로 작성된 .co 파일을 포함하는 구성 폴더에 정의됩니다. Colang을 사용하면 읽기 쉬운 Python 유사 구문으로 대화 흐름과 규칙을 지정할 수 있습니다. 라이브러리는 입력 레일, 대화 레일, 검색 레일, 실행 레일, 출력 레일의 다섯 가지 레일 유형을 지원합니다. 또한 가드레일 서버를 실행하기 위한 CLI, Docker 이미지, 선택적 LangChain 통합, 탈옥 탐지, 콘텐츠 안전, 사실 확인, 환각 탐지를 위한 내장 가드레일이 포함되어 있습니다.

대상 사용자

원시 모델 프롬프트가 제공하는 것보다 더 많은 제어와 안전이 필요한 LLM 기반 대화형 애플리케이션을 구축하는 개발자. 질문 응답 봇, 도메인 특화 어시스턴트 또는 노출된 LLM 엔드포인트를 만들고 규정 준수를 강화하고 유해한 콘텐츠를 방지하며 예측 가능한 대화 흐름을 설계하려는 팀을 대상으로 합니다. 사용자는 Python과 기본 YAML 구성에 익숙해야 합니다. Colang에 대한 지식은 도움이 되지만 구문은 배우기 쉽게 설계되었습니다.

주요 기능

  • 다섯 가지 유형의 프로그래밍 가능한 가드레일: 입력, 대화, 검색, 실행, 출력.
  • 대화 흐름과 레일 조건을 정의하기 위한 Python 유사 구문을 갖춘 Colang 대화 모델링 언어.
  • 탈옥 및 프롬프트 주입 탐지, 콘텐츠 안전, 사실 확인, 환각 탐지를 위한 내장 가드레일.
  • 여러 LLM(OpenAI GPT-3.5/GPT-4, LLaMa-2, Falcon, Vicuna, Mosaic)과 함께 작동하며 선택적으로 LangChain과 통합.
  • CLI, HTTP API가 있는 서버 모드, 배포를 위한 Docker 지원 포함.
  • 대화 안전을 테스트하기 위한 평가 도구(nemoguardrails evaluate) 제공.
  • NVIDIA의 활발한 오픈소스 프로젝트로, 광범위한 문서와 예제를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트