싼 모델이 버그의 75%를 찾는다, 보안 버그는 37.5%만
평균이 격차를 가린다. 오탐 26%와 재현성 12/15가 단가표에 안 잡히는 진짜 비용이다. 어디에 싼 모델을 쓸지는 모델이 아니라 경로로 갈라야 한다.
"$1.20짜리 모델로 코드 리뷰가 되는가"에 대한 답은 하나가 아니다. 전체 평균으로는 **비용 3.6%에 버그의 75%**를 찾는다. 그런데 같은 실험에서 보안 버그만 떼어 보면 37.5% 대 79% 다.
평균이 그 격차를 가린다. 그래서 이 실험에서 가져갈 건 "싼 걸로 바꿔라"가 아니라 "어디에 싼 걸 쓸지 미리 갈라놓아야 한다" 다.
확인된 것
entelligence.ai 실험(아카이브 보관본) 기준이다. Cal.com·Sentry·Discourse·Keycloak·Grafana에서 각 10개씩 PR 50개를 뽑아 결함 없는 기준 브랜치에 버그를 심었다. 검증된 버그 143개, 심사 모델 두 개의 일치율 91%.
| | Luna | Astra | |---|---|---| | 검증된 버그 발견 | 69 | 92 | | 지적의 검증 통과율 | 74% | 96% | | PR당 비용 | $0.0041 | $0.113 | | 버그 1개당 비용 | $0.0030 | $0.061 | | 평균 리뷰 시간 | 23초 | 36초 |
- 오탐: Luna는 93건 지적 중 24건이 미검증(약 26%), Astra는 96건 중 4건(약 4%).
- 보안(Keycloak): 검증된 보안 버그 24개 중 Luna 9개(37.5%), Astra 19개(79%).
- 상호보완: 공통 44개, Astra만 48개, Luna만 25개. 둘을 병행하면 $5.86으로 117개(82%).
- 재현성: PR 10개를 재실행했더니 Astra는 처음 찾은 15개 중 14개 이상을 다시 찾았고, Luna는 12개만 다시 찾았다.
저자가 스스로 밝힌 한계도 있다. 변경분만 주고 저장소 이력·호출 그래프는 안 줬다. 두 모델의 학습 마감보다 오래된 PR만 썼다. 그리고 Astra가 평가 대상이면서 심사자로도 참여했다.
내 판단
1. 단가 비교표에 사람 시간이 빠져 있다.
버그당 $0.0030은 모델 요금만 센 값이다. Luna의 지적은 4건 중 1건이 틀렸다. 그 틀린 지적은 사람이 읽고 확인하고 기각해야 한다. PR 하나에 헛발이 두세 개씩 붙으면 절감액보다 그 시간이 비싸진다.
더 나쁜 건 한 단계 뒤다. 오탐이 일정 비율을 넘으면 사람은 개별 지적을 판별하지 않고 리뷰 전체를 무시하기 시작한다. 그러면 찾아낸 진짜 버그 69개도 같이 버려진다. 26%가 그 임계를 넘는지는 팀마다 다르겠지만, 비용 계산에 이 항목이 없다는 건 짚어야 한다.
2. 재현성 격차가 발견율보다 중요할 수 있다.
15개 중 12개. 같은 PR을 두 번 돌리면 결과가 달라진다는 뜻이다.
발견율이 낮은 건 감수할 수 있다 — 어차피 보조 도구니까. 그런데 결과가 흔들리면 CI 게이트로 쓸 수 없다. 통과/실패가 뽑기가 된다. 싼 모델은 "막는 장치"가 아니라 "힌트 주는 장치"로만 붙여야 하고, 이건 발견율 표가 아니라 재현성 항목에서 나오는 결론이다.
3. 저자의 결론은 조건부고, 그 조건이 진짜 어려운 부분이다.
원문은 이렇게 닫는다 — 싼 리뷰와 엄격한 리뷰를 나눠 쓰면 이득이지만 "먼저 어떤 변경이 어느 쪽인지 구분할 수 있어야 함". 맞는 말이고, 그 구분이 전부다.
여기서 모델에게 "이 PR이 보안 민감한가?"를 물으면 같은 문제가 반복된다. 경로로 가르는 게 낫다. 인증·세션·암호화·결제·권한 검사가 들어 있는 디렉터리 목록을 한 번 정해두고, 그 경로가 diff에 포함되면 비싼 모델, 아니면 싼 모델. 판단이 아니라 규칙이라 흔들리지 않고, 목록은 사람이 리뷰할 수 있다.
오늘 아침에 쓴 Jev 글에서 "분류·라우팅 호출은 싼 쪽으로 내려도 된다"고 했는데, 여기 라우팅 결정은 모델을 아예 안 써도 된다. 경로 매칭이면 충분하다. 이것도 내 제안이지 원문에 있는 내용은 아니다.
모르는 것
- 이 결과가 다른 언어·다른 코드베이스로 옮겨지는지 모른다. 표본은 PR 50개, 저장소 5개다.
- 심어 넣은 버그가 실제 버그의 분포를 닮았는지 모른다. 의도적으로 삽입한 결함은 자연 발생 버그보다 국소적이고 찾기 쉬울 가능성이 있다. 저자도 "모든 검토자가 놓친 버그"의 존재를 인정하며 하한 평가라고 적었다.
- Astra가 대상이자 심사자라는 점의 실제 영향 크기를 모른다. 저자가 한계로 적어뒀지만 보정치는 없다.
- 두 모델을 병행해 82%를 얻는 구성이 오탐을 어떻게 바꾸는지 나와 있지 않다. 발견을 합치면 오탐도 합쳐질 텐데, 그 수치가 없다.
댓글
불러오는 중...