1. RAG 란?
- Retrieveal-Augmented Generation (검색 증강 생성)
- LLM이 답변하기 전에 외부 문서나 데이터베이스에서 관련 정보를 검색하고, 그 내용을 참고해 답변하는 방식
- ✅ 질의에 관련된 정보를 모르거나, 프라이빗 정보를 제공해야 하거나, 답변의 출처를 제공해야 할 때 필요함
- ➡️ 답변 시점에 외부 정보를 검색하여 프롬프트에 추가함으로써 보완함
2. 작동 과정
- 색인화 (외부 문서를 검색하기 쉬운 형태로 미리 가공하고 저장하기)
- chunking: 문서를 작은 단위로 분할
- embedding: 각 문서를 임베딩 벡터로 변환
- indexing: 벡터 데이터베이스에 저장
- 검색 (사용자의 질문과 관련성이 높은 문서 조각을 찾기)
- 사용자 질문도 임베딩 벡터로 변환
- 문서 벡터와 비교
- 관련 문서 선택
- 증강: 검색한 문서를 원래 질문과 함께 프롬프트에 추가하는 과정 (외부 문서가 프롬프트의 추가 컨텍스트로 들어감)
- 생성
3. 핵심 요소
Retrieval
- 사용자의 질문과 가장 관련성이 높은 문서 Chunk를 검색하는 컴포넌트
- ✅ Vector DB에서 Top-K Chunk를 반환받음
Chunking
- 긴 문서를 검색하기 좋게 적절한 단위로 나누는 작업
- ✅ 너무 크게 나누면 필요한 정보만 찾기 어렵고, 너무 작게 나누면 앞뒤 문맥이 사라질 수 있음
Embedding
- 문장의 의미를 숫자 벡터로 변환하는 기술
- ✅ 컴퓨터는 단어 자체의 의미를 이해하지 못하므로 숫자로 변환해서 저장함
- ✅ 의미가 비슷한 문장은 비슷한 벡터를 가짐 (비슷한 문맥에서 등장하는 단어는 의미도 비슷하다는 원리를 이용함)
- ✅ RAG에서는 문장이나 문서 조각 전체를 임베딩하는 경우가 많음
Vector DB
- 문서의 임베딩 벡터를 저장하고 검색하는 저장소
- ✅ 의미적 유사성을 기준으로 검색함
- ex) Pinecone, Milvus, Chroma 등
ex) '연차' 검색
더보기
- 의미가 비슷한 문서도 함께 찾음
- ex) 휴무 신청 절차, 휴가 사용 방법, 연차휴가 규정 등
4. 검색 방식
- 키워드 검색: 문서 안에 포함된 정확한 단어나 표현을 기준으로 검색함
- 벡터 검색: 문장과 질문의 의미적 유사성을 기준으로 검색
- 하이브리드 검색: 키워드 검색과 벡터 검색을 함께 사용하는 방식
- Top-K: 검색 결과 중 가장 관련성이 높은 K개의 Chunk를 선택하는 방식
5. 장점
- 최신 정보 활용: 모델이 다 학습하지 않아도 스스로 검색해 답변할 수 있음
- 내부 문서 활용: 비공개 정보 활용 가능
- 환각 감소: 검색된 문서를 근거로 답변하여 사실이 아닌 내용을 생성할 가능성을 줄여줌
- 출처 제공
- 비용 절감
6. 한계
- 많은 Chunk를 넣는다 해서 항상 성능이 좋아지는 것은 아님
- ⚠️ 문서가 너무 많으면 정확도가 낮아짐 (Noise 증가, Token 증가, 응답 속도 저하 등..)
- ➡️ 적절한 검색 결과만 전달하는 것이 중요함 (Context Engineering을 통해 적절히 전달함)
출처
'AI' 카테고리의 다른 글
| [IBM] AI 스택 (0) | 2026.07.17 |
|---|---|
| [IBM] MCP (0) | 2026.07.17 |
| [Wiki] 3. AI Agent (0) | 2026.07.15 |
| [Wiki] 2. LLM (0) | 2026.07.14 |
| [Wiki] 1. AI (0) | 2026.07.14 |