바꾸기 전에 먼저 잴 것
봇은 매수 후보를 고를 때 언어 모델에게 "살지 말지"를 묻는다. 이 판단 주체를 다른 모델로 바꾸면 나아질지 보고 싶었다. 같은 과거 질문을 두 모델에 다시 던지고 답이 얼마나 갈리는지 비교하는 방식이다.
그런데 이 비교에는 전제가 하나 숨어 있다. 같은 모델에 같은 질문을 다시 던지면 같은 답이 나온다는 전제다. 이게 틀리면 두 모델의 차이를 재도, 그 차이가 모델 때문인지 원래 흔들림 때문인지 말할 수 없다.
그래서 순서를 바꿨다. 모델을 바꾸기 전에, 바꾸지 않고 다시 물었을 때 얼마나 흔들리는지부터 쟀다. 이 값이 이후 모든 비교의 바닥이 된다.
15건으로 쟀을 때는 2.4%였다
먼저 과거 판단 15건을 골라 같은 모델에 다시 물었다. 원래 답과 다른 답이 나온 비율은 **2.4%**였다. 같은 질문이면 거의 같은 답이 나온다고 읽었다.
이 값에는 구멍이 있었다. 15건에 담긴 종목 판단 중 서로 독립적인 것은 몇십 건뿐이었고, 그 크기로 잡은 95% 신뢰구간의 상한은 **10.2%**였다. "2.4%"라고 적었지만 실제로 말할 수 있었던 것은 "0에서 10% 사이 어딘가"였다.
전량으로 다시 재니 3.3배였다
남아 있던 한 달치 판단을 전부 두 번씩 다시 물었다. 실패한 호출은 없었다.
| 비교 | 결과 |
|---|---|
| 원래 답 vs 다시 물은 답 | 7.98% 불일치 (95% 구간 6.88~9.23%) |
| 다시 물은 답 1회차 vs 2회차 | 6.56% 불일치 |
| "산다" 비율 | 원래 50.2% / 다시 물은 답 50.1% |
15건에서 본 2.4%보다 3.3배 높았다.
더 놀란 것은 두 번째 줄이다
첫 줄은 시점 차이로 설명할 여지가 있다. 원래 답은 몇 주 전에 나왔고 그사이 무언가 바뀌었을 수 있다.
두 번째 줄은 그런 여지가 없다. 같은 날, 같은 모델, 같은 질문, 같은 설정(무작위성을 낮게 잡은 설정)으로 두 번 물었는데 6.56%가 갈렸다. 운용 중에 똑같은 상황이 100번 오면 6~7번은 다른 결정이 나온다는 뜻이다.
그리고 세 번째 줄이 이 흔들림을 가린다. "산다" 비율은 50.2%와 50.1%로 거의 같았다. 집계만 보면 안정적이고, 개별 판단은 그렇지 않다. 어느 종목을 사는지는 바뀌는데 몇 개를 사는지는 그대로라, 일별 매수 건수만 보고 있었다면 영원히 몰랐을 것이다.
💡 판단을 비교하기 전에 잡음 바닥부터 잰다. 같은 질문을 같은 대상에 두 번 던져 갈리는 비율이 바닥이다. 바닥이 8%인데 두 모델의 차이가 8%라면, 그 차이는 아무것도 말해 주지 않는다.
미리 정해 둔 기준이 판정을 대신했다
측정 전에 기준을 정해 뒀다. 바닥이 5% 이하면 비교를 진행하고, 10%를 넘으면 비교 자체를 접고, 그 사이면 조건부로 진행한다. 구간 상한 9.23%는 그 사이였다. 숫자를 보고 기준을 고른 게 아니라 기준을 보고 숫자를 읽었기 때문에, 결과가 애매해도 다음 행동은 애매하지 않았다.
같은 실수가 같은 날 반대 방향으로 한 번 더 났다
다음 단계에서 다른 모델과의 차이를 잴 때도 먼저 15건으로 비용과 시간을 가늠했다. 15건에서 두 모델의 불일치는 **45.45%**였고, 전량으로 재니 **37.84%**였다.
이번에는 작은 표본이 차이를 크게 보여 줬다. 앞에서는 작게 보여 줬다. 방향이 매번 다르다는 것이 요점이다. 작은 표본이 한쪽으로 치우친다면 보정이라도 하겠지만, 어느 쪽으로 틀릴지 모르니 보정할 방법이 없다.
남은 것
일치율은 재현성이지 품질이 아니다. 같은 답을 잘 반복하는 모델이 좋은 답을 내는 모델이라는 뜻은 아니다. 이 측정은 비교의 자를 만든 것이지 판단의 질을 잰 것이 아니다.
작은 표본은 비용을 가늠하는 데 쓰고 판정에는 쓰지 않는다. 15건으로 판정했으면 첫 번째에는 잡음을 3배 낮게 봤고, 두 번째에는 차이를 크게 봤다.
집계가 안정적이라는 것은 개별 판단이 안정적이라는 증거가 아니다. 비율이 그대로인 채로 내용이 바뀔 수 있다. 무엇이 흔들리는지 보려면 한 건씩 짝지어 대조해야 한다.