Conversational AI / NLP

신뢰할 수 있고 안전하며 보안이 뛰어난 대규모 언어 모델 대화 시스템을 구현하는 NVIDIA

Reading Time: 4 minutes

대규모 언어 모델(LLM)은 매우 강력하며 복잡한 질문에 답하고, 창의적인 글쓰기, 개발, 소스 코드 디버깅 등의 작업을 수행할 수 있습니다. 실시간 소스에서 데이터를 읽거나 사용자의 요청에 따라 어떤 조치를 취할지 LLM이 결정하도록 하는 등 외부 도구에 연결하여 놀랍도록 정교한 LLM 애플리케이션을 구축할 수 있습니다. 하지만 이러한 LLM 애플리케이션을 안전하고 보안이 유지되는 방식으로 구축하는 것은 쉽지 않습니다.

NeMo Guardrails는 안전하고 신뢰할 수 있는 LLM 대화 시스템을 쉽게 개발할 수 있는 오픈 소스 툴킷입니다. 생성형 AI의 안전은 업계 전반의 관심사이므로, NVIDIA는 OpenAI의 ChatGPT를 포함한 모든 LLM과 함께 작동하도록 NeMo Guardrails를 설계했습니다.

이 툴킷은 단 몇 달 만에 GitHub에서 약 3만 개의 별을 모은 LangChain과 같은 커뮤니티에서 구축한 툴킷을 기반으로 합니다. 이 툴킷은 LLM, API 및 기타 소프트웨어 패키지를 결합하여 LLM 기반 애플리케이션을 구축할 수 있는 구성 가능하고 사용하기 쉬운 템플릿과 패턴을 제공합니다.

신뢰할 수 있고 안전하며 보안이 강화된 LLM 대화 시스템 구축

NeMo Guardrails을 사용하면 개발자가 애플리케이션 내에서 원하는 사용자 상호 작용을 정의하는 프로그래밍 가능한 규칙을 추가하여 챗봇을 쉽게 안내할 수 있습니다. 기본적으로 LangChain을 지원하여 LLM 기반 대화형 애플리케이션에 안전, 보안 및 신뢰성 계층을 추가합니다. 개발자는 사용자 상호작용을 정의하고 Python 라이브러리를 사용하여 이러한 가드레일을 모든 애플리케이션에 쉽게 통합할 수 있습니다.

대화형 시스템에 가드레일 추가하기

가드레일은 사용자와 LLM 사이에 있는 프로그래밍 가능한 제약 조건 또는 규칙 집합입니다. 이러한 가드레일은 도로의 폭을 정의하고 차량이 원치 않는 영역으로 이탈하는 것을 방지하는 고속도로의 가드레일처럼 사용자의 상호 작용을 모니터링하고 영향을 미치며 지시합니다.

사용자가 봇에 쿼리를 보내면 봇이 응답을 반환합니다. 쿼리와 응답의 전체 집합을 채팅이라고 합니다. 봇은 사용자 쿼리에 응답하고 그에 상응하는 프롬프트(중개 단계 또는 실행할 작업)를 생성합니다. 그런 다음 봇은 프롬프트를 사용하여 LLM을 호출하고 LLM은 봇 응답을 구성하는 정보를 반환합니다.

때로는 봇이 문서가 포함된 지식창고에서 관련 정보를 사용하기도 합니다. 봇은 지식창고에서 청크를 검색하여 프롬프트에 컨텍스트로 추가합니다.

NeMo Guardrails는 대화형 AI를 위해 NVIDIA에서 개발한 모델링 언어 및 런타임인 Colang을 기반으로 구축되었습니다. Colang의 목표는 사용자가 자연어로 대화형 봇의 동작을 정의하거나 제어할 수 있는 가독성 있고 확장 가능한 인터페이스를 제공하는 것입니다.

이 시스템과 상호 작용하는 것은 기존의 대화 관리자와 비슷합니다. 이러한 주요 개념이 포함된 Colang 파일에서 흐름을 정의하여 가드레일을 만들 수 있습니다:

  • 정식 형식
  • 메시지
  • 흐름

표준 형식은 발화를 단순화한 의역 표현입니다. 이는 대화의 내용을 추론하고 규칙을 발화에 일치시키는 데 사용됩니다.

메시지는 자연어를 사용하는 가벼운 표현인 표준 형식의 생성으로 사용자 의도를 분류하는 속기 방법을 나타냅니다. 내부적으로 이러한 메시지는 인덱싱되어 인메모리 벡터 저장소에 저장됩니다. 이 기능이 활성화되면 벡터 스토어에서 가장 유사한 상위 N개의 메시지가 검색되거나 LLM으로 전송되어 유사한 표준 양식을 생성합니다. 예를 들어:

define user express greeting
    "Hi"
    "Hello!"
    "Hey there!"

이 예는 인사말의 약어를 나타냅니다. 이 예에서는 새로운 표준 형식의 인사말 표현을 정의하고 몇 가지 자연어 프롬프트 또는 메시지를 제공합니다. 주어진 프롬프트 세트와 유사한 프롬프트는 사용자가 인사말을 표현하는 것으로 이해됩니다.

플로우는 일련의 메시지와 작업으로 구성되며 사용자 상호작용의 구조 또는 흐름을 정의합니다. 플로우는 사용자와 봇 간의 상호작용을 트리 또는 그래프로 표현한 것으로 생각할 수도 있습니다.

define flow greeting
    user express greeting
    bot express greeting
    bot ask how are you

인사말 흐름이 트리거되면 사용자와 봇이 인사말을 주고받도록 지시받습니다. 이를 정의하는 구문은 메시지와 동일합니다.

