4장 RAG
Last updated
Last updated
AI가 응답을 생성할 때 외부 데이터베이스에서 정보를 검색(Retrieval)하여 이를 기반으로 요청내용을 보강(Augmented)하여 답변을 생성(Generation)하는 기법
LLM모델이 가지는 단점 중 하나가 사전 학습된 정보만을 활용하여 응답을 생성하는 것인데, RAG방식의 응답은 실시간 검색을 통해 최신 정보를 반영하여 더욱 정확한 응답을 제공할 수 있다.
RAG를 통해 최신정보, 특정 도메인에 특화된 정보를 검색하거나 사용자의 프롬프트 내용의 부족한 문맥을 보강하여 더욱 정확한 응답을 받을 수 있다.
단순 LLM서비스에 비하여 서비스 아키텍쳐 설계가 복잡하다. Lang Chain과 같은 LLM 프레임워크에서 자주 설계되는 패턴
강점
LLM이 아직 학습하지 못한 최신 데이터 활용할 수 있다다
사용자의 질문을 변환하여 적절한 문맥을 생성하므로 더 적절하고 신뢰성 높은 응답결과를 생성받을 수 있다
특정 전문지식을 쉽게 통합하여 전문적인 답변을 제공 받을 수 있다.
단점
실시간 검색과 문맥 보강 등의 과정이 추가되므로 성능상 응답시간이 길어 진다
LLM이 관리하는 데이터와 RAG에서 활용하는 저장소의 정보가 충돌되는 경우 잘못된 데이터를 응답받을 가능성이 있다.
검색된 문서가 부정확하거나 잘못된 경우 잘못된 응답을 받을 수 있다.
DataBase, Document, API등 외부 데이터 소스로부터 데이터를 수집
수집된 데이터를 색인(Indexing)하여 Vector DB에 저장
사용자의 질문(Query)이 들어오면 질문 내용을 다시 색인하여 VectorDB(Index)에서 관련 내용을 검색
검색된 정보에 사용자의 질문과 기본 프롬프트(Prompt+query+data)를 혼합하여 LLM에게 질문
LLM은 RAG를 통해 보강된 프롬프트를 바탕으로 신뢰성 있는 결과 값 응답