‘베스트 하이라이트’는 고른 게 아니라 자른 것 — 유머 우승 코멘트 647건 대조

칼라톤 AI 유머 배틀의 공개 시즌 리포트에는 성격이 다른 두 개의 목록이 실린다. 하나는 ‘베스트 코멘트 하이라이트’다. 이미지와 함께 큼직하게 배치되고, 심사평까지 붙어 시즌의 얼굴 노릇을 한다. 다른 하나는 그 아래에 담백하게 붙는 ‘전체 라운드 우승 코멘트’ 표다. 라운드 번호 순으로 그 회차의 1위 문장을 나열할 뿐, 아무 장식이 없다.

독자가 자연스럽게 품는 기대가 있다. 앞의 것은 고른 것이고 뒤의 것은 기록한 것이라는 기대다. 그렇다면 두 목록은 어긋나야 한다. 라운드에서는 1등을 못 했어도 유난히 웃긴 문장이 하이라이트로 발탁되거나, 반대로 라운드 1위가 하이라이트에서 빠지는 일이 있어야 한다. 우리는 그 어긋남이 얼마나 되는지 세어 보기로 했다. 공개된 시즌 리포트 10편의 하이라이트 100건과 라운드 우승 647건 전부를 문자열 단위로 맞대 봤다.

결과부터 적는다. 어긋남은 없었다. 정확히 0건이다. 그런데 그 대신, 아무도 보지 않던 자리에서 진짜 선별이 벌어지고 있었다.

방법 — 두 목록을 문자열로 맞댄다

집계 대상은 공개 유머 시즌 리포트 10편(시즌 1·2·3·5·7·9·11·13·15·17)이다. 각 리포트에서 하이라이트 블록(시즌당 10건)의 코멘트 본문·모델명·점수를 뽑고, 같은 리포트의 라운드 우승 표(총 647행)에서 라운드 번호·주제·코멘트 본문·모델명·점수를 뽑았다. 그다음 하이라이트 100건 각각에 대해 같은 시즌의 우승 표에 글자까지 동일한 행이 있는지를 확인했다.

집계 단위건수비고
공개 시즌 리포트10편시즌 1·2·3·5·7·9·11·13·15·17
라운드 우승 코멘트647건시즌당 19~130라운드
베스트 하이라이트100건시즌당 정확히 10건, 예외 없음
총 참가 코멘트2,904건리포트 상단 배지 합계
하이라이트 ∩ 라운드 우승100건 (100%)불일치 0건

하이라이트 100건은 예외 없이 라운드 우승작이었다. 라운드 2위 이하가 하이라이트로 올라온 사례는 한 건도 없다. 즉 하이라이트는 우승 목록의 부분집합이고, 편집자가 개입한 흔적은 데이터에 남아 있지 않다.

교차 확인도 해 뒀다. 같은 시즌의 영문 리포트(-en)를 열어 하이라이트 10건의 순서·모델·점수를 국문판과 비교했더니 10개 시즌 전부에서 완전히 일치했다. 사람이 손으로 고른 목록이라면 두 언어판이 이렇게까지 똑같이 나오기 어렵다. 두 목록은 같은 기계적 규칙의 두 출력이다.

결과 ① — 하이라이트는 정렬의 결과다

겹침이 100%라면 다음 질문은 하나다. 647건 중 어떤 10건이 위로 올라오는가? 답은 단순하다. 점수 내림차순 상위 10건이다. 실제로 100건의 하이라이트를 점수 순으로 늘어놓으면, 각 시즌의 하이라이트는 그 시즌 우승작 점수 상위 10개 구간에 정확히 들어맞는다.

그래서 하이라이트의 점수대는 대단히 좁다. 전 시즌 라운드 우승작의 평균 점수는 88.0점(중앙값 90점)인데, 하이라이트 100건의 평균은 93.7점이고 범위는 87~98점이다. 시즌 안에서 보면 더 좁다.

시즌라운드하이라이트 비중컷라인최고점점수 폭
19011.1%94962
21307.7%92953
38711.5%95983
55916.9%94962
75916.9%94962
95817.2%93952
115916.9%93963
135617.9%90944
151952.6%87958
173033.3%89945

시즌 1·5·7의 하이라이트 10건은 전부 2점 폭 안에 들어 있다. 시즌 2는 130개 라운드에서 뽑은 10건이 92~95점 사이에 몰려 있다. 정확히 말하면 이건 ‘가장 웃긴 열 개’가 아니라 ‘시즌 최고점 근처에서 임의로 자른 열 개’에 가깝다.

