검색 증강 생성 (RAG)
- RAG가 무엇이고 retrieve-augment-generate 루프란 무엇인가
- 인덱싱, 검색, 증강, 그리고 인용을 포함한 생성을 하는 법
- '내 문서에 대해 답하기' 필요에 RAG가 파인튜닝을 이기는 이유
- RAG 품질을 죽이는 다섯 가지 실패 양상
- 가장 큰 두 격차를 메우는 복붙 근거 대기 프롬프트
RAG는 모델이 훈련받은 적 없는 당신의 데이터 — 문서, 지식 베이스, 코드베이스 — 에 대한 질문에 답하게 만듭니다. 아이디어는 단순합니다: 관련 조각을 **검색(retrieve)**하고, 그것으로 프롬프트를 **증강(augment)**한 뒤, 그 조각에 근거한 답을 **생성(generate)**합니다.
루프
Guided walkthrough1 of 4
- 청크로 나누고, 임베딩하고(/docs/foundations/embeddings 참고), 벡터(및/또는 키워드) 인덱스에 저장합니다.
- 질문에 가장 관련 있는 상위 청크를 끌어옵니다.
- 그 청크를 "아래 컨텍스트에서만 답해; 거기에 없으면 없다고 말해" 같은 지시와 함께 프롬프트에 넣습니다.
- 답을 만듭니다 — 그리고 이상적으로는 각 주장이 어느 청크에서 왔는지 인용합니다.
인덱싱의 임베딩 단계는 임베딩 & 벡터 검색을 참고하세요.
왜 파인튜닝 대신 RAG인가?
- 신선함: 모델이 아니라 데이터를 업데이트
- 검증 가능: 인용을 제공
- 저렴함: 재훈련보다 훨씬 저렴
대부분의 "내 문서에 대해 답하기" 필요에는 RAG가 올바른 첫 도구입니다 — 파인튜닝 vs 프롬프팅 vs RAG 참고.
실패 양상(RAG 품질이 죽는 곳)
- 나쁜 검색 = 나쁜 답. 올바른 청크가 검색되지 않으면 모델은 그것을 쓸 수 없습니다. 대부분의 'RAG가 틀렸다' 문제는 검색 문제입니다.
- 너무 굵거나 너무 잘게 청킹하면 관련성이 망가집니다(임베딩 참고).
- 근거 대기 지시 없음: 모델이 검색된 사실을 자신의 추측과 섞습니다. 컨텍스트에서만 답하고 빈틈을 인정하라고 하세요.
- 너무 많이 채우기: 무관한 청크가 신호를 희석하고 토큰을 씁니다. 적고 질 높은 청크를 검색하세요.
- 인용 없음: 검증할 수 없으니 신뢰할 수 없습니다.
청킹 실패는 임베딩으로 이어지고, 과도한 채우기는 토큰 비용을 발생시킵니다.
- 검색을 따로 평가하세요: '올바른 청크를 검색했는가?'를 '모델이 잘 답했는가?'와 분리해 측정하세요. 문제를 빠르게 국소화합니다. Evals(/docs/foundations/evals) 참고.
복붙: 근거 대기 프롬프트
가장 레버리지 높은 단일 수정은 근거 대기 지시입니다. 검색된 청크를 이런 템플릿에 넣으세요 — 모델이 컨텍스트에서만 답하고, 각 주장을 인용하고, 추측 대신 빈틈을 인정하도록 강제합니다:
근거 대기 프롬프트
You are answering strictly from the context below. Rules: - Use ONLY the context to answer. Do not use outside knowledge. - Cite the source after each claim, like [chunk 2]. - If the answer is not in the context, reply exactly: "I don't have that in the provided sources." - Quote numbers and names verbatim — never paraphrase a figure. Context: [chunk 1] ... [chunk 2] ... [chunk 3] ... Question: <the user's question>
이것을 소수의 질 높은 청크(검색한 전부가 아니라)와 짝지으면 두 가지 가장 큰 격차를 한 번에 메웁니다: 환각적 섞임과 검증 불가능한 답. 그다음 eval로 검색과 생성을 따로 평가해 어느 절반을 튜닝할지 알아내세요.
용어 마스터하기
1 / 6
스스로 점검하기
0/5- RAG = 관련 청크 검색, 프롬프트 증강, 근거 있고 인용된 답 생성.
- 인덱스(청크 + 임베딩 + 저장), 상위 청크 검색, 근거 대기 지시로 증강, 인용과 함께 생성.
- 문서 Q&A에는 파인튜닝보다 RAG를 선호하세요: 신선하고, 인용되며, 더 저렴합니다.
- 대부분의 실패는 검색 실패입니다 — 전부가 아니라 적고 질 높은 청크를 검색하세요.
- 항상 근거 대기 지시를 추가하고 인용하세요; 검색과 생성을 따로 평가하세요.