26차시. Verifier Node 설계
1. 왜 검증이 따로 필요한가?
출처: 원본 PDF 26차시_VerifierNode설계.pdf 3쪽 · 쪽 그림 3쪽
25차시에서 생성 노드가 자기 출력을 점검하게 만들었습니다. 그런데 왜 검증 모듈이 또 필요할까요?
1-1) 자가 점검의 한계
| 생성 노드가 잡을 수 있는 것 | 잡을 수 없는 것 |
|---|---|
| 인용 번호가 있는가 (정규식) | 인용한 근거가 실제로 관련 있는가 |
| "확인할 수 없습니다"를 말했는가 | 답변 내용이 근거에 실제로 있는가 |
| 답변 길이 | 질문에 제대로 대답했는가 |
| 형식이 맞는가 | 여러 개를 물었는데 하나만 답했는가 |
🧑⚖️ 자기 답을 자기가 채점하면
시험 답안을 본인이 채점한다고 해봅시다.
· 형식(이름 썼는지, 번호 맞는지)은 잘 봅니다
· 그런데 내용이 맞는지는 후하게 봅니다
· "이 정도면 맞지 않나?" 하게 됩니다
LLM도 똑같습니다.
자기가 쓴 답을 평가하라고 하면 관대해집니다.
그래서 역할을 분리한 심판이 필요합니다.
1-2) 검증 없이 내보내면
⚠️ 실제로 자주 발생하는 상황
근거: "환불은 7일 이내에 신청 가능합니다"
답변: "환불은 7일 이내에 신청 가능합니다[1].
수수료는 상품가의 10%입니다[1]." · 인용 번호 있음 → has_citation = True ✅
· "확인할 수 없다" 안 함 → insufficient = False ✅
· 자가 점검 전부 통과
그런데 두 번째 문장은 근거에 없는 내용입니다.
[1]을 붙여놨지만 [1]에 그런 말이 없습니다.
이것을 잡는 것이 Verifier의 일입니다.