AI/LLM

[RAG] RAG(검색 증강 생성)란?

mar1po5a 2025. 6. 13. 14:15

RAG(검색 증강 생성)는 기존 LLM의 한계를 기존 LLM의 한계를 극복하고자 고안된 기술로, LLM이 학습하지 못한 데이터 뭉치를 손에 쥐어주고, 사용자의 질문이 들어왔을 때 이를 오픈북처럼 활용할 수 있게 만들어주는 기술임.

 

더보기

ex)

A회사의 직원이 LLM에게 A회사의 프로젝트 일정에 대해 질문하는 상황.

 

기존 LLM :

사전 학습된 데이터만 가지고 있어서 답변하지 못함(검색 엔진을 활용할 수 있어도 'A회사의 프로젝트 일정'은 공공연한 정보가 아니기에 결과는 동일함.)

 

RAG 체인으로 호출된 LLM :

'A회사의 프로젝트 일정'이 포함된 문서를 전달 받았기에, 사용자의 질문이 들어오면 해당 정보가 포함된 문서를 읽고 그에 맞는 답변을 출력함.

 

Embedding이란, 우리가 사용하는 자연어를 컴퓨터가 이해할 수 있는 형태인 벡터 단위로 변환해주는 작업을 의미함.

- 수학, 물리학에서의 벡터와 LLM 기술에서의 벡터는 개념적인 부분에서 약간의 차이가 있음. 2차원 공간에서의 좌표값과 3차원 공간에서의 좌표값이라는 차이가 존재하기 때문임.

 

RAG 구현 기본 흐름:

LLM 객체 생성 → 데이터 로드 및 처리(의미 단위로 분할) → 데이터 임베딩(벡터로 변환) → 벡터 DB에 저장 → LLM이 검색 → LLM의 답변 생성

 

ChromaDB, Pinecone, FAISS,  Weaviate 정도가 대표적인 VectorDB의 예시이고,

그 중 ChromaDB와 FAISS는 파이썬 라이브러리 형태로 제공됨. → 프로그램이 상당히 가볍고 편리함

 

기존 RDB와의 차이

 

아래는 RAG 프로젝트를 기획하며 비교했던 각 VectorDB의 특징(Weaviate는 고려 대상에서 제외되었음.)

데이터 영속성 : 데이터가 사라지지 않고 계속해서 저장되어 남아있는 특성