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

컴퓨터과학·AI
한 줄 정의: 언어모델이 답을 생성하기 전에 외부 문서나 데이터베이스에서 관련 정보를 먼저 검색해, 그 내용을 근거로 답변을 만들어내는 방법입니다.

쉽게 풀면

시험을 볼 때 오직 암기한 내용만으로 답을 써야 하는 "암기 시험"과, 책이나 자료를 찾아보면서 답을 쓸 수 있는 "오픈북 시험"의 차이를 생각해 보세요. 오픈북 시험에서는 기억이 정확하지 않아도 자료를 찾아 확인하면서 답을 쓸 수 있어 훨씬 정확한 답을 낼 수 있습니다. 검색증강생성(RAG)도 이와 비슷합니다. 언어모델이 학습 당시 외운 지식에만 의존해 답을 지어내는 대신, 질문이 들어오면 먼저 관련 문서를 검색엔진이나 임베딩 기반 검색으로 찾아온 뒤, 그 문서 내용을 참고해서 답변을 작성합니다. 그 결과 최신 정보나 사실에 더 근거한 답변을 만들 수 있습니다.

왜 중요한가

RAG는 언어모델을 재학습시키지 않고도 최신 정보나 특정 도메인 지식을 반영할 수 있는 비교적 저렴한 방법이기 때문에, 자연어처리 연구뿐 아니라 의료, 법률, 기업 내부 문서 검색 등 실무 응용 분야 논문에서도 폭넓게 다뤄집니다. 특히 모델의 파라미터에 저장된 지식만으로는 한계가 있는 전문 분야에서, 신뢰할 수 있는 외부 근거 문서를 활용해 답변의 정확성과 검증가능성을 높이는 접근으로 주목받고 있습니다. 이 때문에 RAG는 대형언어모델의 실용적 배포를 다루는 논문에서 사실상 표준적인 구성 요소로 자리잡고 있습니다.

논문에서는 이렇게 쓰입니다

"환각 현상을 줄이기 위해 검색증강생성(RAG) 구조를 도입하여, 질의와 관련된 문서를 외부 지식베이스에서 검색한 뒤 이를 근거로 답변을 생성하도록 설계했다."

이 문장은 "모델이 사실이 아닌 내용을 그럴듯하게 지어내는 것을 막기 위해, 답변을 만들기 전에 실제 문서를 찾아보고 그 문서에 적힌 내용을 바탕으로 답을 쓰게 했다"는 뜻입니다.

"임상 질의응답 시스템에 RAG를 적용하여 최신 진료 지침 문서를 검색 대상으로 삼은 결과, 검색 없이 답변한 기준 모델보다 사실 정확도가 유의하게 향상되었다."

이 예문은 의료 도메인에서 RAG가 최신성이 중요한 진료 지침을 반영하는 데 활용되는 방식을 보여줍니다. 모델을 매번 재학습시키지 않고도 문서 데이터베이스만 갱신하면 최신 정보를 반영할 수 있다는 장점이 강조되는 사례입니다.

"법률 문서 검색 과제에서 밀집 검색기(dense retriever)와 재순위화(reranking) 단계를 결합한 RAG 파이프라인이 단순 키워드 검색 기반 RAG보다 관련 판례를 더 정확히 찾아냈다."

이처럼 RAG 연구에서는 생성 모델 자체보다 검색 단계의 설계(어떤 검색 방식을 쓰고, 검색 결과를 어떻게 다시 정렬하는지)를 개선하는 데 초점을 맞추는 경우도 많습니다.

조금 더 깊게 보면

RAG 파이프라인은 대개 질의를 벡터로 변환하는 임베딩 모델, 관련 문서를 빠르게 찾아내는 벡터 검색 인덱스(혹은 전통적인 키워드 검색과의 결합), 그리고 검색된 문서를 입력에 포함해 답을 생성하는 언어모델 세 요소로 구성됩니다. 검색 정확도를 높이기 위해 검색 결과를 한 번 더 정렬하는 재순위화 단계나, 질의 자체를 검색에 적합하게 다시 쓰는 질의 재작성(query rewriting) 기법이 함께 쓰이기도 합니다. 평가 시에는 최종 답변의 정확성뿐 아니라, 검색된 문서가 실제로 질문과 관련이 있었는지(검색 정밀도·재현율), 그리고 생성된 답변이 검색된 문서 내용에 얼마나 충실한지(근거 충실도)를 나누어 측정하는 것이 일반적입니다.

주의할 점

RAG는 환각현상을 줄이는 데 도움을 주지만, 완전히 없애주지는 않습니다. 검색된 문서 자체가 부정확하거나 질문과 관련이 낮다면, 모델은 여전히 잘못된 근거를 바탕으로 그럴듯한 오답을 만들어낼 수 있습니다. 따라서 검색 단계의 정확도(어떤 문서를 얼마나 잘 찾아오는지)가 전체 시스템 성능에 큰 영향을 줍니다.

관련 용어