RAGAI검색증강생성입문

RAG 시스템 이해하기 - AI에게 최신 지식 주입하는 법

6분 읽기

RAG 시스템 이해하기 - AI에게 최신 지식 주입하는 법

ChatGPT에게 최신 뉴스를 물어보면 모른다고 합니다. 회사 내부 문서 내용을 물어봐도 마찬가지입니다. 학습 데이터에 없는 정보는 답할 수 없기 때문입니다. RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 이 문제를 해결하는 혁신적인 기술입니다.

RAG란 무엇인가?

RAG는 검색(Retrieval)과 생성(Generation)을 결합한 시스템입니다. 질문을 받으면 관련 문서를 먼저 검색하고, 그 문서를 참고해서 답변을 생성합니다. 사람이 모르는 걸 물어봤을 때 자료를 찾아보고 답하는 것과 비슷합니다.

기존 LLM의 가장 큰 문제는 학습 시점 이후의 정보를 모른다는 것입니다. ChatGPT-3.5는 2021년 9월까지의 데이터로 학습했습니다. 2022년에 일어난 일은 전혀 모릅니다. 재학습하려면 막대한 비용이 듭니다.

RAG는 이 문제를 우회합니다. 모델을 재학습하지 않고, 외부 지식 베이스를 연결합니다. 질문이 들어오면 지식 베이스에서 관련 정보를 찾아 LLM에게 함께 전달합니다. LLM은 그 정보를 바탕으로 답변을 생성합니다.

가장 큰 장점은 유연성입니다. 지식 베이스만 업데이트하면 됩니다. 새로운 문서를 추가하거나 오래된 정보를 삭제하는 것이 간단합니다. 모델 재학습이 필요 없어 비용도 크게 절감됩니다.

RAG 시스템의 작동 원리

RAG는 크게 세 단계로 작동합니다. 첫 번째는 문서 준비입니다. 참고할 문서들을 작은 청크(chunk)로 나눕니다. 한 문서를 통째로 넣으면 너무 길어서 처리가 어렵습니다. 보통 100-500단어 정도로 나눕니다.

각 청크를 벡터로 변환합니다(임베딩). 문장의 의미를 수백 차원의 숫자 배열로 표현하는 것입니다. 의미가 비슷한 문장은 비슷한 벡터를 가집니다. 이 벡터들을 벡터 데이터베이스에 저장합니다.

두 번째는 검색 단계입니다. 사용자 질문이 들어오면, 그것도 벡터로 변환합니다. 벡터 데이터베이스에서 질문 벡터와 가장 유사한 문서 청크들을 찾습니다. 코사인 유사도 같은 방법으로 유사성을 계산합니다.

세 번째는 생성 단계입니다. 찾은 문서 청크들을 LLM에게 컨텍스트로 제공합니다. "다음 문서를 참고해서 질문에 답하세요"라고 지시합니다. LLM은 제공된 정보를 바탕으로 답변을 생성합니다.

RAG vs 파인튜닝

둘 다 LLM에 새로운 지식을 주입하는 방법이지만, 접근이 다릅니다. 파인튜닝은 모델 자체를 수정합니다. 새로운 데이터로 모델을 재학습시켜 가중치를 업데이트합니다. 지식이 모델 안에 내재화됩니다.

RAG는 모델을 건드리지 않습니다. 외부 지식 베이스를 참조할 뿐입니다. 지식이 모델 밖에 있어 쉽게 업데이트하고 검증할 수 있습니다. 출처를 명시할 수 있어 신뢰성도 높습니다.

언제 무엇을 쓸까요? 지식이 자주 바뀐다면 RAG가 낫습니다. 뉴스, 제품 정보, 법률 같은 분야입니다. 파인튜닝하면 매번 재학습해야 하지만, RAG는 문서만 업데이트하면 됩니다.

반대로 특정 스타일이나 톤을 학습시키려면 파인튜닝이 낫습니다. 회사의 브랜드 보이스, 전문 용어 사용법 같은 것은 모델에 내재화시키는 게 효과적입니다.