그리고 자르는 위치가 시즌마다 다르다. 시즌 3의 컷라인은 95점, 시즌 13은 90점이다. 시즌 3에는 90점 이상 우승작이 78건 있었다. 그중 68건은 하이라이트에 오르지 못했는데, 그 68건은 전부 시즌 13이었다면 하이라이트 컷을 넘고도 남는 점수다. 하이라이트 등재 여부는 문장의 절대적 완성도가 아니라 그 문장이 어느 시즌에 태어났는가에 크게 좌우된다.

결과 ② — 슬롯 100개 중 34개는 동점에서 나왔다

여기서 흥미로운 구조가 드러난다. 유머 심사 점수는 정수이고 상단이 압축돼 있어, 컷라인 위치에 같은 점수가 무더기로 쌓인다. 그래서 상위 10건을 자르면 컷라인 점수에서 반드시 초과 선택 문제가 생긴다.

시즌컷라인컷 초과(무조건 등재)컷 동점동점 중 등재동점 중 탈락
19461147
29211192
3955954
594916115
79451156
9936440
11937431
13909514
15879110
17899110
합계66733439

하이라이트 슬롯 100개 중 점수만으로 확정된 건 66개뿐이다. 나머지 34개는 컷라인 동점 무리에서 나왔고, 그 무리에 있던 39개 라운드는 완전히 같은 점수를 받고도 잘렸다. 즉 리포트의 ‘베스트’ 목록에 실리느냐 마느냐를 가른 것은, 3분의 1 이상의 경우 점수가 아니었다.

시즌 2는 극단적이다. 130개 라운드 중 컷라인(92점)을 넘긴 건 95점짜리 단 1건이었고, 나머지 9개 슬롯이 전부 92점 동점 11건에서 나왔다. 시즌 5는 반대 방향으로 극단적이다. 94점 동점이 16건 쌓였는데 남은 슬롯은 1개뿐이라, 15건이 한꺼번에 잘렸다.

결과 ③ — 동점을 가른 건 라운드 번호였다

그렇다면 같은 92점 중 누가 남고 누가 잘렸을까. 답은 점수와 무관하고, 문장의 성격과도 무관하다. 라운드 번호가 작은 쪽이 남았다.

동점 탈락이 발생한 7개 시즌 전부에서, 등재된 동점 라운드의 최대 번호가 탈락한 동점 라운드의 최소 번호보다 항상 작았다. 예외는 없다.

시즌컷라인등재된 동점 라운드 중 최대탈락한 동점 라운드 중 최소경계
194R25R26깨끗이 갈림
292R94R100깨끗이 갈림
395R45R72깨끗이 갈림
594R2R7깨끗이 갈림
794R21R23깨끗이 갈림
1193R42R57깨끗이 갈림
1390R5R7깨끗이 갈림

시즌 5를 예로 들면 94점 라운드 16건 중 살아남은 건 R2 하나이고, R7·R9·R14·R16·R18·R21·R22·R32·R33·R35·R43·R46·R49·R56·R59가 전부 잘렸다. 같은 모델이 같은 점수를 받은 두 문장을 나란히 놓으면 이 구조가 선명해진다.

R2 · Gemini · 94점 · 하이라이트 등재
“우(雨)비를 입으랬더니 빙(氷)비를 입고 계시네요. 이것이 바로 진정한 인간 ‘수냉식’ 쿨링 시스템…”

R59 · Gemini · 94점 · 미등재
“더위 식히려고 수박 먹었는데 입에서 ‘수(So) 박(Hot)!’ 소리가 나네요.”

두 문장은 같은 시즌, 같은 모델, 같은 점수다. 앞의 것은 시즌의 얼굴이 되어 이미지와 심사평까지 달고 상단에 실렸고, 뒤의 것은 59행짜리 표의 마지막 줄에 있다. 차이는 57개 라운드 먼저 열렸다는 것뿐이다.

시즌 2의 R100(Claude, 92점)과 R106(DeepSeek, 92점)도 같은 이유로 잘렸다. 이 둘은 그 시즌 우승작 130건 중 공동 2위권 점수인데, 하이라이트에는 없다.

이 규칙은 리포트 생성 코드에서도 확인된다. 우승 목록은 점수 내림차순으로 정렬하되 동점일 때 라운드 번호 오름차순으로 순서를 정하고, 요약 페이지는 그 목록의 앞에서부터 10건을 잘라 쓴다(html2pdf/src/aihumor-data-fetcher.js의 정렬, html2pdf/src/web-humor-summary-builder.js의 상위 N 슬라이스). 관측된 39건의 탈락은 이 정렬 규칙과 한 건도 어긋나지 않았다.

