자료를 찾아 붙이기
이 장에서 배우는 것 사내 자료를 모델에게 어떻게 주는지, 왜 "그냥 전부 넣기"가 안 되는지, 그리고 답에 출처가 붙는다는 것이 왜 결정적인지.
모델은 배운 것만 압니다
언어 모델은 학습할 때 본 것을 바탕으로 다음 말을 맞힙니다. 그러니 이런 질문에는 구조적으로 답할 수 없습니다.
이게 환각이 생기는 가장 흔한 자리입니다. 모르는 것을 물었기 때문입니다.
해법은 한 줄입니다
묻기 전에 답의 근거가 될 자료를 찾아서 질문과 함께 넣어줍니다.
업계에서는 이걸 RAG(Retrieval-Augmented Generation, 검색 증강 생성)라고 부릅니다. 이름은 어렵지만 하는 일은 단순합니다.
graph TD
A["질문: 4분기 반품률은?"] --> B["1. 사내 자료에서 관련 문서 검색"]
B --> C["2. 찾은 조각 3~5개 + 질문을 함께 모델에 전달"]
C --> D["3. 모델이 그 조각만 근거로 답변"]
D --> E["답변 + 출처(어느 문서 몇 페이지)"]모델의 가중치를 다시 학습시키는 게 아닙니다. 매번 물을 때마다 자료를 찾아서 같이 넣어주는 것뿐입니다. 그래서 자료가 바뀌면 다음 질문부터 바로 반영됩니다.
이것도 학습이긴 합니다 — 다만 모델이 아니라 자료 쪽에 쌓입니다. 그 구분은 어떤 학습을 고를까에서 넷으로 나눠 봅니다.
"그냥 전부 넣으면 안 되나요"
가장 자주 나오는 질문이고, 답은 문서가 적으면 그렇게 해도 됩니다입니다. 사내 규정집 한 권이면 통째로 넣는 게 검색을 만드는 것보다 낫습니다.
문제는 늘어날 때입니다.
| 전부 넣기 | 검색해서 넣기 |
|---|---|
| 컨텍스트 창을 넘으면 아예 안 들어감 | 필요한 조각만 |
| 매 질문마다 전체 분량만큼 비용 | 조각 몇 개 분량만 |
| 관련 없는 내용이 섞여 정확도가 떨어짐 | 관련된 것만 보게 됨 |
| 문서가 늘면 못 씀 | 문서가 늘어도 그대로 |
세 번째 줄이 의외입니다. 넣는 자료가 많을수록 답이 좋아지는 게 아닙니다. 관련 없는 문서 50개 속에 정답이 묻히면 모델도 사람과 똑같이 놓칩니다.
어떻게 찾나
두 가지 방식이 있고, 실무에서는 대개 둘 다 씁니다.
| 방식 | 원리 | 잘하는 것 | 못하는 것 |
|---|---|---|---|
| 키워드 검색 | 단어가 일치하는 문서 | 제품코드, 사번, 고유명사 | "환불 규정"으로 "반품 정책"을 못 찾음 |
| 의미 검색 | 뜻이 가까운 문서 | 표현이 달라도 찾아냄 | 정확한 코드·숫자에 약함 |
의미 검색은 문장을 숫자 목록(임베딩)으로 바꿔서 가까운 것끼리 묶는 방식입니다. "환불 규정"과 "반품 정책"은 글자가 하나도 안 겹치지만 숫자로 바꾸면 가까이 놓입니다.
둘을 섞는 게 표준입니다. 어느 한쪽만 쓰면 반드시 놓치는 질문이 생깁니다.
쪼개기가 성패를 가릅니다
문서는 통째로 넣지 않고 조각(청크)으로 쪼개서 저장합니다. 그런데 조각만 떼어놓으면 문맥이 사라집니다.
Anthropic이 공개한 실험이 이 문제의 크기를 보여줍니다. 조각 앞에 "이건 어느 문서 어느 맥락의 내용인지"를 한 줄 붙여서 저장했더니 검색 실패율이 5.7% → 3.7%로 35% 줄었습니다. 키워드 검색을 함께 쓰면 49%, 찾아온 조각을 한 번 더 정렬하는 단계까지 붙이면 67%까지 줄었습니다.
정리하면 순서는 이렇습니다.
"검색을 붙였는데 잘 못 찾는다"는 대개 1번을 안 한 것입니다.
출처가 붙는다는 것
이게 실무에서 가장 중요한 부분입니다.
아래쪽은 검증할 수 있습니다. 담당자가 7쪽을 열어보고 5분이면 맞는지 확인합니다. 위쪽은 확인하려면 처음부터 다시 찾아야 합니다.
출처 없는 답은 조직에서 쓸 수 없습니다. 맞아도 근거를 못 대고, 틀려도 어디서 틀렸는지 모릅니다. 검색을 붙이는 진짜 이유는 정확도보다 검증 가능성입니다.
제품에서는
| 하는 일 | 어디서 |
|---|---|
| 파일을 올려두면 답변의 재료가 됨 | Connect 드라이브 |
| PDF·문서를 검색 가능한 텍스트로 변환 | 문서를 자료로 바꾸기 |
| 도구가 많을 때 관련된 것만 골라 씀 | 도구가 많아질 때 |
마지막 줄이 재미있습니다. 도구를 고르는 것도 같은 원리입니다. 도구 설명을 숫자로 바꿔두고 질문과 가까운 것만 꺼내 씁니다.
자주 하는 오해
"검색을 붙이면 환각이 없어지나요?"
줄지만 없어지지는 않습니다. 세 가지가 남습니다. 검색이 엉뚱한 문서를 찾아온 경우, 찾아온 문서 자체가 낡거나 틀린 경우, 그리고 자료에 답이 없는데 모델이 근처 내용으로 메우는 경우입니다.
마지막 건 지시로 상당 부분 막힙니다. "주어진 자료에 근거가 없으면 없다고 답하라"를 명시하세요.
"우리 문서를 다 넣으면 되나요?"
넣기 전에 누가 봐도 되는 문서인지 먼저 나눠야 합니다. 검색은 권한을 모릅니다. 인사 파일을 같은 곳에 넣으면 누구 질문에나 인사 파일이 딸려 나옵니다. 도구는 권한이다와 같은 이야기입니다.
확인
1. "우리 회사 작년 반품률"을 물었을 때 모델이 숫자를 지어내는 이유는?
답
학습 데이터에 없는 것을 물었기 때문입니다. 모델은 배운 것을 바탕으로 다음 말을 맞히므로, 모르는 영역에서는 "모릅니다"보다 그럴듯한 숫자가 더 자연스럽게 나옵니다. 자료를 찾아서 함께 넣어주는 것이 해법입니다.
2. 문서를 조각으로 쪼갤 때 문맥을 한 줄 붙이면 무엇이 달라집니까?
답
검색 실패율이 크게 줄어듭니다. 공개된 실험에서 5.7% → 3.7%로 35% 감소했고, 키워드 검색과 재정렬을 함께 쓰면 67%까지 줄었습니다. 조각만 떼어놓으면 "이 한도"가 무슨 한도인지 사라지기 때문입니다.
3. 답변에 출처를 붙이는 것이 왜 정확도보다 중요합니까?
답
검증할 수 있게 되기 때문입니다. 출처가 있으면 담당자가 5분 만에 확인합니다. 없으면 맞아도 근거를 못 대고 틀려도 어디서 틀렸는지 모릅니다. 조직에서 쓰려면 검증 가능성이 먼저입니다.
읽었으면 이제 30분만 직접 해봅니다. 자료를 붙였을 때와 안 붙였을 때가 어떻게 다른지 눈으로 확인하는 장입니다 → 자료를 붙여보기