검수 하네스 편 · 지식베이스 시리즈 중 하나입니다.
⚠ 먼저 밝혀둡니다. 이 글은 "AI 검수기를 만들었다"는 완성담이 아닙니다. 인용 확인만으로는 문서 주장의 절반밖에 못 보는 이유, 그 나머지를 원문 역추적으로 어디까지 끌어올렸는지, 그리고 "검수 성능이 올랐다"를 주장이 아니라 측정으로 바꾼 기록입니다. 이 도구가 못 재는 것이 무엇인지도 감추지 않고 적습니다. 모든 수치는 2026-08-11 벤치마크 출력에서 왔습니다.
1. 시작은 "인용만 봐서는 절반도 못 본다"였습니다
지식베이스에 쌓은 글이 진짜인지 검수하려면, 문장마다 근거가 있는지 봐야 합니다. 처음 만든 검수기는 인용 표시가 붙은 문장만 확인했습니다. 인용이 원문과 맞는지 대조하는 도구였습니다.
그런데 문서의 주장 대부분은 인용 표시 없이 쓰입니다. "이렇게 하면 저렇게 된다" 같은 문장에 일일이 인용을 달지는 않으니까요. 인용 표시가 붙은 것만 검수하면, 문서가 하는 말의 절반 이하만 보고 나머지는 검수 밖에 둡니다. 검수를 통과했다는 말이, 실은 문서의 일부만 봤다는 뜻이 되는 것입니다.
2. 그래서 이번에 정한 질문 하나
"검수기를 더 똑똑하게"가 아니었습니다. 질문은 이것이었습니다. 인용 표시가 없는 주장을, 그 주장이 어느 원문에서 나왔는지 어떻게 되짚는가. 인용이 안 붙은 주장을 검수 밖에 두는 한, 검수기가 아무리 정교해도 보는 범위 자체가 절반입니다.
3. 사용한 개념과 도구 — 두 레인과 세 층
이 구조는 DEER라는 참조 아키텍처에서 빌렸습니다. 그 첫 명제는 문서의 품질 판단과 사실 근거 검증은 서로 다른 방법으로 해야 한다는 것입니다. 하나의 "검수"로 뭉뚱그리면 품질 검수가 근거 검증을 했다고 착각하게 됩니다.
밖에서 보면 이 시스템에 들어오는 것은 검수할 문서 하나이고, 나가는 것은 "잘 썼는가"와 "진짜인가" 두 판정입니다. 이 둘을 두 레인으로 갈랐습니다. 품질 레인은 루브릭으로, 근거 레인은 주장과 원문의 대조로 봅니다.
근거 문서의 주장들 → 인용검증 + 역추적 → 지지·후보·미확인 → 원문에 있는가
품질 같은 문서 → 루브릭 + 전문가가이드 → 통과·주의·차단 → 뜻이 왜곡됐나
심의 두 레인 불일치 → 사람이 증거로 판정 → 최종 판정 → 근거가 재현되나★ 이 하네스는 완전한 검수기가 아니라, DEER가 그렇듯 평가 기준과 근거 검증기를 제공하는 참고 구조입니다. 사람의 최종 승인은 어떤 레인도 대체하지 않습니다.
4. 실제로 만든 것 — 기능 세 개와, 그 기능이 막는 실패
① 인용 없는 주장을 원문으로 역추적했다 — 주장 절반이 검수 밖에 있던 것을 막는다
인용 표시가 없는 주장도, 그 문장이 원문 어딘가에 축자로 있는지 원본 전체에서 찾게 했습니다. 문장 전체가 있으면 지지 확인, 일부만 있으면 후보, 아무 데도 없으면 미확인으로 가릅니다. 이 역추적이 인용 표시에만 의존하던 검수의 범위를 문서 전체로 넓혔습니다.
② 품질과 근거를 다른 방법으로 쟀다 — 둘을 뭉뚱그리던 것을 막는다
품질은 루브릭으로, 근거는 원문 대조로 봤습니다. 루브릭은 무엇을 볼지 고정하는 공통 좌표계이고, 전문가 가이드는 이 문서에서 무엇이 특히 중요한지 알려줍니다. 근거 대조는 그와 별개로 주장이 원문에 있는지만 봅니다. 이 분리가 "형식은 완벽한데 내용이 틀린" 문서를 잡습니다. 품질 검수가 근거를 봤다고 착각하지 않게 됩니다.
③ 성능을 벤치마크로 쟀다 — "올랐다"를 주장으로만 두던 것을 막는다
검수 성능이 올랐다고 말만 하면 그것은 주장입니다. 그래서 정답을 아는 결함을 원본 문장에 일부러 심고, 그 결함을 옛 검수기와 새 검수기가 각각 잡는지 채점했습니다. 변조한 문장은 심기 전에 원문에 없는지 확인합니다. 이 벤치마크가 "올랐다"를 재현 가능한 수치로 바꿉니다.
5. 지금까지 관찰된 결과 (실측 · 명령을 같이 적습니다)
정답을 아는 결함 150개를 심어, 옛 검수기와 새 검수기를 같은 문제로 채점했습니다.
측정 규모입니다.
wc -l 로 계수가장 중요한 것은 인용 붙은 결함의 줄입니다. 옛 검수기와 새 검수기가 똑같이 30건을 잡았습니다. 인용 표시가 있는 영역에서는 새 검수기가 이득이 없다는 뜻입니다. 개선은 "더 똑똑해진 것"이 아니라, 옛 검수기가 구조적으로 볼 수 없던 인용 없는 영역을 검사 범위에 넣은 것입니다. 이 줄의 동률이 그것을 증명합니다.
6. 따라 해보고 싶으시면 — 가장 작은 형태부터
인용 확인을 넘어 문서 전체를 검수하는 최소 형태는 이렇습니다.
- 인용 표시가 붙은 주장만 보지 말고, 붙지 않은 주장도 원문에서 찾아봅니다. 문서가 하는 말의 대부분은 인용 없이 쓰입니다.
- 품질과 근거를 다른 방법으로 봅니다. 잘 썼는지는 루브릭으로, 진짜인지는 원문 대조로 봅니다. 하나로 뭉뚱그리면 품질 검수가 근거를 봤다고 착각합니다.
- 성능이 올랐다고 말하기 전에, 정답을 아는 결함을 심어 옛것과 새것을 같은 문제로 채점합니다. 재현 가능한 수치만 성능입니다.
7. 판정은 네 가지로 나누십시오 (두 가지로는 부족합니다)
검수를 "통과/차단"으로만 보면, 인용이 없어 못 본 주장이 "통과"로 넘어갑니다.
PASS 주장이 원문에 축자로 지지된다
PASS_WITH_NOTE 일부만 겹치거나 바꿔 말한 주장이라 참고 판정이다
HOLD 근거 기반이 이 코퍼스가 아니라 이 도구로는 판정 불가다
FAIL 인용이 원문과 어긋나거나, 수치가 날조됐다이 하네스의 근거 레인은 축자 결함에 대해 PASS/FAIL 을 내고, 바꿔 말한 주장은 PASS_WITH_NOTE 로 품질 레인에 넘깁니다.
8. 한계와 대가 (얻은 것 옆에 잃은 것)
범위를 넓힌 대신 분명히 잃은 것이 있습니다.
이 역추적은 글자 기반입니다. 뜻은 같지만 표현을 바꾼 주장은 못 찾습니다. 참조 아키텍처인 DEER는 뜻 기반 역추적을 쓰지만, 이 하네스는 결정적이고 비용이 없는 글자 기반을 택했습니다. 바꿔 말한 결함은 미확인으로 남아 품질 레인으로 넘어갑니다. 이것을 감추지 않고, 벤치마크에도 바꿔 말한 결함은 심지 않았습니다. 심으면 0으로 나올 것이기 때문입니다.
원문과 모순되는 주장을 잡는 것도 이 근거 레인 밖입니다. 모순 판정은 뜻을 비교해야 해서 품질 레인의 몫으로 넘겼습니다. 그래서 근거 레인의 판정은 지지·후보·미확인 세 종이지, 참조 아키텍처의 네 종이 아닙니다.
그리고 인용 확인만으로 충분하다는 설계를 버렸습니다. 처음에는 인용 표시가 붙은 것만 검수했다가, 그것이 문서 주장의 절반도 못 본다는 것을 확인하고 버렸습니다. 버린 설계의 근거는 벤치마크의 가시 범위 수치였습니다.
한 가지 자랑하지 않겠습니다. 품질 레인의 루브릭 검수는 검수 노드가 실제로 실행해야 데이터가 생기는데, 그 실행은 아직 미실행입니다. 지금 잰 것은 근거 레인의 벤치마크 뿐이고, 루브릭 자체의 성능은 재지 않았습니다. 사람 평가와의 합치도도 사람이 라벨한 평가셋이 없어 못 쟀습니다. 그러니 "근거 검사 범위가 넓어졌다"까지만 말할 수 있고, "검수가 사람만큼 정확하다"는 아직 말할 수 없습니다.
9. 결론 — 가져가실 규칙 세 개
첫째, 인용만 확인하는 것은 문서의 절반을 검수하는 것입니다. 주장 대부분은 인용 없이 쓰입니다. 인용 없는 주장을 원문으로 되짚지 않으면, 검수를 통과했다는 말이 문서의 일부만 봤다는 뜻이 됩니다.
둘째, 품질과 근거는 다른 방법으로 재십시오. 잘 썼는지와 진짜인지는 서로 다른 확인입니다. 하나의 검수로 뭉뚱그리면, 품질 검수가 근거를 봤다고 착각하게 됩니다.
셋째, 성능은 주장이 아니라 측정입니다. "검수가 좋아졌다"는 정답을 아는 결함을 심어 옛것과 새것을 같은 문제로 채점하기 전까지는 주장일 뿐입니다. 그리고 그 측정이 못 재는 것 — 바꿔 말한 결함, 사람 합치도 — 을 함께 밝히지 않으면, 측정이 과장이 됩니다.
10. 참고
이 글의 두 레인 구조와 루브릭·근거 검증 분리는 DEER(01_PLAN_INSPECT_REVIEW/DEER.md)의 참조 아키텍처에서 왔으며, 문서 품질과 근거 무결성을 나눠 평가하자는 발상입니다. 정답을 아는 결함을 심어 검수기를 채점하는 방식은 결함 주입(fault injection) 평가의 작은 형태이고, 결정적이라 재현됩니다.