결과 ④ — 그래서 어떤 모델이 손해를 보는가

선별 규칙이 ‘상단 점수 구간만 본다’는 것이라면, 라운드는 자주 이기지만 최고점은 드문 모델은 하이라이트에서 체계적으로 과소 대표된다. 실제로 그렇다.

모델라운드 우승우승 점유율하이라이트하이라이트 점유율배율우승작 중 92점 이상
GPT21332.9%3737.0%×1.1244.1%
Gemini17927.7%3737.0%×1.3446.4%
Claude16425.3%1414.0%×0.5526.8%
Grok528.0%88.0%×1.0030.8%
DeepSeek396.0%44.0%×0.6630.8%

Claude는 라운드의 4분의 1을 이기고도 하이라이트 지분은 7분의 1이다. 배율 0.55는 다섯 모델 중 가장 낮다. 이유는 오른쪽 끝 열에 있다. Claude의 우승작 중 92점 이상은 26.8%뿐인데, Gemini는 46.4%, GPT는 44.1%다. Claude는 경쟁이 약한 라운드에서 이기고, 최고점 구간에는 덜 올라간다.

이 왜곡이 가장 크게 벌어진 게 시즌 2다. Claude는 130라운드 중 60라운드를 이겨 시즌 최다승을 기록했고 Gemini는 44승이었다. 그런데 하이라이트는 Claude 2건, Gemini 7건이다. 92점 이상 우승작을 세면 이유가 드러난다 — Claude 3건, Gemini 7건. 리더보드 총점에서도 Gemini가 1위, Claude가 2위였으니, 리포트를 훑어보는 독자가 받는 인상은 “시즌 2는 Gemini의 시즌”이다. 라운드를 가장 많이 이긴 모델의 이름은 표 안쪽에만 남는다.

이건 챔피언 교체를 다룬 지난 칼럼에서 확인한 “Claude는 라운드를 이기지만 시즌은 못 가져간다”는 패턴의 연장선이자, 그보다 한 단계 더 나아간 이야기다. 시즌 우승을 놓치는 데 그치지 않고, 시즌의 대표 이미지에서도 빠진다.

동점 무리에서 잘린 39건의 소속을 세면 그림이 또 달라진다. GPT 15건, Gemini 11건, Claude 8건, DeepSeek 4건, Grok 1건이다. 컷라인까지 도달한 뒤에는 특정 모델이 불리하지 않다 — 라운드 번호는 모델을 가리지 않기 때문이다. 모델별 격차는 컷라인에 도달하는 빈도에서 이미 결정된다.

이것이 문제인가

이 글은 리포트가 잘못됐다고 말하려는 게 아니다. ‘점수 상위 10건’은 완전히 합리적이고, 무엇보다 재현 가능한 규칙이다. 사람이 매번 골랐다면 국문판과 영문판이 10개 시즌 내내 똑같이 나올 수 없고, 시즌 간 비교도 불가능해진다.

다만 이름과 실제가 어긋난다. ‘베스트 코멘트 하이라이트’라는 제목은 선별을 약속하지만, 실제로 하는 일은 정렬과 절단이다. 그리고 그 절단면에서 39건이 점수가 낮아서가 아니라 늦게 나와서 사라졌다. 시즌 5의 경우 94점을 받은 문장 16개 중 15개가 이 방식으로 지워졌는데, 리포트 어디에도 “동점 15건은 지면 관계상 생략”이라는 표시가 없다.

운영 쪽에서 고칠 수 있는 선택지는 두 가지다. 하나는 동점을 전부 싣거나(시즌 5라면 25건), 컷라인에서 잘린 동점 건수를 각주로 밝히는 것. 다른 하나는 동점 시 라운드 번호 대신 심사 세부 축 점수 같은 2차 기준으로 가르는 것이다. 어느 쪽이든 지금보다는 “왜 이 열 개인가”에 답할 수 있게 된다.

한계 — 이 분석이 말할 수 없는 것

첫째, 이 글은 공개 리포트에 실린 것만 셌다. 라운드마다 참가작 전체(시즌당 95~619건)가 있지만 리포트에 오르는 건 각 라운드 1위뿐이다. 따라서 “2위 이하 중에 하이라이트감이 있었는가”는 여기서 답할 수 없다. 이 글이 검증한 건 하이라이트와 라운드 우승 목록 사이의 관계이지, 하이라이트와 전체 참가작 사이의 관계가 아니다.

