추론의 함정과 사전등록
품앗이가 AI와 함께 일하며 남긴 실패 기록을 다른 조직이 다시 쓸 수 있게 옮긴 글입니다. 묶음 전체는 AI가 「됐다」고 할 때에서 볼 수 있습니다.
요지
사례 몇 건에 들어맞는 규칙은 언제든 만들 수 있습니다. AI는 그런 규칙을 사람보다 훨씬 빨리, 그럴듯하게 만들어 냅니다. 그래서 규칙을 사례에 맞추지 말고 사례로 떨어뜨려 봐야 합니다. 그리고 결론이 말이 안 되면 계산을 다시 하기 전에 전제로 돌아갑니다. 이 노드는 우리 기록에 남은 추론의 함정과, 그것을 막으려고 쓰는 사전등록 방법을 적습니다.
1. 대조군 한 건으로 맞춘 규칙은 「아직 안 틀렸다」일 뿐이다
남의 프로그램이 쓰는 계산 규칙을 화면 한 건으로 역산해서 「전부 통과」라고 보고한 일이 있습니다. 나중에 보니 그 한 건에서는 서로 다른 두 공식이 우연히 같은 값을 내고 있었습니다. 같은 방식으로 맞춰 둔 규칙 여덟 개가 하루 만에 무너졌습니다.
한 건에 맞았다는 것은 「검증됐다」가 아니라 「아직 안 틀렸다」입니다. 둘을 구분해서 말해야 다음 사람이 그 규칙을 어디까지 믿을지 압니다.
2. 사전등록 다섯 단계
사전등록은 데이터를 보기 전에 가설과 예측을 먼저 적어 두는 방법입니다. 연구에서 쓰는 말인데, AI와 함께 남의 규칙을 알아내거나 원인을 찾을 때도 그대로 쓸 수 있어서 우리는 아래 순서로 씁니다.
- 아직 살아 있는 가설을 빠짐없이 적는다.
- 그 가설들을 가장 많이 갈라 줄 사례를 고른다.
- 한 번에 변수 하나만 바꿔서 무엇 때문에 달라졌는지 가린다.
- 데이터가 오기 전에 각 가설의 예측을 파일로 남긴다.
- 관측한 범위 밖의 입력에는 답하지 않고 「모름」과 그 이유를 적는다.
세 번째 단계는 실제로 효과가 컸습니다. 「같은 날, 다른 시각」 사례 하나를 받자 결과가 시각에 따라 달라지는지가 한 번에 갈렸습니다. 네 번째 단계에서는 데이터가 오면 예측에 맞춰 규칙을 고치지 않고, 예측과 다른 가설을 떨어뜨립니다.
함께 지키는 것도 몇 가지 있는데, 먼저 「통과」를 말할 때는 조정한 값이 몇 개였는지를 같이 말합니다. 세 건이 통과했어도 맞추느라 상수를 둘 넣었다면 사실상 한 건 통과입니다. 비교에 쓴 기록값이 어디서 왔는지 적어서, 내가 만든 값으로 나를 검증하는 순환을 막습니다. 두 가설이 어떤 사례에서 같은 값을 낸다면 그 사례는 어느 쪽의 근거도 되지 못합니다. 후보 가운데 답이 없으면 후보를 고른 범위 자체를 의심합니다.
전부 따져 봐도 답이 없으면 비틀지 말고 「모른다」고 선언합니다. 우리 기록에는 규칙 후보 2,240가지를 모두 따져 보았는데 12건을 다 맞추는 것이 하나도 없던 일이 있습니다. 가장 잘 맞는 것은 12건 가운데 11건이었습니다. 이때 할 수 있는 일은 그 규칙을 쓰되 깨지는 한 건을 「알려진 미해결」로 화면에 드러내 두는 것이고, 조용히 통과시키는 선택지는 없습니다.
3. 결론이 터무니없으면 전제가 틀렸다
회의록을 정리하던 AI가 일상어로 쓰인 단체 이름을 법률상의 좁은 뜻으로 읽었습니다. 그 결과 이 일을 앞장서 끌고 가는 우리 조직을 의결권 없는 자리에 앉히는 결론을 냈고, 그것을 회의록의 결정 칸에 적었는데, 바로잡기까지 7주가 걸렸습니다.
결론이 우리 쪽을 말이 안 되는 자리에 앉히면 계산이 아니라 전제를 봅니다. 회의록의 결정 칸에는 회의에서 실제로 정한 것만 적고, 정리하는 쪽의 추론은 적지 않습니다. 일상어와 법률 용어가 같은 글자를 쓸 때 특히 조심합니다.
4. 가설 하나에 붙들리지 않는다
문자가 오지 않는 문제를 「캐시 때문」이라고 단정하고 사람에게 관리 화면을 열게 한 일이 있습니다. 원인은 직접 짠 코드가 실패를 성공으로 돌려준 데 있었습니다. 진단을 시작할 때 가설을 두세 개 세우고, 확인이 가장 싼 것부터 봅니다. 캐시나 외부 서비스보다 내 코드와 내 설정을 먼저 봅니다. 막혔을 때 임시방편으로 물러서지 말고 원래 그림으로 돌아갑니다. 사람에게 권할 때는 하나만 들고 갑니다.
화면이 깨지는 문제를 실제 위치나 계산된 스타일을 재지 않고 스타일 값만 세 번 바꿔 본 기록도 있습니다. 두 번 실패하면 짐작을 멈추고 측정으로 넘어갑니다.
AI 모델이 이상한 것을 생성할 때, 예를 들어 같은 말을 반복하거나 깨진 글자를 낼 때는 서비스 경로보다 학습 데이터 원본을 먼저 검색합니다. 우리 기록에서는 서비스 경로를 스무 번 살핀 뒤에야 학습 데이터에서 깨진 글자 두 건을 찾았습니다.
5. 「없다」에는 세 가지가 있다
정말 없는 경우, 이름을 잘못 부른 경우, 엉뚱한 자리를 본 경우입니다. 사람이 부르는 이름은 정식 이름이 아니라 설명일 때가 많습니다. 이름을 짐작해서 검색하지 말고, 목록 전체를 뽑아 구조째 훑습니다. 대장 파일이 있다고 들었으면 그 파일이 실제로 있는지부터 봅니다.
관찰과 진단도 구분해야 합니다. 「파일이 없다」를 보고 「기능이 빠졌다」로 건너뛴 일이 있는데, 작업이 끝나면 그 파일을 지우는 것이 정상 동작이었습니다. 빠졌다고 말하기 전에 원래 코드와 일부러 지웠을 가능성을 먼저 봅니다.
6. 목록의 건강검진은 목록 밖에서 출발한다
우리가 쓰는 사이트 대장을 세 번 전수 점검했는데 매번 「바뀐 것 없음」이 나왔습니다. 방향을 뒤집어 실제 공개된 주소 쪽에서 출발해 세자, 살아 있는데 대장에 없는 공개 주소가 6개 나왔습니다. 대장에서 출발하는 점검은 대장에 없는 것을 구조적으로 찾지 못합니다. 「곧 없앨 것」이라는 이유도 대장에서 빼 둘 근거가 되지 않습니다.
7. 보고의 크기를 사실에 맞춘다
작은 관찰을 큰 이름으로 키우지 않습니다. 기계 이름 목록이 보이는 것을 「자산 누출」이라 부르고 전체 공사를 판단 대기로 올린 일이 있습니다. 보이는 것과 실제로 닿는 것, 곧 열쇠와 권한은 다른 칸입니다. 처방은 가장 작은 것부터 고르고, 이미 누가 손대고 있는지 먼저 봅니다.
한 이름이 두 칸을 덮으면 갈라서 적습니다. 어떤 「승인」이 조직 자격과 제품 사용 두 가지를 함께 가리켰는데, 자격은 이미 승인되고 제품 쪽만 거절된 상태를 「못 받았다」 한 줄로 보고했습니다. 된 칸을 먼저 쓰고, 안 된 칸을 따로 씁니다.
내가 먼저 말한 위험은 더 센 증거가 있을 때만 취소합니다. 부품을 섞어 쓰면 위험하다고 경고해 놓고, 「일단 인식됐다」는 약한 증거를 보고 「그대로 두셔도 된다」고 바꿨다가, 고장이 난 뒤 다시 열게 한 일이 있습니다. 상대가 「이거 괜찮은 거 아냐?」라고 묻는 것도 증거가 아닙니다. 질문에는 먼저 답하고, 그 답이 앞의 권고를 뒤집을 만한지는 따로 판단합니다.
8. 착수 전에 반증하고, 판단은 다시 돌려 본다
비용이 큰 결정 앞에서는 따로 떼어 낸 대화에서 「이것을 하면 안 되는 가장 강한 이유」를 한 번 듣습니다. 지원사업 응모, 매달 나가는 비용, 핵심 시스템 변경 같은 결정입니다. 반증은 방향을 정하기 전에 하고, 방향이 정해진 뒤에는 실행합니다. 실행을 미루는 핑계로 반증을 쓰면 잘못 쓴 것입니다.
전략이나 추천처럼 판단이 들어간 답은 새 대화에서 두 번 이상 다시 받아 결론이 같은지 봅니다. 흔들리면 「판단이 불안정하다」고 적는데, 흔들림 자체가 정보입니다. 이 방법은 AI 프롬프트를 실험처럼에서 한 연구자의 칼럼과 함께 더 자세히 다룹니다.
9. 원인이 내가 못 보는 쪽에 있을 때
문제가 사용자 컴퓨터 쪽에 있는데 서버 기록만 보면서 사용자에게 한 줄씩 여덟 번 넘게 확인을 부탁한 일이 있습니다. 내가 못 보는 쪽의 실측은 필요한 것을 한 번에 묶어 부탁합니다. 화면 프로그램이 실패하면 그 프로그램의 기록이 첫 증거입니다.
화면에 나타난 증상은 그 화면이 있는 기계에서 재현합니다. 글자가 깨지는 원인이 원격 화면 전송의 압축이었던 일이 있습니다. 층을 나눠서 데이터, 서버 응답, 서버가 그린 화면, 전송 순으로 봅니다. 증상 여러 개가 동시에 시작됐다면 원인은 대개 위쪽 하나입니다.
AI에게 코드 검토를 맡길 때는 오늘 날짜와 이번에 바뀐 부분을 같이 줍니다. AI가 올해가 몇 년인지 모르면 멀쩡한 연도를 오류로 판정하고, 원래 있던 문제와 이번 변경의 문제를 섞어서 보고합니다.
처방 정리
- 한 건에 맞은 규칙은 「아직 안 틀렸다」로 적는다.
- 데이터를 받기 전에 가설과 예측을 파일로 남기고, 오면 떨어뜨린다.
- 전부 따져도 답이 없으면 「모른다」를 선언하고 미해결을 화면에 드러낸다.
- 결론이 말이 안 되면 전제로 돌아간다.
- 내가 한 경고는 더 센 증거로만 거둔다.
도구 메모
- 사전등록 파일: 날짜, 살아 있는 가설 목록, 요청할 사례, 가설별 예측을 적고 데이터가 오기 전에 저장 시각이 남는 곳에 저장해 둔다.
- 판단 재현: 같은 질문을 맥락 없는 새 대화에서 두 번 이상 다시 묻고 결론만 나란히 적는다.