다음을 통해 공유


AI 개발에서의 RAG 소개

RAG(검색 증강 생성)를 설명하는 문서로, RAG의 정의, 작동 방식 및 주요 개념을 소개합니다.

검색 증강 생성이란?

RAG는 LLM(대규모 언어 모델)이 외부 정보 원본에서 검색된 지원 데이터를 사용하여 사용자의 프롬프트를 보강하여 보강된 응답을 generate 수 있도록 하는 기술입니다. 이 검색된 정보를 통합하면 RAG를 사용하면 추가 컨텍스트로 프롬프트를 확대하지 않는 것에 비해 LLM이 더 정확하고 고품질의 응답을 generate 수 있습니다.

예를 들어 직원이 회사의 독점 문서에 대한 질문에 답변할 수 있도록 질문과 대답 챗봇을 빌드한다고 가정해 보겠습니다. 독립 실행형 LLM은 이러한 문서의 내용에 대해 특별히 학습되지 않은 경우 질문에 정확하게 대답할 수 없습니다. LLM은 정보가 부족하여 답변을 거부하거나, 더 나쁜 경우 잘못된 응답을 generate 수 있습니다.

RAG는 먼저 사용자의 쿼리를 기반으로 회사 문서에서 관련 정보를 검색한 다음, 검색된 정보를 LLM에 추가 컨텍스트로 제공하여 이 문제를 해결합니다. 이를 통해 LLM은 관련 문서에 있는 특정 세부 정보를 그려 보다 정확한 응답을 generate 수 있습니다. 즉, RAG을 사용하면 LLM이 검색된 정보를 "참조"하여 답변을 작성할 수 있습니다.

RAG 애플리케이션의 핵심 구성 요소

RAG 응용 프로그램은 복합 AI 시스템의 한 예로, 다른 도구 및 절차와 결합하여 LLM의 언어 기능을 확장합니다.

독립 실행형 LLM을 사용하는 경우 사용자는 질문과 같은 요청을 LLM에 제출하고 LLM은 학습 데이터에만 기반한 답변으로 응답합니다.

RAG 애플리케이션에서는 다음과 같은 기본 단계들이 일어납니다.

  • 검색: 사용자의 요청은 일부 외부 정보 원본을 쿼리하는 데 사용됩니다. 이는 벡터 스토어 쿼리, 일부 텍스트에 대한 키워드 검색 또는 SQL 데이터베이스 쿼리를 의미할 수 있습니다. 검색 단계의 목표는 LLM이 유용한 응답을 제공하는 데 도움이 되는 지원 데이터를 얻는 것입니다.
  • 증강: 검색 단계에서 가져온 지원 데이터를 사용자의 요청과 결합하여 프롬프트를 만듭니다. 이때 LLM에 추가적인 서식과 지시 사항을 포함한 템플릿을 주로 사용합니다.
  • 생성: 결과 프롬프트가 LLM에 전달되고 LLM은 사용자의 요청에 대한 응답을 생성합니다.

RAG 애플리케이션의 흐름: 사용자 요청에서 데이터 검색 및 응답까지.

이는 RAG 프로세스에 대한 간단한 개요이며, RAG 애플리케이션을 구현하는 것은 많은 복잡한 작업을 포함한다는 점을 유의해야 합니다. RAG에서 사용하기에 적합하도록 원본 데이터를 전처리하고, 데이터를 효과적으로 검색하고, 보강된 프롬프트의 서식을 지정하고, 생성된 응답을 평가하려면 모두 신중한 고려와 노력이 필요합니다. 이 항목은 이 가이드의 뒷부분에서 자세히 설명합니다.

RAG를 사용하는 이유는 무엇인가요?

다음 table RAG과 독립 실행형 LLM을 사용하는 이점에 대해 간략하게 설명합니다.

LLM만 단독으로 사용 RAG와 함께 LLM 사용
독점 지식 없음: LLM은 일반적으로 공개적으로 사용 가능한 데이터에 대해 학습되므로 회사의 내부 또는 독점 데이터에 대한 질문에 정확하게 대답할 수 없습니다. RAG 애플리케이션은 독점 데이터를 통합할 수 있습니다. RAG 애플리케이션은 메모, 이메일 및 디자인 문서와 같은 독점 문서를 LLM에 제공하여 해당 문서에 대한 질문에 답변할 수 있도록 합니다.
실시간 지식 업데이트 불가: LLM은 학습된 후 발생한 이벤트에 대한 정보에 액세스할 수 없습니다. 예를 들어 독립 실행형 LLM은 오늘의 주식 변동 사항에 대해 알려줄 수 없습니다. RAG 애플리케이션은 실시간 데이터에 액세스할 수 있습니다. RAG 애플리케이션은 업데이트된 데이터 원본에서 최신 정보를 LLM에 제공하여 학습 중단 날짜가 지난 이벤트에 대한 유용한 답변을 제공할 수 있습니다.
인용 부족: LLM은 응답할 때 특정 정보 원본을 인용할 수 없으므로 응답이 실제로 올바른지 또는 단순한 오류인지 확인할 수 없습니다. RAG는 원본을 인용할 수 있습니다. RAG 애플리케이션의 일부로 사용되는 경우 LLM은 원본을 인용하도록 요청할 수 있습니다.
ACL(데이터 액세스 제어) 부족: LLM만으로는 특정 사용자 권한에 따라 각 사용자에게 맞춤화된 신뢰성 있는 답변을 제공할 수 없습니다. RAG는 데이터 보안/ACL을 허용합니다. 검색 단계는 사용자가 액세스할 credentials 정보만 찾도록 설계되어 RAG 애플리케이션이 개인 또는 독점 정보를 선택적으로 검색할 수 있도록 합니다.

RAG 형식

RAG 아키텍처는 다음 두 가지 유형의 지원 데이터를 사용할 수 있습니다.

구조화된 데이터 비정형 데이터
정의 행과 특정 columns로 정렬된 테이블 형식의 데이터 예를 들어, 데이터베이스의 tables가 포함된 schema. 특정 구조나 조직이 없는 데이터(예: 텍스트 및 이미지 또는 오디오 또는 비디오와 같은 멀티미디어 콘텐츠가 포함된 문서).
예제 데이터 원본 - BI 또는 Data Warehouse 시스템의 고객 레코드
- SQL Database의 트랜잭션 데이터
- 애플리케이션 API의 데이터(예: SAP, Salesforce 등)
- BI 또는 Data Warehouse 시스템의 고객 레코드
- SQL Database의 트랜잭션 데이터
- 애플리케이션 API의 데이터(예: SAP, Salesforce 등)
- PDF
- Google 또는 Microsoft Office 문서
- Wiki
- 이미지
- 동영상

RAG에 대한 데이터 선택은 사용 사례에 따라 달라집니다. 자습서의 나머지 부분에서는 구조화되지 않은 데이터에 대한 RAG에 중점을 둡니다.

< 이전: Gen AI 자습서 소개

다음: RAG 기본 사항 >