Text Gen AI/랭체인 (LangChain)

RAG - 검색 증강 생성(RAG)이란 무엇인가?

Vento AI 연구소 2026. 5. 4.
반응형

RAG 개요

인공지능을 실제 서비스에 적용하다 보면 한 가지 한계에 반드시 부딪히게 된다. 바로 “그럴듯하지만 틀린 답변(할루시네이션)”이다. 대규모 언어 모델(LLM)은 매우 강력하지만, 학습된 데이터 범위를 벗어나거나 최신 정보가 필요한 경우에는 정확도가 떨어질 수 있다.

이 문제를 해결하기 위해 등장한 구조가 바로 RAG(Retrieval-Augmented Generation)이다. RAG(Retrieval-Augmented Generation)는 언어 모델을 강화하기 위해 정보 검색을 결합한 기술이다. ​​ RAG는 단순히 답을 생성하는 것이 아니라, 필요한 정보를 먼저 검색한 뒤 그 기반으로 답을 생성하는 방식이다.

RAG는 LLM(대규모 언어 모델)의 한계를 보완하고, 보다 정확하고 유용한 정보를 생성하는 데 도움을 준다. RAG는 언어 모델의 성능을 크게 향상시키며, 최신 정보와 구체적인 데이터를 기반으로 한 응답을 필요로 하는 상황에서 유용하다.

RAG 구조 한눈에 이해하기

RAG 구조는 다음과 같은 흐름으로 동작한다.

입력 → 임베딩 → 벡터 검색 → 문서 추출 → LLM → 응답 생성
 

이 구조의 핵심은 명확하다. 모르면 만들어내지 않고, 찾아보고 답한다. 이 단순한 차이가 정확도를 크게 바꾼다.

 

 

RAG 주요 개념

1) 정보 검색 (Retrieval)

RAG에서는 언어 모델이 질문에 답변을 생성하기 전에 관련된 외부 정보를 검색한다. 검색 엔진 또는 데이터베이스에서 문서를 가져와 모델이 참조할 수 있도록 한다. 

 

이 과정은 모델이 사전 학습된 지식에만 의존하지 않고, 최신 정보와 도메인 데이터를 활용할 수 있게 만드는 핵심 단계이다.

 

2) 정보 증강 (Augmentation)

검색된 문서는 그대로 사용되지 않고, LLM이 이해하기 쉬운 형태로 재구성 및 보강되는 과정을 거친다.

이 단계에서는 다음과 같은 작업이 수행된다.

  • 검색된 문서 정제 및 필터링
  • 중요 문장 추출 (Top-K 선택)
  • 여러 문서의 내용 통합
  • 프롬프트 형태로 재구성 (Context 구성)

단순히 문서를 전달하는 것이 아니라 LLM이 가장 잘 답할 수 있는 형태로 문맥을 설계하는 단계이다.
이 단계의 품질에 따라 최종 답변의 정확도와 일관성이 크게 달라진다.

3) 생성 (Generation)

정보를 검색한 후, 모델은 검색된 자료를 바탕으로 답변을 생성한다. 이 과정에서 LLM은 검색된 자료와 사전 학습된 정보를 결합해 더욱 신뢰도 높은 응답을 제공한다.​

 

이 과정에서 모델은

  • 검색된 정보
  • 사전 학습된 지식

을 결합하여 보다 신뢰도 높은 응답을 만들어낸다.

RAG 동작 과정

  1. 사용자가 질문을 입력한다
  2. 질문을 벡터(임베딩)로 변환한다
  3. 벡터 DB에서 유사한 문서를 검색한다
  4. 관련 문서를 LLM에 함께 전달한다
  5. LLM이 문맥 기반으로 답변을 생성한다
  6. 최종 응답을 사용자에게 반환한다

 

RAG 아키텍처

다음은 RAG 모델의 아키텍처 흐름을 텍스트로 정리한 내용이다. RAG가 검색과 생성의 두 가지 측면을 결합하여 더 정확하고 신뢰성 있는 답변을 생성할 수 있다.

 

