주요 컨텐츠로 이동

검색 증강 생성(RAG)이란?

검색 증강 생성(Retrieval Augmented Generation, RAG)이란?

검색 증강 생성(Retrieval Augmented Generation, RAG)은 맞춤형 데이터를 활용하여 대규모 언어 모델(LLM) 애플리케이션의 효율성을 개선할 수 있는 아키텍처 접근 방식입니다. 이 작업은 질문이나 작업과 관련된 데이터/문서를 검색하고 이를 LLM의 컨텍스트로 제공하여 수행할 수 있습니다. RAG는 최신 정보를 유지 관리하거나 도메인별 지식에 액세스해야 하는 지원 챗봇 및 Q&A 시스템에서 성공을 거두었습니다.

자세히 보기

MLOps Big Book

보다 효과적인 MLOps 방법을 찾는 ML 엔지니어와 데이터 사이언티스트가 읽어야 할 자료

eBook 다운로드

LLM의 잠재력 활용

AI로 효율성을 높이고 비용을 절감하는 방법

지금 다운로드

생성형 AI를 활용한 산업별 혁신

RAG 등으로 LLM을 최적화하는 방법 알아보기

지금 시청하기

검색 증강 생성 접근 방식으로 해결할 수 있는 문제는 무엇인가요?

문제 1: LLM 모델이 데이터를 알지 못합니다.

LLM은 딥 러닝 모델을 사용하고 대규모 데이터세트로 학습시켜 새로운 콘텐츠를 이해, 요약 및 생성합니다. 대부분의 LLM은 광범위한 공개 데이터로 학습되었으므로 하나의 모델로 다양한 유형의 작업이나 질문에 응답할 수 있습니다. 한 번 학습되면, 많은 LLM은 학습 데이터 컷오프 지점을 넘어서는 데이터에는 액세스할 수 없습니다. 이는 LLM은 정적 상태로 만들어 학습하지 않은 데이터에 대한 질문을 받았을 때 잘못 응답하거나 오래된 답변 또는 환각 현상을 제공할 수 있습니다.

문제 2: AI 애플리케이션의 효과를 높이려면 맞춤형 데이터를 활용해야 합니다.

LLM이 관련성 높은 구체적인 응답을 제공하려면 조직은 광범위하고 일반화된 응답을 제공하는 대신 조직의 관련 도메인을 이해하고 자체 데이터를 바탕으로 답변을 제공하는 모델이 필요합니다. 예를 들어, 조직은 LLM을 사용하여 고객 지원 봇을 구축하여 고객 질문에 기업 특정 답변을 제공해야 합니다. 다른 조직에서는 내부 HR 데이터에 대한 직원의 질문에 답변할 수 있는 내부 Q&A 봇을 구축하고 있습니다. 기업이 이러한 모델을 다시 학습시키지 않고 솔루션을 구축하려면 어떻게 해야 할까요?

솔루션: 검색 증강은 이제 업계 표준이 되었습니다.

자체 데이터를 대중적인 방법으로 가장 손 쉽게 사용하는 방법은 LLM 모델을 쿼리하는 프롬프트의 일부로 해당 데이터를 제공하는 것입니다. 이를 검색 증강 생성(RAG)이라고 하며 관련 데이터를 검색하여 LLM의 증강 컨텍스트로 사용하기 때문입니다. RAG 워크플로는 학습 데이터에서 파생된 지식에만 의존하지 않고 관련 정보를 가져와서 정적 LLM을 실시간 데이터 검색과 연결합니다.

RAG 아키텍처를 사용하면 조직은 모델을 미세 조정하거나 사전 학습시키는 데 비용과 시간을 들이지 않고 소량의 데이터를 제공하여 LLM 모델을 배포하고 이를 보강하여 조직에 관련성 높은 결과를 반환할 수 있습니다.

RAG의 사용 사례에는 어떤 것이 있나요?

RAG에는 다양한 사용 사례가 있습니다. 가장 일반적인 사용 사례는 다음과 같습니다.

  1. 질의 응답 챗봇: LLM을 챗봇과 통합하면 회사 문서 및 지식 베이스에서 보다 정확한 답변을 자동으로 도출할 수 있습니다. 챗봇은 고객 지원 및 웹사이트 리드 후속 조치를 자동화하여 질문에 답변하고 문제를 신속하게 해결하는 데 사용됩니다.
  2. 검색 증강: LLM에서 생성된 답변으로 검색 결과를 보강하는 검색 엔진과 LLM을 통합하면 정보 쿼리에 대한 응답을 개선하고 사용자가 업무를 수행하는 데 필요한 정보를 더 쉽게 찾을 수 있습니다.
  3. 지식 엔진 — 데이터에 대한 질문하기(예: HR, 규정 준수 문서): 회사 데이터를 LLM의 컨텍스트로 사용할 수 있으며, 이를 통해 직원들은 복리후생 및 정책과 관련된 HR 질문, 보안 및 규정 준수 질문을 포함하여 질문에 대한 답변을 쉽게 얻을 수 있습니다.

