ML & DL

LLM | RAG(Retrieval-Augmented Generation)란?

토오오끼 2025. 11. 27. 15:47
728x90
반응형

 

Large Language Model(LLM)은 뛰어난 생성 능력을 가졌지만 근거가 없는 내용을 “그럴듯하게” 만들어내는 Hallucination(환각) 문제가 존재한다.

이 문제를 해결하고 기업 문서, PDF, 내부 지식 기반의 정확한 답변을 만들기 위한 기술이 있는데, 바로 RAG(Retrieval-Augmented Generation)이다.

 

1️⃣ RAG란?

말 그대로 Retrieval(검색) + Generation(생성) 의 조합으로 LLM이 “모르는 내용”을 추측해 말하는 대신 외부 지식베이스(문서, Database, PDF, 소스코드 등)에서 관련 정보를 검색하여 그 실제 내용을 LLM 입력(prompt)에 추가해 답변을 생성하는 구조이다.

LLM이 답변을 생성할 때,

  • 관련 정보를 외부 지식 베이스에서 검색해
  • 그 정보(content)를 LLM 입력에 포함 시켜
  • 더 정확하고 근거 기반의 답변을 생성하도록 만드는 구조이다.

 

 

2️⃣ RAG 동작

  1. 문서를 쪼개고(Chunk)
  2. 임베딩으로 바꾸고(Embedding)
  3. 벡터 DB에 저장하고(Vector Store)
  4. 질문이 들어오면 가장 비슷한 문서를 찾아서(Retrieval)
  5. LLM에 “문서 + 질문” 조합을 입력한다(Generation)

이 5단계를 순차적으로 수행하면 LLM은 마치 그 문서를 스스로 알고 있는 것처럼 답변한다.

아래 그림은 Chunk → Embedding → Vector DB 전체 흐름을 보여준다.

굳이 chunk로 나누는 이유는 LLM은 한 번에 너무 긴 텍스트를 넣으면 처리할 수 없기 때문이다. 또한 문서를 작은 덩어리로 나눠야 비슷한 문서를 정확히 찾을 수 있다.

예를 들어 231페이지짜리 PDF를 통째로 넣어 검색하는 것은 불가능하다. 그래서 RAG에서는 다음 작업을 반드시 거친다.

  • 문단/문장 단위로 나누기
  • 중복되거나 의미 없는 구간 제거
  • 일정 길이(chunk_size) 기준으로 분리
  • overlap을 줘서 의미 단절 방지

이 과정을 Text Splitter라고 한다.

 

3️⃣ Embedding과 Vector Store

LLM이 문서를 “이해할 수 있는 형태”로 바꾸려면 문자가 아닌 숫자 벡터 형태로 변환해야 한다.

이때 등장하는 것이 임베딩(Embedding)이다.

  • 문서 → 임베딩 벡터로 변환
  • 질문 → 임베딩 벡터로 변환
  • 두 벡터의 거리(유사도)를 계산해 “가장 비슷한 문서” 찾기

이러한 유사도 검색을 빠르게 하기 위해 FAISS, Chroma, Pinecone 같은 Vector Store(벡터 DB) 를 사용한다.

 

 

4️⃣ Retrieval 단계: 질문과 비슷한 문서 찾기

사용자가 질문을 입력하면 시스템은 다음을 수행한다.

  1. 질문을 임베딩으로 변환
  2. Vector Store에서 유사도 기반 검색
  3. k개의 관련 문서를 뽑아옴 (예: k=3)

이렇게 검색된 결과가 곧 LLM이 답변할 근거 문서가 된다.

 

5️⃣ Generation 단계: 문서를 근거로 답변하기

이제 LLM에게 두 가지 정보를 준다.

  • 질문(question)
  • 검색된 문서(context)

LLM은 제공된 문서 내에서만 정보를 활용해 답변하게 된다. 즉, “근거가 있는 답변” 을 할 수 있게 되는 것이다.

Retrieval → Augmentation → Generation 흐름으로 이어진다.

 

 

6️⃣ RAG의 장점

▪️ 최신 정보 반영 가능

모델을 재학습시키지 않아도 문서만 바꿔 저장하면 최신 지식을 반영할 수 있다.

▪️ 기업/개인 전용 지식을 활용

사규, 매뉴얼, 기술 문서, 내부 DB 등 GPT가 절대 알 수 없는 정보도 RAG로 처리 가능하다.

▪️ 모델 “환각(hallucination)” 감소

근거 문서를 기반으로 답하기 때문에 허구의 정보를 지어낼 확률이 크게 줄어든다.

▪️ 모델 재학습 없이 확장 가능

Embeddings + Vector Store만 갱신하면 몇 GB의 데이터도 LLM이 “알고 있는 듯” 답할 수 있다.

 

 

7️⃣ RAG 사용 예시

다음과 같은 상황이면 거의 100% RAG가 필요하다.

  • 회사 내부 문서를 기반으로 정보 제공
  • PDF 분석/검색 시스템 만들기
  • 지식 기반 챗봇 운영
  • 정책·매뉴얼 Q&A 자동화
  • 대량 문서에서 필요한 부분만 추출
  • 고객 지원 FAQ 자동화

한마디로, “LLM이 모르는 정보로 답을 해야 할 때” RAG는 사실상 표준이 된다.

 

RAG는 강력하지만 만능은 아니다.

  • 문서에 존재하지 않는 분석/창의적 작업
  • 정교한 텍스트 생성(문학적 글쓰기)
  • 지식의 일반화(generalization)

이런 것들은 여전히 LLM 자체의 능력에 의존한다.

 

RAG는 단순한 검색 기술이 아니다.

LLM이 내 데이터를 기반으로 정확하게 답변할 수 있도록 만드는 현대 AI 시스템의 핵심 구성요소이다. LLM의 한계를 보완하고 최신 정보에 접근 가능하게 하고, 기업 데이터 기반 QA를 가능하게 하는 LLM 시대에 가장 중요한 기술 중 하나가 바로 RAG다.

 

728x90
반응형