"오늘 회의록을 요약해줘" — LLM이 모르는 내용#
LLM은 학습 데이터에 없는 내용은 모릅니다. 회사 내부 문서, 어제 올라온 뉴스, 사용자의 개인 메모. 이런 정보를 LLM이 활용하게 만들려면 어떻게 해야 할까요?
파인튜닝? 비용이 너무 많이 듭니다. 매번 새 문서가 생길 때마다 모델을 재학습할 수는 없습니다.
RAG(Retrieval-Augmented Generation, 검색 증강 생성) 가 현실적인 해법입니다.
RAG란?#
LLM에게 답변을 요청하기 전에, 관련 문서를 검색해서 컨텍스트로 함께 전달하는 방법입니다.
RAG 전체 파이프라인#
RAG는 크게 인덱싱(준비) 과 검색·생성(실행) 두 단계로 나뉩니다.
핵심 개념 1: 청킹 (Chunking)#
문서를 통째로 넣을 수 없으니 적절한 크기로 나눠야 합니다.
청크 크기 선택이 성능에 큰 영향을 미칩니다.
| 청크 크기 | 장점 | 단점 |
|---|---|---|
| 작게 (200~300 토큰) | 정밀한 검색 | 문맥이 잘림 |
| 크게 (800~1000 토큰) | 문맥 유지 | 노이즈 포함 가능성 |
| 적절 (400~600 토큰) | 균형 | — |
핵심 개념 2: 벡터 DB#
임베딩된 청크들을 저장하고 빠르게 유사도 검색하는 데이터베이스입니다.
대표적인 벡터 DB:
| DB | 특징 |
|---|---|
| ChromaDB | 로컬 실행, 개발·테스트에 적합 |
| Pinecone | 클라우드 관리형, 대규모 프로덕션 |
| Weaviate | 오픈소스, 자체 호스팅 가능 |
| pgvector | PostgreSQL 확장, 기존 DB와 통합 |
프롬프트 조합 패턴#
검색된 문서를 어떻게 프롬프트에 넣느냐가 답변 품질을 결정합니다.
[시스템 프롬프트]
당신은 사내 문서를 기반으로 답변하는 어시스턴트입니다.
아래 제공된 문서 내용만을 근거로 답변하세요.
문서에 없는 내용은 "해당 정보가 문서에 없습니다"라고 말하세요.
[검색된 문서 컨텍스트]
--- 문서 1 (2024 3분기 보고서, 5페이지) ---
3분기 총 매출은 12.4억 원으로 전분기 대비 8.3% 증가했습니다...
--- 문서 2 (2024 3분기 보고서, 7페이지) ---
제품별 매출 비중: A 제품 42%, B 제품 35%, 기타 23%...
[사용자 질문]
3분기 매출은 얼마이고, 어떤 제품이 가장 많이 팔렸나요?
RAG의 한계와 보완책#
언제 RAG를 쓸까?#
| 상황 | 권장 방법 |
|---|---|
| 자주 바뀌는 정보 (뉴스, 공지) | RAG |
| 사내 전용 문서·매뉴얼 | RAG |
| 특정 말투·형식을 학습 | 파인튜닝 |
| 일반적인 도메인 지식 | LLM 기본 능력 |
정리#
| 개념 | 내용 |
|---|---|
| RAG | 검색된 문서를 컨텍스트로 전달해 LLM 답변 강화 |
| 청킹 | 문서를 처리 가능한 크기로 분할 |
| 벡터 DB | 임베딩 저장·유사도 검색 전문 데이터베이스 |
| 인덱싱 | 문서 → 청크 → 임베딩 → DB 저장 (사전 준비) |
| 하이브리드 검색 | 키워드 + 벡터 검색 병행으로 정확도 향상 |
다음 편에서는 LLM 평가와 한계 — 모델을 어떻게 비교하고 선택하는지 알아봅니다.

