본문 바로가기
인공지능/생성형 AI

[생성형 AI] RAG (Retrieval-Augmented Generation) 개요

by 클레어몬트 2025. 2. 17.

https://claremont.tistory.com/entry/%EC%83%9D%EC%84%B1%ED%98%95-AI-%EC%9E%90%EC%97%B0%EC%96%B4-%EC%B2%98%EB%A6%ACNLP-Natural-Language-Processing-%EA%B0%9C%EB%85%90

 

[생성형 AI] 자연어 처리(NLP, Natural Language Processing) 개념

ㅁ자연어 처리(NLP, Natural Language Processing): 컴퓨터가 인간의 언어(자연어)를 이해하고 처리할 수 있도록 하는 기술텍스트 데이터에서 의미를 추출하고, 문장을 생성하는 등의 작업을 수행하며,

claremont.tistory.com

 

 

ㅁRAG(Retrieval-Augmented Generation, 검색 증강 생성): 자연어 처리(NLP)에서 정보 검색(Retrieval)생성 모델(Generation)을 결합한 방식

RAG는 검색 기반 시스템과 생성 기반 모델의 장점을 결합하여, 최신 정보를 반영하면서도 정교한 문장 생성을 가능하게 한다

 

OpenAI, Facebook AI Research 등 다양한 연구기관에서 개발 및 개선하고 있으며, 최근에는 LLM(Large Language Model) 기반 AI에서 더욱 주목받고 있다. RAG는 단순히 사전 훈련된 모델이 아닌, 동적으로 정보를 검색하여 보다 신뢰도 높은 응답을 생성하는 방식이다.

 


[RAG 동작 원리] RAG는 크게 두 가지 주요 모듈로 구성된다


1. 정보 검색 모듈(Retriever): 사전 구축된 지식 베이스 or 외부 DB에서 관련 정보를 검색한다

검색된 정보는 생성 모델이 답변을 생성할 때 참고하는 데이터가 된다

(검색 엔진으로 BM25, FAISS, Elasticsearch 등을 활용할 수 있다)


2. 생성 모듈(Generator): LLM(예: GPT, BERT 기반 모델)과 같은 신경망 기반 생성 모델이 검색된 정보를 바탕으로 응답을 생성
단순한 언어 모델보다 신뢰도 높은 정보를 포함한 응답을 생성할 수 있다

 



(RAG 장점)
1) 최신 정보 반영
일반적인 LLM은 훈련 시점 이후의 데이터를 반영하지 못하지만, RAG는 검색을 통해 최신 정보를 동적으로 반영할 수 있다

2) 사실성(Factual Accuracy) 향상
단순한 언어 모델은 환각(hallucination) 문제로 인해 부정확한 정보를 생성할 수 있다

하지만, RAG는 검색된 정보를 활용하여 응답의 신뢰성을 높일 수 있다

3) 모델 크기 및 학습 비용 절감
대규모 언어 모델을 지속적으로 재훈련하는 대신, 검색 기반 접근 방식으로 필요한 정보를 효율적으로 제공할 수 있다

4) 특정 도메인 최적화 가능
의료, 법률, 금융 등 특정 분야에서 RAG를 활용하면, 특정 데이터베이스에서 검색한 정보를 바탕으로 보다 정밀한 답변을 생성할 수 있다

 


(RAG 활용 사례)
1) 챗봇 및 고객 지원 시스템
고객 질문에 대해 검색을 통해 최신 정보를 반영하여 정확한 답변 제공 가능
2) 검색 기반 문서 요약
대량의 문서에서 관련 정보를 검색한 후 요약 생성
3) 코드 생성 및 보완
코드 관련 질문에 대한 검색 후 최적의 코드 스니펫 추천 및 설명 제공
4) 학술 연구 및 논문 검색
논문 검색 후 관련된 연구 내용을 요약하여 제공

 

[RAG 구현 기술]
1) 검색 엔진 활용
- BM25 (문서 검색)
- Elasticsearch (검색 및 인덱싱)
- FAISS (벡터 검색)

2) 생성 모델
- GPT (OpenAI)
- T5 (Google)
- BERT 기반 생성 모델

3) 데이터베이스 및 파이프라인 구성
- PostgreSQL, MySQL, MongoDB 등 관계형 및 NoSQL 데이터베이스 활용
- LangChain, Haystack 등을 사용하여 검색 및 생성 파이프라인 구축

 



RAG는 검색과 생성 모델을 결합하여 자연어 처리 시스템의 성능을 향상시키는 강력한 방법이다. 최신 정보를 반영하고, 보다 신뢰할 수 있는 응답을 생성할 수 있기 때문에 챗봇, 검색 시스템, 코드 추천 등 다양한 분야에서 활용될 수 있다. 앞으로도 더욱 발전하며 다양한 응용 사례에서 중요한 역할을 할 것으로 기대된다!