Jump to content

(1부) RAG란 무엇인가


Recommended Posts

이번 포스팅은 'RAG(Retrieval-Augmented Generation)'을 주제로 한 시리즈의 첫 번째 글입니다.

총 3부로 구성된 이 시리즈에서는 RAG가 등장하게 된 배경과 RAG의 개념에 대해 자세히 알아보고자 합니다.

 

RAG 3부작 시리즈
✔︎ (1부) RAG란 무엇인가
✔︎ (2부) RAG 구현 단계 알아보기 링크
✔︎ (3부) CLOVA Studio를 이용해 RAG 구현하기 Cookbook

 

image.png.3f7857500bfa4f322dddf520a4e6474e.png

 

LLM의 등장과 한계

대규모 언어 모델(LLM)의 등장은 인간만이 가능하다고 여겨졌던 많은 분야에서 인공지능의 잠재력을 보여주었습니다. 방대한 양의 데이터를 기반으로 학습한 LLM은 인간 수준의 텍스트를 생성하고, 다양한 질문에 답변을 제공하며, 나아가 창의성이 요구되는 예술 분야에서도 두각을 나타내고 있습니다.

 

그러나 LLM이 보편화된 지 약 2년이 지난 지금, 이를 상용화하려는 많은 기업은 오랜 문제에 직면하고 있습니다. 그 문제는 바로 '할루시네이션'입니다. 인공지능 챗봇과의 대화에 큰 기대를 품었던 사용자들은 LLM이 제공하는 부정확하고 불완전한 답변에 실망하곤 합니다. 이는 할루시네이션 문제와 밀접한 관련이 있습니다. 할루시네이션은 단순히 사실이 아닌 내용을 만들어내는 문제를 넘어, LLM이 데이터의 최신성이나 출처의 투명성 확보와 같은 '정보 검색 방식의 질적 전환'에 필수적인 기능을 갖추지 못했음을 시사합니다. 아무리 그럴듯해 보여도 실제로는 도움이 되지 않는 답변으로는 기존의 정보 검색 패러다임을 변화시킬 수 없을 것입니다.

*할루시네이션편향되거나 불충분한 학습 데이터모델의 과적합 등으로 인해 LLM 부정확한 정보를 생성하는 현상

 

LLM의 한계를 뛰어넘는 방법: RAG

이러한 LLM의 한계를 극복하기 위해 여러 방법이 제안되고 있습니다. 그중 하나는 Fine tuning으로, 사전 학습 모델(pre-trained model)에 특정 도메인(예: 의료, 법률, 금융)의 데이터를 추가 학습시켜 모델을 최적화하는 방식입니다. 이를 통해 모델은 특정 분야에 대한 전문 지식을 습득하고 정확하고 전문적인 답변을 제공할 수 있습니다. 그러나 Fine tuning은 시간과 비용이 많이 소요되고, 모델의 범용성이 저하될 수 있습니다.

 

반면 RAG는 외부 지식 소스와 연계하여 모델의 범용성과 적응력을 유지하면서도 정확하고 신뢰할 수 있는 답변을 생성할 수 있습니다. 즉, RAG는 LLM의 한계를 극복하면서도 그 장점을 살릴 수 있는 접근 방식이라고 할 수 있습니다.

 

RAG의 작동 방식은 다음과 같습니다.

  1. 사용자가 질문을 입력합니다.
  2. RAG는 외부 데이터베이스(예: 웹 문서, 기업 내부 문서)에서 질문과 관련된 정보를 검색합니다.
  3. 검색된 정보를 기반으로 LLM이 답변을 생성합니다.

 

RAG는 다음과 같은 장점을 가지고 있습니다.

  1. Fine tuning 비해 시간과 비용이 적게 소요됩니다.

    • 외부 데이터베이스를 활용하기 때문에 별도의 학습 데이터를 준비할 필요가 없습니다.

  2. 모델의 일반성을 유지할  있습니다.

    • 특정 도메인에 국한되지 않고 다양한 분야에 대한 질문에 답변할 수 있습니다.

  3. 답변의 근거를 제시할  있습니다.

    • 답변과 함께 정보 출처를 제공하여 답변의 신뢰도를 높일 수 있습니다.

  4. 할루시네이션 가능성을 줄일  있습니다.

    • 외부 데이터를 기반으로 답변을 생성하기 때문에 모델 자체의 편향이나 오류를 줄일 수 있습니다.

 

이를 비유하자면, Fine tuning은 언어 모델(A)이 사용자의 질문에 정확히 답하기 위해 특정 도메인 지식을 공부하고 학습하여 암기한 상태로 성장시키는 것이라면, RAG는 언어 모델(A)과 도서관 사서가 협업하는 것과 같습니다. 사용자가 질문을 하면, 사서가 도서관의 책 중에서 그 질문에 대한 정보를 담고 있는 책을 찾아낸 후, 언어 모델(A)이 그 책의 내용을 참고하여 질문에 답변하는 것이라고 볼 수 있습니다.

 

