생성형 AI 환각 줄이는 기업용 RAG, 표+이미지까지 찾아야 게임체인저 (1)
최근 생성형 AI 전문 기업에서는 'RAG(Retrieval Augmented Generation, 검색증강생성)'를 기술력으로 내세우는 경우가 많습니다. 생성형 AI의 환각(Hallunication)을 줄이고 정확한 답을 내는 방법으로 RAG가 부상했는데요.
RAG는 2020년 5월에 발표된 논문 'Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(지식 집약적인 NLP 작업을 위한 검색증강생성)'에서 처음 등장한 개념인데요. 논문의 1 저자인 패트릭 루이스(Patrick Lewis) 박사는 메타에서 이 논문을 작성했고, 현재 코히어(Cohere)의 모델링 리드를 맡고 있습니다.
논문의 문제 인식은 명확합니다. LLM(대규모 언어 모델)은 사전에 훈련이 완료되었고 범용적인 질문에 대한 답을 상당히 잘 하지만, 도메인 특화된 지식에 대해서는 한계를 보이며 지속적으로 새로운 지식이 업데이트 되지 않는다는 점입니다.
이에 대한 대안은 크게 두 가지인데, 첫 번째로 도메인 특화된 파인 튜닝 모델을 만드는 것이죠. 하지만 비용도 많이 들고 여전히 새로운 정보에 민첩하게 대응하기 어렵습니다.
이 논문의 RAG 개념은 파라미터와 비파라미터를 결합하는 접근법을 제안하는데요. 쉽게 표현하면 오픈북 시험이라고 보시면 됩니다. 머리 속에 기억하고 있는 내용(파라미터)과 책(비파라미터)을 결합해서 명확한 컨텍스트 안에서 최신의 정보가 반영된 답을 하는 것이죠.
RAG가 그럼 어떤 흐름으로 어떻게 답을 생성하는지 살펴보겠습니다.
- 검색(Retrieve): 질문을 넣으면 외부 지식에서 관련된 내용들을 찾습니다.
질문과 벡터 데이터베이스에서 찾은 내용 중 유사한 것 중에서 상위 데이터들이 컨텍스트가 됩니다. - 증강(Augment): 사용자 질문과 검색 결과의 추가 컨텍스트가 프롬프트 템플릿에 채워집니다.
- 생성(Generate): 마지막으로 2의 프롬프트가 LLM에 제공되어 답변이 생성됩니다.
위의 검색-증강-생성 순서를 보니 RAG는 고성능의 리트리버가 중요하다는 것이 이해되시겠지요? 벡터 데이터베이스에서 답을 잘 찾아야 증강과 생성도 잘 이어지게 됩니다.
이전 글에서 이정훈 엔지니어가 RAG를 잘 하기 위해 해결해야 하는 여러 기술적인 문제들에 대해서 다뤘는데요. 복잡한 표에서 답 찾기, 여러 페이지의 문서에서 질문과 관련 있는 페이지를 찾아내야 하는 리트리버 등 선결해야 할 문제들이 많습니다.
RAG를 잘 한다고 하는 솔루션들은 단순한 문서나 간단한 질문에 대해서는 답을 잘 찾기만, 기업에서 실제로 사용하는 문서들은 문서의 양이 많고 복잡하며, 표와 차트 등이 많이 들어가게 되죠.
"생성형 AI 환각 줄이는 기업용 RAG, 표+이미지까지 찾아야 게임체인저 (2)"편에서는 표와 이미지에서 RAG 성능을 높이기 위한 올거나이즈의 방법론을 설명해 드리겠습니다.