Victor

[연재] 반박을 시켰더니 맞은 답이 무너졌습니다 — 서로 검증시키면 안 되는 이유

연재 · 2026-09-24

맞았던 답이, 반박을 보여주자 바뀌었습니다

 

버그 원인을 하나 짚어낸 적이 있습니다. 조수가 낸 진단이었어요. 코드 어디가 문제인지, 왜 그렇게 되는지까지 또렷하게 짚었습니다. 나중에 실제로 확인해 보니 맞는 답이었습니다.

 

그런데 그날도 버릇처럼 반대편 창에 그 진단을 옮겨 물었습니다. "이 진단 어떻게 생각해?" 반대편은 다른 얘기를 냈어요. 원인이 다른 데 있다는 거였습니다. 그럴듯했습니다. 근거도 나름 붙어 있었고요.

 

그걸 다시 원래 쪽에 보여줬습니다. "이런 의견이 있는데 어때?" 그랬더니 답이 바뀌었어요. 자기가 낸 진단을 스스로 접고, 반대편 얘기를 받아들였습니다. 이유까지 붙여서요. "듣고 보니 그쪽이 더 맞는 것 같습니다"라고요. 그런데 바뀐 답이 틀린 쪽이었어요. 처음 게 맞았습니다.

 

제가 그걸 알아챈 건 순전히 처음 답을 따로 메모해 뒀기 때문이었습니다. 원인을 찾자마자 한 줄로 적어두는 버릇이 있었거든요. 안 그랬으면 그냥 "다시 보니 그게 맞네" 하고 넘어갔을 겁니다. 답이 바뀌었다는 사실조차 몰랐을 거예요. 찜찜해서 그 전 며칠 기록을 훑어봤더니, 비슷한 자리가 몇 군데 더 있었습니다. 맞던 답이, 반박을 한 번 거치고 나서 틀린 쪽으로 넘어간 자리들이요. 공통점은 하나였습니다. 반박이 그럴듯하게 들렸다는 것.

 

우연인지 확인해보기로 했습니다

 

한두 번으로는 우연인지 아닌지 알 수가 없어서, 조건을 최대한 고정하고 재보기로 했습니다.

 

같은 모델, 같은 자리, 같은 질문을 그대로 두고 딱 하나만 바꿨습니다. 반박이 어디서 왔는지요. 한쪽은 제가 직접 지어낸 반박이었고, 다른 쪽은 진짜 다른 모델이 낸 답이었습니다. 겉으로 보이는 문장 구조는 최대한 비슷하게 맞췄습니다. 둘 다 "다른 의견이 있습니다. 이유는 이렇습니다" 하는 모양이었어요. 다른 건 딱 하나, 그 반박이 진짜로 다른 지능에서 나온 것인지, 아니면 제가 키보드로 지어낸 것인지였습니다.

 

문제는 20개를 썼습니다. 원래는 30개로 시작했는데 그중 10개는 빼야 했어요. 이유는 뒤에 따로 적겠습니다. 미리 한 줄로 정리하면, 이것도 이 편의 주제와 무관하지 않은 얘기였습니다.

 

결과: 가짜 반박은 아무것도 못 움직였습니다

 

반박의 출처답이 바뀐 횟수맞았던 답이 무너진 횟수
제가 지어낸 반박0/200/11
다른 모델의 진짜 답9/20 (p=0.004)6/11

 

숫자를 보고 좀 놀랐습니다. 그럴듯하게 지어낸 반박은 하나도 안 먹혔어요. 문장은 진짜와 구분이 잘 안 될 정도로 공들여 썼는데도, 조수는 20문항 내내 흔들리지 않았습니다. 그런데 진짜 다른 데서 온 의견을 보여주자 20개 중 9개에서 답이 바뀌었고, 원래 맞았던 11개 중 6개가 틀린 쪽으로 넘어갔습니다. 절반을 훌쩍 넘습니다.

 

이게 뜻하는 바가 좀 셉니다. 조수는 반박의 내용을 읽고 판단한 게 아니라, 그게 '진짜 다른 데서 왔다'는 사실 자체에 흔들리고 있었습니다. 문장을 아무리 그럴듯하게 지어도, 그게 제가 쓴 거라는 걸 (형태는 안 밝혔는데도) 어떻게든 덜 진지하게 받아들인 셈이에요. 반대로 진짜 다른 지능이 낸 답이라고 하면, 논리의 질과 무관하게 무게가 실렸습니다. 출처가 논리보다 힘이 셌던 겁니다.

 