RAG의 이점은 무엇인가요?

RAG 접근 방식에는 다음과 같은 여러 가지 주요 이점이 있습니다.

  1. 최신의 정확한 응답 제공: RAG는 LLM의 응답이 정적이고 오래된 학습 데이터에만 의존하지 않도록 보장합니다. 오히려 모델은 최신 외부 데이터 소스를 사용하여 응답을 제공합니다.
  2. 부정확한 응답 및 환각 현상 감소: LLM 모델의 출력은 관련된 외부 지식에 기반하므로 RAG는 부정확하거나 허구의 정보를 사용한 대응(환각 현상)의 위험을 완화하기 위해 노력합니다. 출력에는 원본 출처의 인용이 포함될 수 있으므로 사람이 확인할 수 있습니다.
  3. 도메인별 관련 응답 제공: LLM은 RAG를 사용하여 조직의 독점 데이터 또는 도메인별 데이터에 맞게 상황에 맞는 관련성 높은 응답을 제공할 수 있습니다.
  4. 탁월한 효율성 및 비용 효과성: 도메인별 데이터로 LLM을 맞춤 구성하는 다른 접근 방식에 비해 RAG는 간단하고 비용 효율적입니다. 조직은 모델을 맞춤 구성할 필요 없이 RAG를 배포할 수 있습니다. 이는 모델을 새로운 데이터로 자주 업데이트해야 할 때 특히 유용합니다.

어떤 경우에 RAG를 사용하고 모델을 미세 조정해야 하나요?

RAG는 유용한 출발점으로, 쉽게 사용할 수 있으며 일부 사용 사례에 사용하기에 충분합니다. 미세 조정은 LLM의 동작을 변경하거나 다른 '언어'의 학습과 같은 다양한 상황에서 가장 적합합니다. RAG와 미세 조정은 상호 배타적이지 않습니다. 이후 단계에서 도메인 언어와 원하는 출력 형식을 더 잘 이해하기 위해 모델을 미세 조정하는 것을 고려하고 RAG를 사용하여 응답의 품질과 관련성을 향상시키는 것도 가능합니다.

데이터로 LLM을 맞춤 구성하려는 경우의 전체 옵션과 가장 적합한 방법은 무엇인가요? (예: 프롬프트 엔지니어링, RAG, 미세 조정, 사전 학습)

조직의 데이터로 대규모 언어 모델(LLM) 솔루션을 맞춤 설정할 때 4가지 아키텍처 패턴을 고려해야 합니다. 이러한 기술은 아래에 요약되어 있으며, 상호 배타적이지 않습니다. 반대로. 각각의 장점을 활용하기 위해 서로 결합할 수 있거나 결합해야 합니다.

방법정의기본 사용 사례데이터 요구 사항장점고려 사항

프롬프트 엔지니어링

프롬프트 엔지니어링

LLM 동작을 안내하는 특수 프롬프트 제작빠르고 즉각적인 모델 안내없음빠르고 비용 효율적이며 학습이 필요하지 않음미세 조정보다 낮은 제어 수준

검색 증강 생성(Retrieval Augmented Generation, RAG)

검색 증강 생성(Retrieval Augmented Generation, RAG)

LLM과 외부 지식 검색 결합 동적 데이터세트 및 외부 지식외부 지식 베이스 또는 데이터베이스(예: 벡터 데이터베이스) 동적으로 업데이트되는 컨텍스트, 정확도 향상프롬프트 길이 및 추론 계산 증가

미세 조정

미세 조정

특정 데이터세트 또는 도메인에 맞춰 사전 학습된 LLM 조정도메인 또는 작업 전문화수천 개의 도메인 특정 또는 명령 예시세분화된 제어, 높은 수준의 전문화이 레이블이 지정된 데이터, 컴퓨팅 비용 필요

사전 학습

사전 학습

LLM을 처음부터 학습시키기고유한 작업 또는 도메인 특정 말뭉치대규모 데이터세트(수십억에서 수조 개의 토큰)특정 요구 사항에 맞게 조정된 최대 제어 수준리소스 집약적

선택한 기술에 관계없이 잘 구조화되고 모듈화된 방식으로 솔루션을 구축하면 조직은 반복과 조정 작업을 수행할 수 있는 준비가 됩니다. 이 접근 방식에 대한 자세한 내용은 MLOps의 Big Book을 참조하세요.

검색 증강 생성

RAG 애플리케이션을 위한 참조 아키텍처란 무엇인가요?

