AI

RAG 알아보기

techrybbit 2025. 3. 10. 00:00

RAG란

RAG는 검색 증강 생성(Retrieval-Augmented Generation)의 약자로, 정보 검색(Retrieval)과 생성(Generation)을 결합한 AI 모델입니다.

 

기존 LLM방식과 RAG 방식 비교

 

왜 RAG를 사용하는가

기존의 LLM(Large Language Model)은 학습된 데이터만을 기반으로 답변을 생성하는 방식이었습니다. 하지만 이 방식에는 다음과 같은 한계가 존재합니다.

 

  1. 최신 정보 반영이 어려움
    다량의 실시간 정보를 LLM에 학습시켜 새로운 정보를 답변에 반영하는 데는 한계가 있습니다.
    반면, RAG는 외부 데이터베이스에서 최신 정보를 검색하여 활용한다면, 항상 최신 상태의 답변을 제공할 수 있습니다.

  2. 할루시네이션(Hallucination) 문제
    LLM은 종종 사실과 다른 정보를 생성하는 문제(할루시네이션; 환각)이 발생할 수 있습니다.
    하지만, RAG는 검색된 문서를 기반으로 답변을 생성하므로, 잘못된 정보가 생성될 가능성을 줄일 수 있습니다.

  3. 너무 일반적인 정보 제공
    기존 LLM은 일반적인 지식을 기반으로 답변을 생성하는 경우가 많아, 특정 산업(의료, 법률, 금융 등)에 맞는 전문적인 정보를 제공하기 어렵습니다. 그러나, RAG는 도메인 특화된 문서를 검색하여 활용할 수 있어, 보다 정확하고 산업 맞춤형 답변 제공이 가능합니다.

 

RAG의 동작과정

RAG(Retrieval-Augmented Generation)는 정보를 검색하고 생성하는 과정을 거칩니다. 이 과정은 크게 전처리(Pre-processing) 단계와 실시간 검색 및 생성 단계로 나눌 수 있습니다.

 

1. 전처리(Pre-processing) 단계

문서를 벡터화하여 데이터베이스에 저장하는 과정입니다.

 

① Document Load (문서 로드)

  • 텍스트, 오디오 등 다양한 형태의 데이터를 불러옵니다.
  • 문서, PDF, 웹페이지, 데이터베이스 등의 정보를 활용할 수 있습니다.

② Text Split (텍스트 분할)

  • 불필요한 부분을 제거하고, 관련성이 높은 단락을 추출합니다.
  • 사람이 목차, 키워드, 마인드맵을 활용해 정보를 구조화하는 것과 비슷한 개념입니다.
  • AI가 한 번에 이해할 수 있도록 맥락의 크기(Context Length)를 조정합니다.

③ Embedding (벡터 변환)

  • 텍스트를 컴퓨터가 이해할 수 있도록 숫자로 변환합니다.
  • 데이터의 유사도를 측정하기 위해 고차원 벡터 공간으로 매핑됩니다.
    • 예: "새콤달콤" → [새콤: 0.7, 달콤: 0.3]
  • OpenAI의 경우 1536차원의 임베딩 벡터를 사용합니다.

④ DB(VectorDB) 저장

  • 매번 Load, Split, Embedding을 수행하면 비효율적이므로, 벡터값을 벡터 데이터베이스(Vector DB)에 저장합니다.
  • 이후 검색 요청이 들어오면 벡터 검색을 통해 빠르게 관련 정보를 찾아 반환할 수 있습니다.

 

2. 실시간 검색 및 생성 단계

사용자의 질문을 입력받아 적절한 답변을 생성하는 과정입니다.

① 사용자 입력 (Query 입력)

  • 사용자가 질문을 입력합니다.
    • 예: "쿠버네티스 CKA 인증 시험이 뭐야?"

② 검색 (Retrieval - Vector Search)

  • 입력된 질문을 벡터 변환(Embedding) 후,
  • 벡터 데이터베이스(VectorDB)에서 유사한 임베딩 벡터를 검색하여 관련 문서를 찾습니다.

③ 생성 (Generation - LLM Processing)

  • 검색된 문서를 LLM(Large Language Model)에 입력하여, 답변을 생성합니다.
  • 기존 LLM이 단순히 학습된 데이터만 사용했다면, RAG는 검색한 최신 정보를 활용하여 답변을 보강합니다.

④ 최종 응답 출력

  • 생성된 답변을 사용자에게 출력합니다.
    • 예: "CKA(Certified Kubernetes Administrator)는 쿠버네티스 관리자를 위한 인증 시험으로, 실습 기반 평가 방식입니다."

 

참고자료

728x90