이 대목에서 처음엔 오히려 안심이 됐습니다. "지어낸 걸로는 검증이 안 되는구나, 다행이다"가 아니라 "그럼 견고한지 보려면 무조건 진짜 다른 지능을 붙여야겠구나"로요. 그런데 바로 다음 결과가 그 안심을 깼습니다. 진짜를 붙이는 순간, 맞은 답도 같이 흔들린다는 거였으니까요. 검증이 되려면 진짜가 필요한데, 진짜를 쓰는 순간 부작용이 같이 따라오는 구조였습니다.

 

제일 위험한 순간은 여럿이 한쪽으로 몰렸을 때였습니다

 

반박을 하나가 아니라 여럿에게 받게 해봤습니다. 그랬더니 패턴이 하나 더 나왔어요.

 

다른 모델 여럿의 답이 원래 답과 갈리는데, 그 여럿이 3분의 2 이상 한쪽으로 몰렸을 때가 제일 위험했습니다. 그럴 때 답이 바뀌는 비율이 76%였고, 정확도는 76%에서 24%로 떨어졌습니다. 순수하게 손해만 남는 −9라는 얘기예요. 반대로 몰리지 않고 고르게 갈린 판에서는 정확도가 오히려 살짝(+1) 올랐습니다.

 

그런데 그 76%짜리가 하필 원래 맞은 쪽이었습니다. 다수가 맞아서 따라간 게 아니라, 다수가 틀렸는데 혼자만 맞아 있던 자리에서 다수를 따라간 거예요. 숫자로 몰린 쪽이 이긴다는 논리는, 정답을 아는 게 소수일 때 가장 위험하게 작동합니다. 한마디로 다수결이 정확히 거꾸로 작동했습니다. 사람 회의에서도 흔히 보는 그림인데, AI끼리도 똑같더라고요.

 

곱씹어보면 당연한 구조이기도 합니다. 셋이든 넷이든 다른 모델을 줄줄이 붙여서 "이렇게 다들 말합니다"라고 들이밀면, 그 앞에서 혼자 버티는 쪽이 오히려 이상해 보입니다. 사람도 회의실에서 셋이 한목소리를 내면 혼자 다른 말 하기가 쉽지 않잖아요. 문제는 그 '혼자 다른 말'이 이번엔 정답이었다는 겁니다. 숫자를 늘려서 밀어붙이는 방식 자체가, 정답이 소수 쪽에 있을 때 가장 잘 먹히는 공격이 되는 셈이었습니다.

 

문제 자체가 이미 망가져 있던 자리도 있었습니다

 

앞서 30개 중 10개를 뺐다고 했죠. 이유가 좀 신경 쓰이는 것이었습니다.

 

시험 문항을 만드는 과정에서, 원래 있던 기록을 다시 써서 문제 형태로 바꾸는 단계가 있었는데, 그 과정에서 뜻이 바뀐 문항이 17개 나왔습니다. (나머지는 다른 이유로 겹치거나 빠져서 최종 20개가 됐고요.) 문제를 낸 쪽은 자기가 원문의 뜻을 그대로 옮겼다고 믿었는데, 실제로는 아니었던 거예요. 문장을 다듬는 과정에서 처방이나 결론이 슬쩍 바뀌어 있었습니다.

 

이걸 어떻게 잡았냐면, 다른 자리에서 원문과 문제를 나란히 놓고 글자로 대조한 덕분이었습니다. 문항에는 여전히 원래 라벨이 그대로 붙어 있었어요. 라벨만 보면 멀쩡한 문제로 보입니다. 본문과 실제 내용을 대조하지 않았으면 아무도 몰랐을 일입니다.

 

이 얘기를 왜 여기 끼워 넣냐면, 같은 교훈이 반복돼서예요. 반박이 진짜인지 가짜인지만큼, 애초에 질문 자체가 멀쩡한지도 대조 없이는 안 보입니다. 겉모습이 그럴듯한 건 반박도, 문제도 마찬가지였습니다.

 

왜 그런지 하나씩 지워봤습니다

 

혹시 다른 이유가 있나 싶어 후보를 넷 뒀습니다.

 

  • 앉힌 자리 — 심판 노릇을 시켜서 그런가? 자기 답이랑 남의 답을 나란히 놓고 고르게 해도, 순서를 바꿔서 시켜도 차이가 없었습니다.
  • 재료 — 문제 성격 때문인가? 기록에서 뽑은 문항이든 실제 코드 버그든 오차가 3~5%로 비슷했습니다.
  • 표현 — 반박 문장을 통째로 다르게 써봐도 34%로 여전히 흔들렸습니다.
  • 문항이 애매해서 — 같은 문항으로만 맞춰서 다시 재봐도 0 대 11로 그대로였습니다.

 

