설명
NeMo Guardrails는 개발자가 대규모 언어 모델(LLM) 기반 대화 애플리케이션에 프로그래밍 가능한 가드레일을 추가할 수 있도록 지원하기 위해 설계된 오픈 소스 툴킷입니다. 종종 "레일"이라고 불리는 이러한 가드레일은 LLM 출력을 제어하는 구조화된 방법을 제공하여 사전 정의된 규칙 및 목표와 일치하도록 보장합니다. 여기에는 민감한 주제에 대한 토론 방지, 특정 응답 패턴 강제 적용, 사전 정의된 경로를 따라 대화 안내, 구조화된 데이터 추출 등이 포함됩니다.
이 툴킷은 애플리케이션 코드와 LLM 간의 중개자 역할을 하며, 신뢰할 수 있고 안전하며 보안이 강화된 LLM 애플리케이션 구축과 같은 주요 이점을 제공합니다. 개발자는 레일을 정의하여 대화를 안내하고 보호하며, 특정 주제에 대한 LLM의 동작을 지시하고 원치 않는 주제와의 상호 작용을 방지할 수 있습니다. 이는 브랜드 무결성과 사용자 안전을 유지하는 데 중요합니다.
NeMo Guardrails는 LLM과 외부 서비스 또는 도구 간의 안전한 연결도 촉진합니다. LLM이 설계된 대화 흐름을 따르도록 유도하여 제어 가능한 대화를 가능하게 하고, 대화 설계의 모범 사례를 준수하며, 인증 또는 지원 프로토콜과 같은 표준 운영 절차를 시행합니다. 또한, 이 라이브러리는 다양한 방어 메커니즘을 제공하여 탈옥 및 프롬프트 주입을 포함한 일반적인 LLM 취약점에 대한 강력한 보호 기능을 제공합니다.
이 라이브러리는 OpenAI의 GPT 시리즈, LLaMa-2, Falcon, Vicuna, Mosaic을 포함한 여러 LLM을 지원합니다. 사용자 입력을 처리하기 위한 입력 레일, LLM 프롬프팅 및 대화 흐름에 영향을 미치기 위한 대화 레일, RAG 시나리오에서 검색된 데이터를 관리하기 위한 검색 레일, 사용자 지정 작업을 관리하기 위한 실행 레일, LLM 생성 콘텐츠를 조정하기 위한 출력 레일의 다섯 가지 주요 가드레일 유형을 제공합니다. 구성은 Python API 또는 전용 가드레일 서버를 통해 관리할 수 있으며, 동기식 및 비동기식 작업 모두를 지원합니다. 이 툴킷은 이러한 가드레일을 정의하기 위한 Python과 유사한 모델링 언어인 Colang을 도입하여 대화 흐름에 대한 유연성과 제어를 제공합니다.
NeMo Guardrails의 핵심 기능
LLM 대화 시스템을 위한 프로그래밍 가능한 가드레일
LLM 출력의 안전성, 보안 및 제어 향상
LLM이 원치 않는 주제에 대해 논의하는 것을 방지
LLM이 사전 정의된 대화 경로를 따르도록 안내
외부 도구 및 서비스와의 안전한 통합 촉진
탈옥 및 프롬프트 주입과 같은 LLM 취약점으로부터 보호
OpenAI, LLaMa-2, Falcon, Vicuna를 포함한 여러 LLM 지원
다섯 가지 유형의 가드레일 제공: 입력, 대화, 검색, 실행 및 출력
Python API 또는 전용 가드레일 서버를 통해 구성 가능
대화 흐름 및 가드레일 정의를 위한 Colang 도입
동기식 및 비동기식 작업 모두 지원
서버 관리 및 대화형 채팅 세션을 위한 내장 CLI
LangChain과의 통합으로 LLM 애플리케이션 개발 강화
NeMo Guardrails 시작하기
리포지토리 복제: GitHub에서 NeMo Guardrails 코드를 가져옵니다.
종속성 설치: Python 환경을 설정하고 필요한 패키지를 설치합니다.
가드레일 구성: Colang 및 구성 파일을 사용하여 원하는 레일을 정의합니다.
LLM과 통합: 구성을 로드하고 애플리케이션에서 LLMRails 인스턴스를 생성합니다.
호출 실행: `generate` 또는 `generate_async` 메서드를 사용하여 가드레일을 통해 LLM과 상호 작용합니다.
서버 배포(선택 사항): 구성을 API로 액세스하기 위해 가드레일 서버를 시작합니다.
NeMo Guardrails의 사용 사례
- 안전한 챗봇
- 데이터 추출
- 콘텐츠 조정
- RAG 시스템
- LLM 엔드포인트 보안
- 제어된 대화 흐름
- 취약점 보호