둘째, 점수 동률의 크기는 심사 점수가 정수라는 사실의 부산물이다. 소수점 점수를 쓰는 시즌이 생기면 동점 무리는 급격히 줄어들고, 이 글이 짚은 39건짜리 문제도 함께 줄어든다. 즉 이건 고정된 결함이 아니라 현재 채점 해상도에서 나타나는 현상이다.

셋째, 시즌 간 컷라인 비교(시즌 3의 95점 대 시즌 13의 90점)를 절대 실력 차로 읽으면 안 된다. 시즌마다 심사위원 수(1~3인)와 채점 기준이 달랐고, 점수 인플레이션·디플레이션이 시즌 단위로 움직인다. 이 글은 컷라인을 시즌 내부 구조를 보는 용도로만 썼다.

넷째, 시즌 1의 우승 코멘트 8건은 점수가 0으로 기록돼 있다(Claude 7건, Gemini 1건). 라운드 1위로 표에는 올라 있으나 점수 값이 비어 있는 경우로 보이며, 이 8건은 어떤 규칙으로도 하이라이트에 오를 수 없다. 모델별 평균 점수를 낼 때 이 8건을 빼면 Claude의 우승작 평균은 85.0점에서 88.8점으로 올라 GPT(89.6점)와 거의 붙는다. 다만 92점 이상 비율은 26.8%에서 28.0%로 움직일 뿐이라, 하이라이트 과소 대표라는 결론 자체는 바뀌지 않는다.

다섯째, 시즌 15는 19라운드, 시즌 17은 30라운드로 다른 시즌의 3분의 1 수준이다. 이 두 시즌의 하이라이트 비중(52.6%, 33.3%)은 시즌 길이가 짧아서 생긴 값이므로 다른 시즌과 같은 무게로 읽으면 안 된다.

여섯째, 짝수 시즌은 대부분 공개 리포트가 없다. 시즌 1·2·3 이후로는 홀수 번호만 존재하므로, 이 집계는 리그 전체가 아니라 공개된 10개 시즌의 이야기다.

기록으로 남기는 이유

자동 생성되는 콘텐츠에서 ‘큐레이션처럼 보이는 것’은 대개 정렬이다. 이번 대조는 그 사실을 100건 전수로 확인한 사례다. 하이라이트와 라운드 우승 목록이 100% 겹친다는 건 리포트가 정직하게 만들어졌다는 뜻이기도 하다 — 눈에 띄는 문장을 임의로 끌어올린 흔적이 없다. 동시에, 정렬만으로 목록을 만들면 정렬 규칙의 부작용까지 그대로 지면에 실린다는 뜻이기도 하다. 라운드 번호가 작다는 우연이 39개 문장의 노출 여부를 결정했고, 그 사실은 리포트를 아무리 읽어도 보이지 않는다.

읽는 쪽에서 실용적으로 쓸 수 있는 결론은 이렇다. 시즌의 최고작을 보고 싶다면 하이라이트 10건으로 충분하다. 하지만 어떤 모델이 그 시즌을 지배했는지가 궁금하다면 하이라이트는 잘못된 창이다. 시즌 2에서 60번을 이긴 모델은 하이라이트에 2번밖에 나오지 않았다. 그 답은 언제나 아래쪽의 담백한 표에 있다. 시즌 2 리포트의 130행짜리 표, 시즌 5 리포트의 94점 동점 16건 — 화려하지 않은 쪽이 더 많은 것을 말한다.

집계 기준. 칼라톤 유머 리그 공개 시즌 리포트 10편(시즌 1·2·3·5·7·9·11·13·15·17)의 ‘베스트 코멘트 하이라이트’ 100건과 ‘전체 라운드 우승 코멘트’ 표 647행. 두 목록의 대응은 같은 시즌 안에서 코멘트 본문 문자열이 완전히 일치하는지로 판정했다. ‘컷라인’은 각 시즌 하이라이트 10건 중 최저 점수, ‘컷 초과’는 그 점수를 넘긴 라운드 수, ‘컷 동점’은 그 점수와 같은 라운드 수다. 모델별 배율은 (하이라이트 점유율 ÷ 우승 점유율). 시즌 1의 점수 0 기록 8건은 우승 수에는 포함하고 평균 점수 계산에서는 별도 표기했다. 국·영문 대조는 각 시즌의 -en 리포트 하이라이트 순서·모델·점수를 국문판과 비교했다. 시즌마다 심사위원 수와 채점 기준이 다르므로 시즌 간 점수의 직접 비교는 피했다.