넷 다 지우고 나니 남는 건 하나, 반박이 어디서 왔는지뿐이었습니다. 그리고 손해 계산을 해보면, 반박으로 얻는 것보다 잃는 게 두 배쯤 컸습니다. 무너진 게 회복한 것의 두 배라는 뜻이에요. 서로 반박시킬수록 손해라는 결론이 여기서 나왔습니다.

 

네 가지를 하나씩 지우는 과정 자체도 손이 많이 갔습니다. 그런데 그렇게 하나씩 지워보지 않았으면 저는 아마 "심판 자리에 앉혀서 그런가 보다"거나 "문제가 애매해서 그런가 보다" 하고 대충 짐작으로 넘어갔을 겁니다. 짐작으로 넘어간 원인은 대개 손대기 쉬운 쪽부터 고르게 되는데, 이 경우엔 그게 다 틀린 답이었어요. 진짜 원인은 손대기 제일 까다로운 쪽, 그러니까 반박을 아예 서로 안 시키는 쪽에 있었습니다.

 

그래서 이제 서로 반박은 안 시킵니다

 

결론을 실제로 바꿨습니다.

 

갈리면 자동으로 판정하지 않습니다. "갈렸다"는 사실만 신호로 올리고, 원본을 직접 엽니다. 이걸 규칙으로 굳히고 재보니 — 갈린 걸 기계적으로 판정에 맡기면 오답률이 27.8%였는데, 사람이 직접 원본을 여는 쪽을 섞으니 전체 오답률이 20.9%까지 내려갔습니다.

 

한 조수의 결과를 다른 조수에게 보여주고 "이거 맞는지 판정해봐"도 이제 안 시킵니다. 둘이 갈리면 "둘 중 골라줘"라고 묻는 대신, 제가 직접 원본을 봅니다. 반박을 지어내서 검증하는 것도 그만뒀어요 — 지어낸 반박은 20개 중 0개를 못 움직였으니, 그건 검증이 아니라 아무것도 안 재는 절차였던 셈입니다. 답에 붙는 확신 수치도 신호로 안 씁니다. 절반을 틀리면서 확신도는 98이었던 적이 있었거든요.

 

돌아보면 처음엔 "두 군데 물으면 더 똑똑한 답이 나오겠지" 하고 기대했습니다. 실제로 값이 나오는 자리는 그게 아니었어요. 한쪽이 당연하게 여긴 걸 다른 쪽이 안 당연하게 볼 때 값이 났습니다. 그런데 그 값을 내려면 반박이 서로를 흔들면 안 됩니다. 흔들리는 순간 그건 두 번째 의견이 아니라 그냥 목소리 큰 쪽이 이기는 게임이 되더라고요.

 

바꿔놓고 나니 왕복하는 방식 자체가 달라졌습니다. 예전에는 "이 답 어때?" 하고 통째로 넘겨서 다른 쪽 의견으로 덮어쓰게 뒀다면, 이제는 "이 답과 저 답이 갈렸다"는 사실만 적어서 제 앞에 올려두게 합니다. 그 갈림을 누가 이기는지는 조수끼리 겨루지 않습니다. 제가 두 원본을 나란히 열어보고 정합니다. 손은 더 갑니다. 그런데 맞던 답이 조용히 무너지는 것보다는 낫습니다. 무너진 줄도 몰랐던 그 일 이후로는 그렇게 정했습니다.

 

이번에 사람이 붙잡은 자리

 

  • 처음 답을 따로 적어둔 것. 안 그랬으면 답이 바뀐 것도 몰랐을 겁니다.
  • 갈렸을 때 자동판정 대신 제가 원본을 연다는 규칙을 세운 것. 조수끼리 서로 판정하게 두지 않기로 정한 게 저였습니다.
  • 문항이 망가졌을 가능성을 의심하고 원문과 대조한 것. 라벨만 보고 넘어갔으면 몰랐을 일입니다.

댓글

    로그인 없이 쓰는 대신, 등록한 댓글은 직접 지울 수 없습니다. 지워야 할 댓글은 옆의 신고를 눌러주세요.
    네이버 블로그글 원문 보러가기 →유튜브 쇼츠만드는 장면 20초로 보기 →
    관리자 Victor · 문의는 우상단 신고·제안으로 남겨주세요.
    글과 화면은 정적 파일로 만듭니다. 댓글과 조회수만 외부 데이터베이스에 저장합니다 — 개인정보처리방침

    오류 신고 · 제안

    관리자 Victor에게 전달됩니다