데이터 부족으로 인한 테스트의 오류
요약
AI 에이전트 운영 시 통계적 표본 크기 부족으로 인해 발생하는 '확신에 찬 오답'의 위험성을 경고합니다. 교과서적인 지름길 공식이 실제 데이터 환경(낮은 클릭률 등)에서는 심각한 오류를 초래할 수 있음을 사례를 통해 설명합니다.
핵심 포인트
- 표본 크기가 부족해도 시스템은 오류 없이 '승자'를 잘못 발표할 수 있음
- 낮은 클릭률 환경에서는 교과서적 공식보다 훨씬 큰 표본이 필요함
- 다중 비교 시 발생하는 위양성률(False-positive rate) 증가 문제 주의
- 시스템 로그가 정상(Green)이라도 결과값의 통계적 유효성을 검증해야 함
지난달 저는 제 광고 테스트 에이전트인 Mia 내부의 통계를 감사하다가, 아무것도 고장 내지 않았던 20배의 오류를 발견했습니다. 예외도 없고, 실패한 단언(assertion)도 없으며, 로그 어디에도 기록된 것이 없습니다. 교과서적인 지름길은 A/B 테스트의 각 팔(arm)에 1,111명의 사용자가 필요하다고 말합니다. 하지만 실제 클릭률이 나오는 1.9% 광고가 실제로 필요한 정확한 공식은 22,278명이라고 합니다. Mia가 진행했던 모든 테스트는 필요한 데이터의 20분의 1로 실행되고 있었고, 그 모든 테스트들이 여전히 승자를 발표했습니다.
저는 여러 산업에서 AI 시스템을 운영하는데, 가장 큰 손실을 초래하는 실패들은 모두 이 모양을 하고 있습니다: 아무것도 고장 나지 않지만, 답은 틀린 것입니다.
지름길이 나온 배경
이 지름길은 Lehr의 방정식입니다: 효과 크기 제곱에 16을 나눈 값. 이것이 교과서에 실려 있는 이유는 쉽기 때문이며, 쉬운 이유는 수학적으로 가장 친화적인 곳에서 파생되었기 때문입니다. 그곳은 동전 던지기 비율 근처로, 분산(variance)이 최고점에 달하고 모든 것이 대칭인 곳입니다. 광고는 그곳에 살지 않습니다. 광고는 1.9%에서 존재하며, 여기서 포착할 가치가 있는 효과들은 절대적인 측면에서 매우 작고, 그것들을 보기 위해 필요한 표본 크기는 거대합니다. 이 지름길은 이 아무것도 모릅니다. 이것은 1,111을 반환하고 넘어갑니다.
제가 받아들이는 데 가장 오래 걸린 부분은 그 공식 자체가 틀리지 않았다는 것입니다. 그것이 나온 세계에서는 잘 작동한다는 것입니다. 버그는 저의 것이었습니다. 저는 그것을 재파생시키지 않고 다른 세계로 가져갔습니다.
- 1.9%: Mia가 존재하는 기본 클릭률
- 1,111: 교과서적인 지름길이 규정한 각 팔당 표본 크기
- 22,278: 정확한 공식이 실제로 요구하는 각 팔당 표본 크기
- 14%: raw p < 0.05인 세 가지 팔 테스트의 실제 거짓 양성률(false-positive rate)
저전력 테스트(underpowered test)라면 실패할 것이라고 생각할 것입니다. 하지만 그렇지 못합니다. 통계적 검정력(statistical power)에 대한 런타임 체크는 없습니다. 이 테스트는 너무 작은 표본을 수집하고, p-값을 계산하며, 마치 데이터가 스무 배 더 많았을 때 사용했을 것과 같은 자신감 있는 목소리로 판결을 내립니다. 가끔 그 판결이 심지어 맞기도 합니다. 이것이 위험한 이유입니다. 시스템 충돌(crash)은 당일 오후에 수정됩니다. 하지만 확신에 찬 오답은 실제로 조치됩니다.
저전력 테스트는 자신이 모른다고 말하는 법이 없습니다. B가 승리한다고 말하며, 그것을 태연하게 말합니다.
감사 과정에서 두 번째 거짓말을 발견했습니다. Mia는 raw p 값이 0.05 미만인 세 가지 팔(three-arm) 테스트를 평가했는데, 이는 5%의 위양성률(false-positive rate)처럼 들립니다. 하지만 세 번의 비교가 이루어지면 실제로는 14%에 가깝습니다. 일곱 개의 테스트 중 하나는 존재하지 않는 승자를 선포하고 있었습니다. Holm-Bonferroni 방법은 몇 줄의 코드로 이를 수정합니다. 이 코드를 작성하는 데는 몇 분밖에 걸리지 않았습니다. 제가 그것들을 필요로 할 것이라고 의심한 것은 아무도 요청하지 않은 감사(audit)를 하게 만들었습니다.
문제가 된 부분: 20배 크기 오류와 14%의 위양성률이 프로덕션 환경에서 함께 존재했고, 코드는 내내 녹색 신호가 나왔습니다. 제가 볼 수 있는 모든 신호는 시스템이 작동한다고 말했습니다. 잘못된 것은 오직 답변뿐이었습니다.
의료 분야에서의 같은 거짓말
저는 이것을 광고에서 포착했지만, 이미 의료 분야에서 비용을 지불했기 때문에 그것임을 인식할 수 있었습니다. 저의 거부 평가 에이전트(denial-assessment agent)는 30개의 사례로 구성된 골든 세트(golden set)를 기준으로 등급이 매겨집니다. 프롬프트 변경으로 분류 정확도(classification accuracy)가 80%에서 93.3%로 높아졌을 때, 저는 평가 시스템이 같은 말을 네 번 연속으로 할 때까지 그것을 믿지 않았습니다. 30개의 사례는 작은 표본입니다. 여기서 단 한 번의 실행만 해도 저전력 광고 테스트처럼 부드럽게 거짓말할 수 있으며, 그 방식은 같습니다: 오류가 아니라 숫자로 거짓말합니다.
이것이 산업 전반에 걸친 패턴입니다. 이는 광고나 보험 청구와는 아무 관계가 없습니다. 이것은 얻었는지 여부와 상관없이 같은 소리를 내는 판결에 관한 것입니다. 광고 테스트, 평가 하네스(eval harnesses), 대시보드: 이들 중 어느 것도
결과: 이제 Mia는 관찰된 기본 비율(observed base rate)을 사용하여 모든 테스트의 크기를 정확한 비풀링 공식으로 설정하고, 해당 샘플에 도달하기 전에는 승자를 선언하지 않으며, arm 간에 Holm-Bonferroni를 적용합니다. 이 수정 작업은 하루가 걸렸습니다. 이것을 찾아내는 것은 아무도 요청하지 않은 감사를 통해서 이루어졌습니다.
기본 비율에서 재파생(Re-derive at your base rate)
핵심 통찰: 모든 통계적 경험 법칙(statistical rule of thumb)은 당신이 그것을 자신의 기본 비율로 재파생하기 전까지는 다른 사람의 기본 비율에 맞춰 보정됩니다.
이것이 제가 지금 접하는 모든 산업에서 적용하는 규칙입니다. 실제 사례를 보여드리겠습니다:
- 신뢰하기 전에 자신만의 기본 비율에서 공식을 재파생하세요. 교과서는 그들의 기본 비율에서 그것을 파생시켰습니다.
- 시스템이 모른다고 말할 때 무엇을 하는지 물어보세요. 만약 답이 알았을 때와 똑같이 들린다면, 당신에게는 도구가 아니라 거짓말쟁이를 가진 것입니다.
- 비교 횟수를 세세요. 원시 p값이 0.05 미만인 세 개의 arm은 5%가 아닌 14%의 위양성률(false-positive rate)입니다.
- 작업뿐만 아니라 심사위원(judge)을 감사하세요. 가장 비싼 버그는 채점하는 그 시스템 안에 존재합니다.
- 초록색(green)을 판결이 아닌 타임스탬프로 취급하세요. 그것은 코드가 실행되었다는 의미이지, 답이 맞다는 의미가 아닙니다.
크게 실패하는 테스트들이 값싼 테스트들입니다. 당신들은 그것들을 보고, 고치고, 다음으로 넘어갑니다. 비싼 테스트들은 잘못된 것으로 조용히 성공하며, 몇 달 동안 지속되고, 그 사이 모두는 매주 조금씩 더 신뢰합니다. 만약 당신의 실험이 교과서 작가들이 상상하지 못했던 기본 비율에서 실행된다면, 지금이 공식을 재파생할 때입니다. 그리고 만약 당신 자신의 스택(stack)에서 이러한 거짓말 중 하나를 발견한다면, 그것을 기록하세요. 실제로 확인하는 운영자들은 드물고, 우리는 서로를 찾아야 합니다. 수학 자체가 어려운 부분이 아니었습니다. 어려운 부분은 올바르게 보이는 숫자를 의심하는 것입니다.
원래 nabbilkhan.com에 게시됨.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기