RAG 시스템은 다음과 같은 구성 요소로 이루어진다.

  • Loader: 문서 수집 (PDF, DB, API 등)
  • Splitter: 문서 분할 (Chunking)
  • Embedding: 텍스트 → 벡터 변환
  • Vector DB: 벡터 저장 및 검색
  • Retriever: 유사 문서 검색
  • LLM: 최종 답변 생성

이 구조를 이해하면 RAG 구현의 80%는 이미 이해한 것이다.

1) 질문 제출

사용자가 자연어로 질문이나 문의를 입력한다.

2) 검색 수행

RAG 프레임워크는 지정된 데이터 소스(예: 문서, 텍스트 데이터)의 임베딩을 포함하는 벡터 데이터베이스에서 의미론적 검색을 수행한다. 이 데이터 소스는 새로운 콘텐츠로 업데이트될 수 있다.

3) 결과 반환

벡터 데이터베이스에서 검색된 문맥적 결과(또는 "답변")가 반환된다.

4) LLM에 프롬프트 제출

반환된 결과는 대규모 언어 모델(LLM)에게 프롬프트로 제공되고, LLM은 이를 신속하게 처리하여 응답을 생성한다.

5) 응답 처리

LLM에서 생성된 응답이 RAG 프레임워크로 다시 전달된다.

6) 사용자에게 응답 제공

프레임워크는 최종적으로 사용자에게 응답을 공식화하여 제공한다. 이 과정에서 RAG 모델은 키워드 검색 애플리케이션처럼 답변에 관련된 소스 문서에 대한 링크를 제공할 가능성도 있다.

RAG 특징

1) 지식 강화

단순한 언어 생성에 그치지 않고, 최신 정보를 기반으로 내용을 보완하기 때문에 일반 LLM보다 더 신뢰성 있는 응답을 제공한다.

2) 효율성

검색과 생성을 결합해 복잡한 질의에도 더 정확하게 대응할 수 있다.

3) 유연성

다양한 도메인에서 최신 정보를 검색하여 활용할 수 있기 때문에, 사전 학습된 범위를 넘어선 지식에도 대응 가능한다.

4) 정보 최신화

사전 학습된 정보가 아닌, 외부 데이터를 검색하고 활용할 수 있어 최신 정보에 기반한 답변을 생성한다.

5) 정확성 향상

사전 학습된 모델만으로 해결하기 어려운 복잡한 질문에도 정확한 답변을 제공할 수 있다.

RAG에서 중요한 Retrieval 전략

RAG 성능은 “검색 품질”에 의해 결정된다.


다음 세 가지 전략이 핵심이다.

1) Semantic Search (벡터 검색)

의미 기반으로 유사한 문서를 찾는다.

2) Hybrid Search (추천)

BM25(키워드 검색) + 벡터 검색을 결합한다.
실무에서는 가장 안정적인 방식이다.

3) Reranking

초기 검색 결과를 다시 정렬하여 정확도를 높인다.

이 세 가지를 적용하면 검색 품질이 크게 향상된다.

RAG 구성요소

1) 임베딩 (Embedding)

임베딩은 복잡한 데이터를 간단한 형태로 바꾸는 것을 의미한다. 이를 통해 단어, 문장, 문서 등의 텍스트 데이터를 고정 길이의 벡터로 변환하여 기계 학습 모델이 이해하고 처리하기 쉽게 만든다. 고차원 데이터를 저차원 벡터로 변환한다. 변환된 벡터는 원본 데이터의 의미적 관계를 보존한다.

2) 임베딩 모델 (Embedding Model)

임베딩을 위해서는 임베딩 모델이 필요하다. 많이 사용되는 임베딩 모델에는 Word2Vec과 GloVe 그리고 OpenAI 임베딩 모델이 있다.

Word2Vec은 2013년에 구글이 제안한 단어 임베딩 모델로, 단어를 고정된 크기의 벡터로 변환하는 방식이다. 이 벡터는 단어 간의 의미적 유사성을 반영하며, 단어 사이의 연관성을 수치로 표현할 수 있다.

GloVe는 2014년에 스탠퍼드 대학교에서 제안된 임베딩 기법으로, 단어의 전역적 통계 정보를 반영하는 방식이다. Word2Vec과 달리, GloVe는 단어의 동시 발생 행렬(co-occurrence matrix)을 사용해 벡터를 학습한다.