검색 증강 생성 시스템을 구현하는 방법에는 여러 가지가 있으며, 이는 특정 요구 사항과 데이터의 미묘한 차이에 따라 달라집니다. 다음은 프로세스에 대한 기본적인 이해를 제공하기 위해 일반적으로 채택되는 워크플로입니다.

RAG 애플리케이션을 위한 참조 아키텍처

  1. 데이터 준비: 문서 데이터는 메타데이터와 함께 수집되고 PII 처리(감지, 필터링, 수정, 대체)와 같은 초기 전처리를 거칩니다. RAG 애플리케이션에서 사용하려면 임베딩 모델 옵션과 문서를 컨텍스트로 사용하는 다운스트림 LLM 애플리케이션에 따라 문서를 적절한 길이로 분할해야 합니다.
  2. 관련 데이터 인덱싱: 문서 임베딩을 생성하고 이 데이터로 Vector Search 인덱스를 수화(hydrate )합니다.
  3. 관련 데이터 검색: 데이터에서 사용자의 쿼리와 관련된 부분을 검색합니다. 그러면 텍스트 데이터가 LLM에 사용되는 프롬프트의 일부로 제공됩니다.
  4. LLM 애플리케이션 빌드: 프롬프트 증강의 구성 요소를 래핑하고 LLM을 엔드포인트로 쿼리합니다. 그러면 이 엔드포인트가 간단한 REST API를 통해 질의 응답 챗봇과 같은 애플리케이션에 노출될 수 있습니다.

Databricks는 RAG 아키텍처의 몇 가지 주요 아키텍처 요소도 권장합니다.

  • 벡터 데이터베이스: 전부가 아닌 일부 LLM 애플리케이션은 빠른 유사성 검색에 벡터 데이터베이스를 사용하며, 대부분의 경우 LLM 쿼리에서 컨텍스트 또는 도메인 지식을 제공합니다. 배포된 언어 모델이 최신 정보에 액세스할 수 있도록 정기적인 벡터 데이터베이스 업데이트를 작업으로 예약할 수 있습니다. 벡터 데이터베이스에서 검색하고 LLM 컨텍스트에 정보를 삽입하는 논리는 MLflow, LangChain, PyFunc 등의 모델 종류를 사용하여 MLflow에 기록된 모델 아티팩트에 패키징할 수 있습니다.
  • MLflow LLM 배포 또는 Model Serving: 타사 LLM API를 사용하는 LLM 기반 애플리케이션에서 외부 모델에 대한 MLflow LLM 배포 또는 Model Serving 지원을 표준화된 인터페이스로 사용하여 OpenAI 및 Anthropic과 같은 공급업체의 요청을 라우팅할 수 있습니다. 엔터프라이즈급 API 게이트웨이를 제공하는 것 외에도 MLflow LLM 배포 또는 Model Serving은 API 키 관리를 중앙 집중화하고 비용 제어하는 기능을 제공합니다.
  • Model Serving: 타사 API를 사용하는 RAG의 경우, 한 가지 주요 아키텍처 변경 사항은 LLM 파이프라인이 Model Serving 엔드포인트에서 내부 또는 타사 LLM API로 외부 API 호출을 수행한다는 것입니다. 이로 인해 복잡성이 가중되고, 대기 시간이 길어지며, 자격 증명 관리가 강화될 수 있다는 점에 유의해야 합니다. 반대로, 미세 조정된 모델의 경우 모델과 해당 모델 환경이 배포됩니다.

리소스

Databricks 고객의 RAG 사용 사례

JetBlue

JetBlue는 기업 데이터로 보완된 오픈 소스 생성형 AI 모델을 사용하는 Databricks 기반 챗봇인 'BlueBot'을 배포했습니다. 이 챗봇은 JetBlue의 모든 팀에서 역할별로 관리되는 데이터에 액세스하는 데 사용할 수 있습니다. 예를 들어 재무팀은 SAP 및 규제 관련 보고 자료의 데이터를 볼 수 있지만, 운영팀은 유지 관리 정보만 볼 수 있습니다.

기사도 참조하세요.

Chevron Phillips

Chevron Phillips Chemical은 Databricks를 사용하여 문서 프로세스 자동화를 비롯한 생성형 AI 이니셔티브를 지원합니다.

Thrivent Financial

Thrivent Financial은 생성형 AI를 사용하여 검색 기능을 개선하고, 더 쉽게 액세스할 수 있는 요약된 인사이트를 생성하며, 엔지니어링의 생산성을 높일 방법을 찾고 있습니다.

검색 증강 생성에 대한 자세한 내용은 어디에서 찾을 수 있나요?

다음을 비롯한 다양한 리소스를 참고할 수 있습니다.

블로그

eBook

데모

Databricks에 연락해 데모를 예약하고 LLM 및 검색 증강 생성(RAG) 프로젝트에 대해 문의하시기 바랍니다.

    용어집으로 돌아가기