Generative AI / LLMs

RAG 101: 검색 증강 생성 파이프라인의 이해

Reading Time: 3 minutes

거대 언어 모델(LLM)은 인간과 유사한 반응을 이해하고 생성하는 전례 없는 기능으로 전 세계에 깊은 인상을 남겼습니다. 채팅 기능은 사람과 대규모 데이터 코퍼라(corpora) 간의 빠르고 자연스러운 상호 작용을 제공합니다. 예를 들어, 데이터에서 하이라이트를 요약 및 추출하거나 SQL 쿼리와 같은 복잡한 쿼리를 자연어로 대체할 수 있습니다.

이러한 모델을 통해 별도의 노력 없이도 비즈니스 가치를 창출할 수 있다고 생각하기 쉽지만, 안타깝게도 그렇지 않은 경우가 많습니다. 다행히도 기업이 LLM을 사용하여 가치를 창출하기 위해 해야 할 일은 자체 데이터로 LLM을 보강하는 것뿐입니다. 이 작업은 검색 증강 생성(RAG)으로 수행할 수 있으며, 이는 개발자를 위한 NVIDIA Generative AI 예제 GitHub 리포지토리에 소개되어 있습니다.

기업은 비즈니스 데이터로 LLM을 보강하여 새로운 개발에 민첩하게 대응하는 AI 애플리케이션을 만들 수 있습니다. 예를 들어

  • 챗봇: 많은 기업이 이미 AI 챗봇을 사용해 웹사이트에서 기본적인 고객 상호작용을 지원하고 있습니다. RAG를 통해 기업은 자사 제품에 매우 특화된 채팅 환경을 구축할 수 있습니다. 예를 들어, 제품 사양에 대한 질문에 쉽게 답변할 수 있습니다.
  • 고객 서비스: 기업은 실시간 서비스 담당자가 정확한 최신 정보로 고객의 질문에 쉽게 답변할 수 있도록 지원할 수 있습니다.
  • 엔터프라이즈 검색: 기업은 기술 문서, 회사 정책, IT 지원 문서, 코드 리포지토리 등 조직 전반에 걸쳐 풍부한 지식을 보유하고 있습니다. 직원들은 내부 검색 엔진을 쿼리하여 더 빠르고 효율적으로 정보를 검색할 수 있습니다.

이 게시물에서는 RAG 파이프라인의 구성 요소와 함께 LLM 애플리케이션을 구축할 때 RAG 기술을 사용하면 얻을 수 있는 이점에 대해 설명합니다. 이 포스팅을 마친 후 자세한 내용은 RAG 101을 참조하세요: 검색 증강 생성에 대한 질문과 대답을 참조하세요.

RAG의 장점

RAG를 사용하면 몇 가지 이점이 있습니다:

  • 실시간 데이터 액세스를 통해 LLM 솔루션의 역량 강화
  • 데이터 개인정보 보호
  • LLM 허위 응답 완화

실시간 데이터 액세스로 LLM 솔루션의 역량 강화

기업에서 데이터는 끊임없이 변화하고 있습니다. LLM을 사용하는 AI 솔루션은 추가 데이터 리소스에 직접 액세스할 수 있는 RAG를 통해 최신 상태를 유지할 수 있습니다. 이러한 리소스는 실시간 및 개인화된 데이터로 구성될 수 있습니다.

데이터 프라이버시 보호

데이터 프라이버시 보장은 기업에게 매우 중요합니다. 자체 호스팅 LLM(RAG 워크플로우에서 시연)을 사용하면 민감한 데이터를 저장된 데이터와 마찬가지로 온프레미스에 보관할 수 있습니다.

LLM에 대한 불안감 완화

사실에 입각한 실제 정보가 제공되지 않는 경우, LLM은 결함이 있지만 그럴듯한 답변을 제공하는 경우가 많습니다. 이를 허위 응답이라고 하는데, RAG는 관련성 있고 사실적인 정보를 LLM에 제공함으로써 허위 응답의 가능성을 줄여줍니다.

첫 번째 RAG 파이프라인 구축 및 배포하기

일반적인 RAG 파이프라인은 여러 단계로 구성됩니다. 문서 수집 프로세스는 오프라인에서 이루어지며, 온라인 쿼리가 들어오면 관련 문서를 검색하고 응답을 생성합니다.

그림 1은 /NVIDIA/GenerativeAIExamples GitHub 리포지토리에 구축 및 배포할 수 있는 가속화된 RAG 파이프라인을 보여줍니다.