Fine tuning과 RAG는 기술적 차이는 있지만, 모두 LLM의 한계를 극복하고 인공지능 기술의 발전을 이끄는 중요한 방법입니다. 상황에 따라 적합한 방법을 선택하고 활용한다면 LLM의 잠재력을 최대한 발휘할 수 있을 것입니다.

 

RAG 자세히 알아보기

그렇다면 RAG에 대해서 조금 더 자세하게 알아볼까요? RAG의 작동 과정을 단계별로 더욱 자세히 살펴보면 다음과 같습니다.

  1. 데이터 임베딩 및 벡터 DB 구축

    • RAG의 첫 번째 단계는 자체 데이터를 임베딩 모델에 통합하는 것입니다.

    • 텍스트 데이터를 벡터 형식으로 변환하여 벡터 DB를 구축합니다.

    • 이렇게 벡터화된 정보가 풍부한 데이터베이스는 Retriever(문서 검색기) 부분에서 사용자의 쿼리와 관련된 정보를 찾는 데 활용됩니다.

  2. 쿼리 벡터화 및 관련 정보 추출 (증강 단계)

    • 사용자의 질문(쿼리)을 벡터화합니다.

    • 벡터 DB를 대상으로 다양한 검색 기법을 사용하여 소스 정보에서 가장 관련성이 높은 부분 또는 상위 K개의 항목을 추출합니다.

    • 추출된 관련 정보는 쿼리 텍스트와 함께 LLM에 제공됩니다.

  3. LLM 통한 답변 생성

    • LLM 쿼리 텍스트와 추출된 관련 정보를 바탕으로 최종 답변을 생성합니다.

    •  과정에서 정확한 출처에 기반한 답변이 가능해집니다.

877428843_rag.png.fe86ce26c424ea7cd9b347adfe2243f5.png

 

아직 어려우신가요? 좀 더 쉬운 이해를 위해 앞선 도서관과 사서의 비유를 다시 가져와보겠습니다.

 

벡터 DB 구축: 수많은 책을 보관한 도서관

RAG의 첫 번째 단계는 자체 데이터를 임베딩 모델에 통합하여 벡터 DB를 구축하는 것으로, 이는 마치 사서가 방대한 양의 책을 정리하고 분류하여 도서관에 보관하는 것과 같습니다. 책은 텍스트 정보이며, 임베딩 모델은 책을 벡터라는 숫자 형식으로 변환하는 도구입니다. 벡터화된 정보는 책의 요약본과 같아서 사용자가 책의 내용을 쉽게 이해하고 찾을 수 있도록 도와줍니다.

 

정보 검색: 사용자에게 딱 맞는 책 추천

사용자가 도서관에 방문하여 질문을 하면, 사서는 사용자의 질문을 이해하고 관련된 책을 찾아주듯이, RAG의 두 번째 단계에서는 사용자의 질문(쿼리)을 벡터화하여 벡터 DB에서 가장 관련성이 높은 정보를 찾아냅니다. 이는 마치 사서가 책의 요약본을 바탕으로 사용자에게 딱 맞는 책을 추천하는 것과 유사합니다.

 

답변 생성: 사용자를 위한 지식 활용

사서가 추천한 책을 바탕으로 사용자는 새로운 지식을 얻듯이, RAG의 마지막 단계에서 LLM은 벡터 데이터베이스에서 추출된 정보와 사용자의 질문을 기반으로 새로운 답변을 생성합니다.이는 사용자가 책을 읽고 새로운 지식을 얻어 자신의 생각을 바탕으로 새로운 아이디어를 창조하는 것과 같습니다.

 

RAG는 Retrieval(검색), Augmentation(증강), Generation(생성)의 세 단계로 이루어져 있으며, 각 단계가 협력하여 사용자의 질문에 빠르고 정확하게 답변할 수 있도록 돕습니다. 최신 정보 검색, 벡터화, 벡터 유사성 검색을 사용한 정보 증강, 그리고 생성형 AI를 결합함으로써 LLM은 더 최신이고 간결하며 근거에 기반한 결과를 얻을 수 있게 됩니다. RAG 기술은 인공지능 분야에서 새로운 가능성을 제시하는 기술로 평가받고 있습니다. LLM의 한계를 극복하고 더욱 정확하고 신뢰할 수 있는 답변을 생성할 수 있다는 점에서 그 잠재력이 매우 크다고 할 수 있습니다.

 

지금까지 RAG 기술의 등장 배경과 작동 원리에 대해 알아보았는데요. 다음 편에서는 CLOVA Studio를 통해 RAG 기술을 어떻게 구현할 수 있는지 좀 더 자세히 알아보겠습니다.

 
RAG 3부작 시리즈
✔︎ (1부) RAG란 무엇인가
✔︎ (2부) RAG 구현 단계 알아보기 링크
✔︎ (3부) CLOVA Studio를 이용해 RAG 구현하기 Cookbook

 

studio_btn3.png.db0b70db49826f383daa5d25d288eb56.png

 

  • Like 1
링크 복사
다른 사이트에 공유하기

게시글 및 댓글을 작성하려면 로그인 해주세요.



로그인
 Share

×
×
  • Create New...