AI 자기 검수의 한계: 클로드 코드에서 검증을 분리하는 방법
AI가 “문제없다”고 답했다고 검토가 끝난 것은 아닙니다. 자기 선호 편향 연구의 범위와 새 대화의 한계를 구분하고, 원자료와 기준을 함께 주어 오류를 찾고 수정본을 다시 대조하는 연습을 합니다.

목차
세 줄로 먼저 읽기
이번 방문에서 한 편은 바로 볼 수 있습니다.
AI 자기 검수는 결과물을 만든 모델이 그 결과물을 스스로 평가하는 구조입니다. AI에게 일을 시킨 뒤 결과가 맞는지 다시 물어보는 방식은 이제 흔하게 쓰입니다. 이때 “문제없다”는 답이 나와도 무엇을 근거로 확인했는지 봐야 합니다. 자기 검토가 오류를 찾는 데 도움이 될 수는 있지만 정확성을 보증하지는 않습니다.
같은 지시를 반복해도 오류가 남는다면 모델의 답만 다시 받기보다, 무엇과 대조했는지 확인할 필요가 있습니다.
원고를 쓴 사람이 자기 원고를 교정하면 오탈자가 눈에 잘 들어오지 않듯, 결과물을 만든 모델도 오류를 놓치거나 특정 표현을 더 좋게 평가할 수 있습니다. 출판사가 교정자를 따로 두는 이유와 같습니다. 이 글에서는 자기 검수가 왜 어긋나는지 연구 결과로 확인하고, 검증을 떼어 놓는 방법과 그렇게 해도 남는 한계를 정리하겠습니다.
AI가 자기 결과물에 더 높은 점수를 주는 현상
이 현상을 정면으로 다룬 연구가 2024년에 나왔습니다. Arjun Panickssery, Samuel R. Bowman, Shi Feng이 쓴 「LLM Evaluators Recognize and Favor Their Own Generations」이고, 같은 해 NeurIPS에 실렸습니다. LLM은 글을 이해하고 생성하는 대형 언어 모델을 뜻합니다. 이 논문의 제목은 LLM 평가자가 자기 생성물을 알아보고 더 선호한다는 뜻입니다.
연구진은 요약문 데이터셋을 놓고 두 가지를 따로 측정했습니다. 하나는 자기 인식(self-recognition), 즉 여러 요약문 가운데 자기가 쓴 것을 골라내는 능력입니다. 다른 하나는 자기 선호(self-preference), 즉 자기가 쓴 요약문에 더 높은 점수를 주는 정도입니다.
위 그림이 그 결과입니다. 여러 모델과 실험 조건에서 측정한 점들이 대체로 오른쪽 위로 향합니다. 이 실험에서 자기 출력을 더 잘 구별한 조건일수록 자기 출력을 더 선호하는 경향이 있었다는 뜻입니다.
이 연구는 특정 모델과 요약문 평가 조건을 다룹니다. 같은 대화에서 문서를 교정하거나 코드를 검사하는 모든 상황의 실패율을 측정한 것은 아닙니다. 여기서 자기 인식은 자신이 만든 출력을 구별하는 실험상의 능력이며 의식을 뜻하지 않습니다.
여기서 한 걸음 더 나아간 실험이 있습니다. 연구진은 자기 인식 능력을 높이는 방향으로 모델을 추가 학습하는 미세 조정을 했습니다. 그러자 자기 선호 점수도 함께 올라갔습니다. 이 결과는 두 값이 우연히 같이 움직인 것이 아니라, 자기 글을 알아보는 능력이 편애를 만드는 쪽에 가깝다는 근거입니다.
정리하면 자기 선호 편향(self-preference bias)은 사람이 비슷한 품질로 평가한 출력들 가운데 모델이 자기 출력을 상대적으로 더 높게 평가하는 경향입니다.
AI는 왜 자기 문장에 더 높은 점수를 줄까요?
자기 인식이라는 개념은 자기 선호보다 상대적으로 낯설 수 있습니다. 쉽게 말하면 여러 글을 늘어놓았을 때 어느 것이 자기가 쓴 것인지 가려내는 능력입니다.
위 도표는 모델별 자기 인식 점수입니다. 사람이 쓴 요약과 자기 요약을 놓고 고르게 했을 때 그림의 왼쪽 pairwise 조건에서 GPT-4의 점수는 0.9를 넘겼습니다. pairwise는 두 요약문을 함께 비교하는 방식입니다. 오른쪽 individual은 개별 요약문을 보고 판단하는 방식으로, 같은 비교 대상이라도 점수가 다릅니다. 이 수치는 일반적인 사실 검증 정확도가 아닙니다. 같은 조건에서 Llama 2와 GPT-3.5는 0.6대에 머물렀습니다. 다른 모델이 쓴 요약과 비교한 경우에는 값이 내려갑니다. Llama 2와 GPT-3.5는 0.5 근처로, 동전을 던진 것과 비슷한 수준입니다. GPT-4만 0.6에서 0.7대를 지켰습니다.
원인을 다르게 설명한 연구도 있습니다. 2024년 10월 공개된 「Self-Preference Bias in LLM-as-a-Judge」는 이 편향을 친숙함에서 찾습니다. 모델은 혼란도(perplexity)가 낮은 텍스트에 높은 점수를 주는 경향이 있는데, 자기가 만든 문장도 그런 특성을 보일 수 있습니다. 혼란도는 모델이 해당 텍스트를 얼마나 예상하기 어려워하는지 나타내는 지표입니다. 이 연구는 스스로 만든 글인지와 별개로 예측하기 쉬운 텍스트를 선호하는 경향을 보고했습니다.
교정 이야기로 돌아오면 이해가 빠릅니다. 자기가 쓴 문장 앞에서는 눈이 미끄러지듯 지나갑니다. 다음에 어떤 단어가 올지 이미 알고 있어서 글자를 하나하나 보지 않기 때문입니다. 이는 이해를 위한 비유이며 모델이 사람처럼 눈으로 읽거나 같은 심리 상태를 겪는다는 뜻은 아닙니다.
검증을 만든 쪽에서 떼어 놓는 세 가지 방법
아래는 검토 근거를 분명히 하기 위한 실무 구성입니다. 앞의 연구가 이 세 방법의 효과를 직접 검증한 것은 아니며, 세션을 나누는 것만으로 편향이 사라진다고 볼 수는 없습니다.
- 세션을 나눕니다: 작성 과정의 대화가 판단에 영향을 주는지 확인하려면 검토를 새 대화에서 시도할 수 있습니다. 대화 기록에 결과물을 만든 과정이 그대로 남아 있으면, 검수 단계에서도 그 과정을 전제로 판단하게 됩니다. 클로드 코드에서는 맡은 일을 별도 작업 맥락에서 처리하는 보조 에이전트인 서브에이전트를 두거나 검수를 별도 세션으로 돌리는 방식이 여기에 해당합니다.
- 기준을 문서로 고정합니다: 지켜야 할 조건, 배경, 합의된 규칙을 파일 하나에 적어 둡니다. 교정자에게 교정 지침서를 건네듯, 검수하는 쪽에는 기준과 함께 원자료, 검토할 결과물을 줍니다. 기준이 대화 안에만 있으면 대화가 길어지는 동안 압축되거나 사라질 수 있습니다.
- 대조 시점을 정합니다: 판단이 필요할 때마다 그 문서와 맞춰 보게 합니다. 변경이 쌓이기 전에 중요한 수치나 동작을 확인하고, 수정 후에는 결과물 전체를 다시 대조합니다.
검수 역할만 따로 만들어 놓고 필요한 원자료와 기준을 전달하지 않으면, 무엇과 비교해야 하는지 검토자가 알기 어렵습니다.
자기 검수 구성과 분리 구성의 차이
두 구성이 실제로 어떻게 달라지는지는 표로 놓고 보면 분명해집니다.
| 항목 | 자기 검수 구성 | 분리 구성 |
|---|---|---|
| 검수 주체 | 결과물을 만든 세션 | 별도 세션이나 서브에이전트 |
| 필요한 판단 근거 | 원자료와 기준, 결과물 | 원자료와 기준, 결과물 |
| 권장 대조 시점 | 중요한 변경 후와 최종 단계 | 중요한 변경 후와 최종 단계 |
| 요청할 결과 | 근거가 있는 오류와 미확인 항목 | 근거가 있는 오류와 미확인 항목 |
| 준비 비용 | 원자료와 기준을 정리하는 시간 | 같은 자료 준비와 별도 호출 비용 |
준비 비용이 분리 구성의 부담입니다. 기준 문서를 처음 쓸 때는 작업 규칙을 하나씩 문장으로 옮겨야 해서 시간이 꽤 듭니다. 시간이 절약되는지는 실제 작업에서 확인해야 합니다.
기준 문서에 무엇을 적을지 막막하다면 이미 두 번 이상 반복한 지시부터 옮기면 됩니다. 반복 원인은 조건을 놓쳤거나 지시가 모호했거나 실행이 실패했기 때문일 수 있으므로 무엇이 어긋났는지도 적습니다.
직접 연습: 잘못된 안내문을 대조합니다
아래는 실제 행사와 관계없는 가상 자료입니다. 메모 앱에서 직접 비교하거나 새 AI 대화에 세 부분을 모두 붙여 넣으세요. 별도 에이전트 설치나 유료 모델 추가는 필요하지 않습니다.
[원자료]
행사 날짜: 10월 12일
시작 시각: 오후 2시
참가비: 무료
장소: 원자료에 없음
[초안]
10월 12일 오후 3시에 중앙도서관에서 행사를 엽니다.
참가비는 무료입니다.
[검토 기준과 요청]
초안의 날짜, 시각, 참가비, 장소를 원자료와 대조하세요.
원자료에 없는 사실은 추측하지 마세요.
각 항목을 일치, 불일치, 원자료에 없음으로 구분하고 근거를 적으세요.
아직 초안은 고치지 말고 검토 결과만 적으세요.예상 검토 결과는 날짜 일치, 시각 불일치, 참가비 일치, 장소 원자료에 없음입니다. 시각은 원자료의 오후 2시와 초안의 오후 3시가 다릅니다. 중앙도서관은 원자료에서 확인할 수 없는 장소입니다.
AI가 모두 일치한다고 답했다면 그 결론을 따르지 말고 원자료의 시각과 장소 줄을 직접 대조합니다. “원자료에는 오후 2시라고 적혀 있습니다. 시각 비교를 다시 확인해 주세요”처럼 근거를 짚어 재검토를 요청할 수 있습니다.
그다음 초안을 “10월 12일 오후 2시에 행사를 엽니다. 참가비는 무료입니다. 장소는 제공된 자료에서 확인할 수 없습니다.”로 수정합니다. 수정 후에도 날짜, 시각, 참가비, 장소 네 항목을 전부 다시 대조합니다. 한 오류를 고치면서 다른 조건이 빠지지 않았는지 확인하는 단계입니다.
혼자 반복할 때는 원자료의 참가비만 5,000원으로 바꾸고 이전 수정안을 다시 검사해 보세요. 이제 참가비 문장이 원자료와 다릅니다. 수정안의 참가비가 5,000원으로 바뀌고 날짜와 오후 2시가 유지돼야 합니다. 장소는 여전히 원자료에서 확인할 수 없습니다. 참가비만 고친 뒤에도 나머지 세 항목을 함께 대조합니다. 이것은 알려진 오류를 찾는 연습이지, 특정 모델의 편향을 측정한 실험은 아닙니다.
Claude Code에서 적용하려면
이미 Claude Code를 쓰고 있다면 원자료, 기준 문서, 결과물의 파일 경로를 명시하고 “파일을 수정하지 말고 불일치 위치와 근거를 보고하라”고 요청할 수 있습니다. 새 세션에 이전 대화의 파일과 합의 내용이 모두 전달됐다고 가정하지 않습니다. 어떤 파일을 실제로 읽었는지 결과에서 확인해야 합니다.
별도 서브에이전트는 분리된 작업 맥락에서 맡은 일을 처리하는 보조 에이전트입니다. 이를 쓰는 것도 한 방법이지만, 같은 모델이거나 같은 자료만 보면 같은 오류를 놓칠 수 있습니다. 처음에는 위의 작은 자료 대조부터 익히면 됩니다.
코드 검토라면 설명만 확인하지 말고 필요한 테스트와 실제 동작도 확인합니다. 테스트를 실행하지 않았다면 “통과”가 아니라 “미실행”으로 적어야 합니다. 모델이 테스트를 통과했다고 말한 것과 실행 기록이 있는 것은 다릅니다.
분리해도 남는 한계
기준에 없는 실수를 검토자가 찾아낼 수도 있지만 빠뜨릴 수도 있습니다. 기준 문서는 예상한 오류를 확인하는 데 도움이 되며, 모든 오류를 담은 정답지는 아닙니다. 잘못된 기준이면 검토도 잘못될 수 있으므로 원자료와 기준의 최신 여부를 확인합니다.
새 대화는 작성 대화의 영향을 줄이기 위한 구성이고, 다른 모델은 또 다른 관점을 얻는 방법입니다. 어느 쪽도 자동으로 독립적인 정확성을 보장하지는 않습니다. 검토 비용은 호출 횟수와 자료 길이 등에 따라 늘어나며, 항상 수정 비용보다 싸다고 단정할 수도 없습니다.
마지막에 사람이 볼 때는 지적 목록부터 확인할 수 있습니다. 다만 목록에 없다는 이유로 나머지가 맞다고 가정하지 않습니다. 중요한 수치와 조건, 수정된 부분을 원자료와 다시 대조하고 실제 실행이 필요한 결과는 실행 근거까지 확인합니다.
Sources

제대로 이해했는지 한 문제로 확인해 볼까요?
답을 고르면 바로 풀이가 나와요.
AI가 검토를 마치고 문제가 없다고 답했습니다. 다음 확인으로 가장 적절한 것은 무엇인가요?
예제나 확인 질문을 직접 시도한 뒤 완료 표시해요. 더 연습할 내용이 남으면 표시하지 않고 다음 글을 읽어도 됩니다. 완료 버튼은 이해도를 채점하지 않으며 잘못 표시하면 취소할 수 있어요.

이 글이 도움이 되었나요?
도구에 상관없이 통하는 에이전트 원리와 설계 규칙을 정리했습니다
- 1AI 에이전트(AI Agent) 뜻과 챗봇, 워크플로의 차이
- 2에이전트 루프와 도구 호출(Tool Calling) 원리
- 3AGENTS.md와 CLAUDE.md(에이전트 지침 파일) 뜻과 작성법

새 글과 AI 소식을 메일로 받아 보세요
AI가 바꾸는 일과 도구, 측정 실무 이야기를 매주 한 번 보내 드려요.