그림 1. RAG 파이프라인 구성 요소 개요: 수집 및 쿼리 흐름

각 논리적 마이크로서비스는 NGC 공개 카탈로그에서 사용 가능한 컨테이너로 분리되어 있습니다. 높은 수준에서 보면, RAG 시스템의 아키텍처는 그림 1에 표시된 파이프라인으로 요약할 수 있습니다:

  • 문서 전처리, 수집, 임베딩 생성의 반복적인 파이프라인
  • 사용자 쿼리 및 응답 생성이 포함된 추론 파이프라인

문서 수집

먼저 데이터베이스, 문서 또는 라이브 피드와 같은 다양한 소스의 원시 데이터가 RAG 시스템으로 수집됩니다. 이 데이터를 전처리하기 위해 LangChain은 다양한 소스에서 다양한 형식의 데이터를 로드하는 다양한 문서 로더를 제공합니다.

문서 로더라는 용어는 느슨하게 사용됩니다. 소스 문서가 반드시 표준 문서(PDF, 텍스트 파일 등)라고 생각할 수 있는 것일 필요는 없습니다. 예를 들어 LangChain은 Confluence, CSV 파일, Outlook 이메일 의 데이터 로드를 지원합니다. LlamaIndex는 또한 다양한 로더를 제공하며, 이는 LlamaHub에서 확인할 수 있습니다.

문서 전처리

문서가 로드된 후에는 종종 문서가 변환됩니다. 변환 방법 중 하나는 긴 텍스트를 더 작은 세그먼트로 나누는 텍스트 분할입니다. 이는 최대 토큰 길이가 512인 임베딩 모델인 e5-large-v2에 텍스트를 맞추는 데 필요합니다. 텍스트를 분할하는 것은 간단해 보이지만 미묘한 차이가 있을 수 있습니다.

임베딩 생성

데이터가 수집되면 시스템에서 효율적으로 처리할 수 있는 형식으로 변환해야 합니다. 임베딩 생성에는 데이터를 숫자 형식으로 텍스트를 나타내는 고차원 벡터로 변환하는 작업이 포함됩니다.

벡터 데이터베이스에 임베딩 저장하기

처리된 데이터와 생성된 임베딩은 벡터 데이터베이스라는 특수 데이터베이스에 저장됩니다. 이러한 데이터베이스는 벡터화된 데이터를 처리하는 데 최적화되어 있어 신속한 검색 및 검색 작업이 가능합니다. Milvus와 같은 RAPIDS RAFT 가속 벡터 데이터베이스에 데이터를 저장하면 실시간 상호 작용 중에 정보에 계속 액세스할 수 있고 빠르게 검색할 수 있습니다.

LLM

LLM은 RAG 파이프라인의 기본 생성 구성 요소를 형성합니다. 이러한 고급 일반화 언어 모델은 방대한 데이터 세트에 대해 학습되어 사람과 유사한 텍스트를 이해하고 생성할 수 있습니다. RAG의 맥락에서 LLM은 사용자 쿼리 시 벡터 DB에서 검색된 사용자 쿼리 및 문맥 정보를 기반으로 완전한 형태의 응답을 생성하는 데 사용됩니다.

쿼리

사용자가 쿼리를 제출하면 RAG 시스템은 인덱싱된 데이터와 벡터를 사용하여 효율적인 검색을 수행합니다. 시스템은 쿼리 벡터를 벡터 DB에 저장된 벡터와 비교하여 관련 정보를 식별합니다. 그런 다음 LLM은 검색된 데이터를 사용하여 적절한 응답을 작성합니다.

이 시스템의 배포를 빠르게 진행하려면 /NVIDIA/GenerativeAIExamples GitHub 리포지토리에서 이 예제 워크플로우를 테스트해 보세요.

엔터프라이즈에서 RAG 구축 시작하기

RAG를 사용하면 LLM에게 최신 독점 정보를 쉽게 제공하고, 사용자 신뢰를 높이고, 사용자 경험을 개선하고, 환각을 줄이는 시스템을 구축할 수 있습니다.

최신 정보를 사용하여 자연어로 도메인별 질문에 정확하게 답변할 수 있는 챗봇 구축을 시작하려면 NVIDIA AI 챗봇 RAG 워크플로우를 살펴보세요.

관련 리소스

Discuss (0)

Tags