OpenAI의 임베딩 모델은 GPT 시리즈와 같은 대규모 언어 모델을 기반으로 구축되며, 단순한 단어 벡터가 아닌 문장 및 문서 임베딩을 생성할 수 있다. 이는 더 큰 규모의 언어 모델로부터 학습된 벡터를 생성하여, 다양한 자연어 처리 작업에 적용될 수 있다.

모델
Word2Vec
GloVe
OpenAI 임베딩 모델
주요 알고리즘
CBOW, Skip-Gram
동시 발생 빈도 기반
대규모 언어 모델 기반
학습 방식
로컬 문맥에서 단어 예측
전역 통계 정보 활용
문장 및 문서 임베딩 생성
장점
빠른 학습 속도, 대규모 데이터에 적합
전역적 문맥 반영, 해석 가능성이 높음
복잡한 문맥 처리, 높은 예측 성능
단점
전역 문맥 정보 부족
대규모 데이터 처리 시 시간 소요
대규모 모델로 연산 자원 필요
사용 범위
단어 임베딩, NLP 기초 작업
전역 문맥이 중요한 NLP 작업
문장/문서 임베딩, 고급 NLP 작

3) 벡터 데이터베이스 (Vector Database)

벡터 데이터베이스는 특정한 특성이나 품질을 나타내는 다차원 벡터 형태로 정보를 저장하고 효율적으로 검색할 수 있는 저장소이다. 벡터 데이터베이스는 특히 임베딩된 데이터를 저장하고, 유사도 검색을 수행하는 데 사용된다. 텍스트, 이미지, 오디오, 비디오를 포함할 수 있는 이 데이터는 머신 러닝 모델, 워드 임베딩 또는 피처 추출 기술과 같은 다양한 프로세스를 사용하여 벡터로 변환된다.

주요 벡터 데이터베이스에는 다음과 같은 것들이 있다.

  • 크로마(Chroma): LLM에 대한 기술을 플러그인하여 LLM 앱을 쉽게 구축한다. 데이터베이스로 벡터 저장 및 검색을 위한 툴이다.
  • 파인콘(Pinecone): 고성능 벡터 데이터베이스로, 실시간 유사도 검색을 지원한다. 랭체인과 통합이 가능하다.
  • 파이스(FAISS): Facebook이 개발한 벡터 검색 라이브러리로, 대규모 데이터 세트에서 유사도 검색을 수행한다.
  • 퀴드런트(Qdrant): 빠르고 효율적인 벡터 검색을 제공하는 벡터 데이터베이스이다. 벡터 유사성 검색을 수행한다.
  • 밀버스(Milvus): 대규모 벡터 데이터 검색을 위한 오픈 소스 플랫폼으로, 머신러닝 응용 프로그램에 주로 사용된다.
  • 엘라스틱서치(Elasticsearch): 텍스트 검색뿐만 아니라 벡터 검색 기능도 제공하는 검색 엔진이다.

[출처] https://docs.trychroma.com - 크로마(Chroma)를 사용하여 LLM 앱 구축

RAG 구현 방법

RAG 시스템을 구축할 때 반드시 확인해야 할 항목이다. 이 순서를 따르면 안정적으로 구축할 수 있다.

RAG 구현 체크리스트

- 문서 수집 및 정제
- Chunking 전략 설계
- 임베딩 모델 선정
- 벡터 DB 구축
- Retrieval 성능 테스트
- Prompt 튜닝
 

RAG 실패 사례 (중요)

RAG는 구조보다 “디테일”이 성능을 좌우한다.

대표적인 실패 케이스는 다음과 같다.

  • 잘못된 chunking → 문맥이 끊겨 검색 실패
  • 임베딩 품질 문제 → 유사 문서 검색 오류
  • context 길이 초과 → 중요한 정보 누락
  • retrieval 품질 부족 → 엉뚱한 답변 생성

즉, RAG 성능은 LLM이 아니라 데이터와 검색이 결정한다.

RAG 활용 사례

RAG는 다음과 같은 분야에서 강력하다.

  • 기업 내부 지식 검색 시스템
  • 고객 상담 챗봇
  • 문서 기반 Q&A 시스템
  • 의료/법률 정보 서비스
  • 기술 문서 자동 응답 시스템

댓글