실무 Multi-Agent 오케스트레이션 14장 · 근거 기반 답변 1 / 7 ← 이전목차다음 → TechLead Cro

14장. 근거 기반 답변

왜 근거 기반 답변이 필요한가 — 찾은 것을 그냥 붙이면 안 되는 이유

한 줄 요약

13장에서는 고객의 질문과 관련된 청크를 검색했습니다. 이번 장에서는 모델이 검색한 내용을 근거로 답변을 작성하도록 합니다. 고객지원에서는 자연스러운 답변만큼이나 정확한 근거가 중요합니다. 검색한 내용에서 확인되는 사실만 안내하고, 출처를 명시하며, 확인할 수 없는 내용은 그 한계를 밝히도록 구현합니다.


1. 13장까지 된 것, 아직 안 된 것

된 것 안 된 것
정책 청크 12개가 chroma_db/에 저장되어 있다 찾은 청크로 답을 쓰는 일
질문을 넣으면 가까운 청크가 나온다 그 답이 어디서 나왔는지 밝히는 일
찾은 청크에 답이 없을 때 어떻게 할지

13장의 마지막에 남긴 문장이 있습니다. "찾아 준 것이 정말 답인지는 아직 아무도 확인하지 않았습니다." 검색은 관련이 없어도 항상 k개를 돌려주기 때문입니다.


2. RAG의 세 단계

12장에서 본 RAG(Retrieval-Augmented Generation, 검색 증강 생성) 의 세 단계 가운데, 이번 장에서는 나머지 두 단계를 만듭니다.

단계 하는 일 누가 하나 어느 장
검색(Retrieval) 질문과 가까운 청크를 찾는다 임베딩 모델 + Chroma 13장
증강(Augmented) 찾은 청크를 프롬프트에 넣는다 우리 코드 이번 장
생성(Generation) 그 프롬프트로 답을 쓴다 LLM 이번 장

"증강"은 어려운 말처럼 들리지만 하는 일은 단순합니다. 질문 앞에 참고 자료를 붙여 주는 것입니다.


3. 그냥 붙이기만 하면 생기는 세 가지 문제

찾은 청크를 질문과 함께 넣으면 그럴듯한 답이 나옵니다. 그런데 그대로 고객에게 내보내기에는 세 가지가 걸립니다.

첫째, 모델이 발췌 밖의 지식을 섞습니다. 모델은 세상의 수많은 쇼핑몰 정책을 읽고 학습했습니다. 발췌에 빈 곳이 있으면 그 일반 지식으로 메웁니다. 3장에서 환불액을 계산하게 했을 때, 모델이 문제에 없는 규칙을 스스로 채워 넣어 금액이 달라진 것을 봤습니다. 같은 일이 여기서도 일어납니다.

둘째, 답이 어디서 나왔는지 알 수 없습니다. "편도 3,000원입니다"라는 답이 정책 문서에서 온 것인지 모델의 짐작인지 답만 봐서는 구별되지 않습니다. 고객도, 답을 검토하는 상담원도 확인할 방법이 없습니다.

셋째, 답이 없는 질문에도 답합니다. 정책 문서에 없는 내용을 물어도 검색은 청크 네 개를 돌려주고, 모델은 그 청크에서 뭔가를 엮어 답을 만들어 낼 수 있습니다. 1장에서 본 환각(hallucination) 입니다.


4. 그래서 세 가지를 요구한다

요구 막는 것 이번 장에서 만드는 장치
발췌 안에서만 답한다 일반 지식이 섞이는 것 시스템 프롬프트의 첫 문장
출처를 밝힌다 확인할 수 없는 답 발췌마다 붙이는 출처 꼬리표 + 표기 규칙
없으면 없다고 한다 환각 정해진 기권 문구

모델의 답을 주어진 근거 자료에 묶어 두는 것을 그라운딩(grounding) 이라고 부릅니다. 이번 장의 제목인 "근거 기반 답변"이 이것입니다.


5. 이걸 모르면 무엇을 판단하지 못하는가

  • 답이 틀렸을 때 검색이 못 찾은 것인지, 모델이 발췌를 잘못 읽은 것인지, 발췌 밖에서 지어낸 것인지 가리지 못합니다.
  • 답에 붙은 출처가 맞는 출처인지 확인하는 방법을 알지 못합니다.
  • "모른다"고 답한 것이 잘한 것인지 못한 것인지 판단하지 못합니다. 문서에 없는 질문에 모른다고 한 것은 잘한 것이고, 문서에 있는데 모른다고 한 것은 검색이 못 찾은 것입니다.

핵심 정리

  • 13장은 찾기까지 했습니다. 이번 장은 찾은 것으로 답하기를 합니다.
  • RAG는 검색 → 증강 → 생성 세 단계입니다. 증강은 우리 코드가, 생성은 LLM이 합니다.
  • 찾은 청크를 그냥 붙이면 일반 지식이 섞이고, 출처를 알 수 없고, 없는 답을 지어냅니다.
  • 그래서 발췌 한정, 출처 표기, 기권 세 가지를 요구합니다.
← 13장실습문제와 해답다음 절 →Retriever — 검색을 부품으로 만든다
오명운 · macro@prag-ai.com