가드레일 기법

가드레일이 정의되면 사용자와 AI 애플리케이션 사이에 위치하여 양방향 통신을 모니터링하고 안전과 보안을 보장하기 위해 적절한 조치를 취함으로써 모델이 애플리케이션의 원하는 도메인 내에 머물도록 합니다. 간단하고 직관적인 구문을 사용하여 프로그래밍 방식으로 가드레일을 정의할 수 있습니다.

현재 NeMo Guardrails는 크게 세 가지 범주의 가드레일을 지원합니다:

  • 주제
  • 안전
  • 보안

토픽 가드레일

토픽 가드레일은 대화가 특정 주제에 집중하고 원치 않는 영역으로 이탈하는 것을 방지하도록 설계되었습니다.

사람이나 봇이 주제 범위를 벗어난 대화에 참여할 때 이를 감지하는 메커니즘 역할을 합니다. 이러한 토픽 가드레일은 상황을 처리하고 대화를 의도한 주제로 다시 유도할 수 있습니다. 예를 들어 고객 서비스 봇이 제품에 대한 질문에 답변해야 하는 경우, 해당 질문이 주제 범위를 벗어난 것임을 인식하고 그에 따라 답변해야 합니다.

안전 가드레일

안전 가드레일은 LLM과의 상호 작용이 잘못된 정보, 유해한 반응 또는 부적절한 콘텐츠로 이어지지 않도록 보장합니다. LLM은 그럴듯하게 들리는 답변을 구성하는 것으로 알려져 있습니다. 안전 가드레일은 적절한 대응을 제공하기 위한 정책을 감지하고 시행하는 데 도움이 될 수 있습니다.

안전 가드레일의 다른 중요한 측면으로는 모델의 답변이 사실에 근거하고 신뢰할 수 있는 출처에 의해 뒷받침되는지 확인하고, 사람이 AI 시스템을 해킹하여 부적절한 답변을 제공하는 것을 방지하며, 편견을 완화하는 것이 있습니다.

보안 가드레일

보안 가드레일은 LLM이 보안 위험을 초래하는 방식으로 악성 코드를 실행하거나 외부 애플리케이션을 호출하는 것을 방지합니다.

LLM 애플리케이션은 외부 시스템에 액세스할 수 있는 매력적인 공격 표면이며, 심각한 사이버 보안 위험을 초래할 수 있습니다. 보안 가드레일은 강력한 보안 모델을 제공하고 LLM 기반 공격이 발견될 때 이를 완화하는 데 도움이 됩니다.

가드레일 워크플로우

NeMo 가드레일은 완전히 프로그래밍할 수 있습니다. 가드레일 적용 및 가드레일이 트리거하는 일련의 작업을 쉽게 사용자 지정하고 시간이 지남에 따라 개선할 수 있습니다. 중요한 경우에는 몇 줄의 코드만으로 새로운 규칙을 추가할 수 있습니다.

이 접근 방식은 모델 학습 프로세스를 통해 모델이 사람의 의도에 맞게 조정되는 인간 피드백을 통한 강화 학습(RLHF)과 같은 기술을 매우 보완적으로 사용할 수 있습니다. NeMo Guardrails을 사용하면 개발자가 AI 애플리케이션을 강화하여 보다 결정적이고 신뢰할 수 있는 애플리케이션을 만들 수 있습니다.

가드레일 흐름의 워크플로우는 다음과 같습니다:

  1. 사용자 입력을 표준 양식으로 변환합니다.
  2. Colang을 사용하여 표준 양식을 기반으로 가드레일을 일치시키거나 생성합니다.
  3. 봇이 작업을 실행할 다음 단계를 계획하고 지시합니다.
  4. 표준 양식 또는 생성된 컨텍스트에서 최종 출력을 생성합니다.
그림 1. NeMo Guardrails와 사용자 상호 작용의 프로세스 흐름

가드레일 구현을 위한 일반적인 패턴을 다루는 몇 가지 예제에 대한 자세한 내용은 NeMo Guardrails GitHub 리포지토리를 참조하세요. 이러한 예제는 NeMo Guardrails에서 안전하고 보안이 강화된 자체 LLM 기반 대화형 시스템을 구축할 때 참고할 수 있는 훌륭한 레시피 세트입니다.

요약

NVIDIA는 회사의 도메인 전문 지식과 데이터 세트를 사용하여 언어 모델을 훈련하고 튜닝하는 데 필요한 모든 것을 포함하는 NeMo framework에 NeMo Guardrails를 통합하고 있습니다.

NeMo는 서비스 형태로도 제공됩니다. 자체 데이터 세트와 도메인 지식을 기반으로 맞춤형 생성형 AI 모델을 생성하고 실행하려는 기업을 위한 클라우드 서비스 제품군인 NVIDIA AI 파운데이션의 일부입니다.

NVIDIA는 AI 커뮤니티와 협력하여 신뢰할 수 있고 안전하며 보안이 강화된 LLM의 성능을 모든 사람이 이용할 수 있도록 계속 노력할 것입니다. 지금 NeMo Guardrails를 살펴보세요.

이 블로그에 열거된 SDK의 대부분의 독점 액세스, 얼리 액세스, 기술 세션, 데모, 교육 과정, 리소스는 NVIDIA 개발자 프로그램 회원은 무료로 혜택을 받으실 수 있습니다. 지금 무료로 가입하여 NVIDIA의 기술 플랫폼에서 구축하는 데 필요한 도구와 교육에 액세스하시고 여러분의 성공을 가속화 하세요.

Discuss (0)

Tags

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다