이상적으로는 둘을 함께 씁니다. 파인튜닝으로 도메인 특화 언어 패턴을 학습시키고, RAG로 최신 정보를 제공합니다. Microsoft의 Bing Chat이 이 방식입니다.

실무 적용 사례

사내 지식 관리 시스템에 RAG가 이상적입니다. 회사의 모든 문서, 매뉴얼, 위키를 RAG 시스템에 넣으면, 직원들이 자연어로 질문하고 답을 얻을 수 있습니다. "올해 휴가 정책이 어떻게 바뀌었지?"라고 물으면 최신 규정을 찾아서 설명해줍니다.

고객 지원에서도 강력합니다. 제품 매뉴얼, FAQ, 이전 상담 기록을 RAG 시스템에 넣습니다. 고객 문의가 들어오면 관련 정보를 찾아 상담원에게 제시하거나, 챗봇이 직접 답변합니다. 상담 품질이 향상되고 응답 시간이 단축됩니다.

법률 리서치에서 RAG는 게임 체인저입니다. 수만 건의 판례를 RAG 시스템에 넣으면, 변호사가 자연어로 질문하고 관련 판례를 찾을 수 있습니다. 며칠 걸리던 리서치를 몇 분으로 단축합니다.

연구 개발에서도 유용합니다. 회사의 모든 연구 논문, 특허, 실험 데이터를 RAG 시스템에 넣습니다. 연구원이 "비슷한 실험을 한 적이 있나?"라고 물으면 관련 자료를 찾아줍니다. 중복 연구를 방지하고 지식을 재활용할 수 있습니다.

교육 분야에서는 개인화된 학습 도우미로 씁니다. 교과서, 강의 자료, 과제를 RAG 시스템에 넣으면, 학생이 질문하고 설명을 들을 수 있습니다. 24시간 이용 가능한 AI 튜터입니다.

실천 가이드

  1. 간단한 RAG 시스템 만들어보기: LangChain이나 LlamaIndex 같은 프레임워크를 사용하세요. Python 코드 몇 줄로 기본 RAG를 구현할 수 있습니다. 직접 만들어보는 것이 이해가 빠릅니다.

  2. 무료 벡터 DB 써보기: Pinecone의 무료 플랜이나 Chroma DB로 시작하세요. 문서를 임베딩하고 검색하는 과정을 경험할 수 있습니다.

  3. 청크 크기 실험하기: 100단어, 300단어, 500단어로 나눠보고 어느 것이 가장 좋은 결과를 내는지 테스트하세요. 정답은 없고 데이터와 질문 유형에 따라 다릅니다.

  4. 임베딩 모델 선택하기: OpenAI의 ada-002, Google의 Gecko, 오픈소스 Sentence Transformers 등을 비교해보세요. 한국어라면 한국어 특화 모델을 쓰는 것이 좋습니다.

  5. 프로덕션 도구 활용하기: 직접 구현이 부담스럽다면 OpenAI Assistants API, AWS Kendra, Google Vertex AI Search 같은 관리형 서비스를 검토하세요.

마무리

RAG는 LLM의 가장 큰 한계인 지식 업데이트 문제를 해결합니다. 모델을 재학습하지 않고도 최신 정보, 전문 지식, 사내 데이터를 활용할 수 있게 해줍니다.

기술은 복잡해 보이지만, 개념은 단순합니다. 검색하고, 찾은 정보를 바탕으로 답변을 생성합니다. 우리가 매일 하는 일과 크게 다르지 않습니다.

ChatGPT를 쓰면서 "내 회사 데이터를 활용할 수 없을까?"라고 생각해본 적 있다면, RAG가 답입니다. 이제는 도구도 많고 학습 자료도 풍부합니다. 작은 프로젝트로 시작해보세요. 생각보다 쉽게 구현할 수 있습니다.

함께 읽으면 좋은 글