Executive Summary
블루스카이는 2025년 한 해 동안 라벨 1,000만 건 이상을 게시물에 붙였다. 이 라벨 기록은 프로토콜 설계상 누구나 열람할 수 있어서, 연구자 여덟 명이 플랫폼 바깥에서 그 성능을 직접 재는 일이 처음으로 가능했다. 그 감사가 내놓은 값은 두 개다.
결과는 방향에 따라 갈렸다. 아홉 개 유해 범주에서 고르게 뽑은 라벨 1,000건을 사람이 다시 읽었더니 주석자들은 시스템 판단의 83.7%에 동의했다. 붙인 라벨은 대체로 맞았다. 그런데 게시물 흐름에서 무작위로 뽑은 1,000건을 같은 방식으로 읽자 27건이 유해로 판정됐고, 그중 시스템이 라벨을 붙여 둔 것은 6건뿐이었다. 붙인 것만 검사하면 시스템은 잘하고 있고, 안 붙인 것까지 세면 열에 둘만 잡았다.
두 값이 한 시스템에서 동시에 나오는 이유는 파이프라인 안쪽에 있다. 논문이 역공학한 자동 처리 층은 상용 분류기가 이미지 한 장에 돌려주는 128개 신호 가운데 16개만 규칙으로 읽는다. 처리 시간도 두 갈래로 갈려서, 성적 콘텐츠 라벨은 중앙 5.5초 만에 붙고 혐오 표현 라벨은 중앙 13일이 걸린다. 라벨을 많이 붙이는 일과 빠짐없이 붙이는 일이 다른 일이라는 사실이, 이 감사에서 처음으로 숫자로 남았다.
0.222
기본 모더레이션 서비스의 재현율
무작위 1,000건에서 사람이 유해로 판정한 27건 가운데 라벨이 붙어 있던 것이 6건이다
0.837
같은 시스템의 정밀도
아홉 개 유해 범주에서 111건씩 고르게 뽑은 라벨 1,000건이 분모다
1,060만 건
감사 대상 라벨
2025년 한 해 동안 블루스카이가 게시물에 붙인 라벨 전체다
128 중 16
규칙 엔진이 읽는 분류기 신호
나머지 112개는 점수가 1.000이 나와도 아무 규칙이 걸려 있지 않다
공개 로그가 열어 준 첫 감사
콘텐츠 모더레이션이 얼마나 잘 돌아가는지는 지금까지 플랫폼 바깥에서 잴 수 없었다. 큰 플랫폼들은 해마다 투명성 보고서를 내고 삭제 건수와 사전 조치 비율을 공개하지만, 그 숫자는 전부 조치가 일어난 쪽의 기록이다. 조치가 일어나지 않은 게시물이 몇 건이고 그중 몇 건이 실제로 유해했는지는 그 보고서에 들어 있지 않고, 원래 흐름이 닫혀 있어 밖에서 표본을 뜰 수도 없다. 모더레이션을 라벨링 파이프라인으로 보면 이 상황의 정체가 분명해진다. 붙은 라벨의 정확성은 잴 수 있고 빠진 라벨의 양은 잴 수 없는 구조다.
블루스카이는 그 구조가 다르다. 이 서비스가 쓰는 AT 프로토콜은 게시물이 올라오는 흐름과 모더레이션 라벨이 붙는 흐름을 둘 다 공개 스트림으로 내보낸다. 무엇이 들어왔는지와 무엇에 라벨이 붙었는지를 같은 기간에 대해 밖에서 대조할 수 있다. 입력과 출력이 모두 열려 있어야 성립하는 감사가 여기서 처음 가능해졌다.
페블러스 원본 도식. 감사 논문 §1의 AT 프로토콜 서술(입력·출력 이중 공개 스트림)을 도식화했다.
그 일을 한 논문이 「Characterizing Bluesky Content Moderation Service: From Automation of Service to Landscape of Harms」다. 2026년 9월 10일 arXiv에 올라왔고, 저자는 여덟 명, 분류는 cs.CY다. 초록 페이지의 Comments 필드에 소셜 미디어 분야의 주요 학회인 ICWSM 2027 게재 승인을 받았다고 적혀 있다. 프리프린트로 공개돼 있지만 심사를 거친 연구다.
감사 대상은 블루스카이가 2025년 한 해 동안 붙인 라벨이다. 논문이 밝힌 규모는 1,060만 건이고, 논문 Table 2에 실린 13개 라벨의 건수를 우리가 합산하면 10,681,824건이 나온다. 이 라벨을 붙이는 주체는 블루스카이가 직접 운영하는 기본 모더레이션 서비스이며, 논문은 이를 줄여 BMS라 부른다. 이용자가 따로 구독할 수 있는 서드파티 라벨러는 이 감사의 대상이 아니다. 뒤에 나오는 모든 값은 기본 서비스 하나에 대한 값이다. 논문 자신도 연합 생태계 전체로 감사를 넓히는 것을 다음 과제로 남긴다.
감사의 뼈대는 표본을 두 벌 만든 설계다. 한 벌은 라벨이 붙어 있는 게시물에서 뽑았고, 다른 한 벌은 라벨 여부와 상관없이 게시물 흐름 전체에서 무작위로 뽑았다. 두 표본이 답하는 질문이 다르다.
| 표본 | 어디서 뽑았나 | 답하는 질문 | 나온 값 |
|---|---|---|---|
| 라벨된 게시물 1,000건 | BMS가 라벨을 붙인 게시물. 아홉 개 유해 범주에 111건씩 고르게 층화 | 붙인 라벨 중 맞은 것은 얼마인가 | 정밀도 0.837 |
| 무작위 게시물 1,000건 | 게시물 원 흐름에서 무작위. 라벨 여부를 보지 않고 뽑음 | 붙였어야 할 것 중 붙인 것은 얼마인가 | 재현율 0.222 |
감사 논문의 표본 설계. 두 값은 서로 다른 표본에서 나온 서로 다른 질문의 답이다.
주석은 사람이 했다. 공저자 두 명이 각 게시물을 독립으로 판정하고 갈리면 세 번째 주석자가 끊었다. 유해한가 아닌가만 묻는 이항 과제에서 두 주석자의 일치도는 코헨의 카파 0.802였고, 2,000건 가운데 1,827건에서 판정이 같았다. 라벨 품질 감사에서 이 정도 일치도면 주석 설계 자체를 의심할 이유는 없다.
한계도 하나 있다. 이 감사는 사후 수집이라 조치와 수집 사이에 삭제된 게시물은 잡히지 않는다. 논문이 스스로 밝히는 사항이고, 뒤에서 플랫폼 자체 보고서의 건수와 논문의 건수를 비교할 때 다시 필요해진다.
붙인 라벨은 맞았고, 안 붙인 것이 훨씬 많았다
정밀도와 재현율은 이름이 나란해서 같은 자로 재는 두 값처럼 읽히지만, 분모가 다르다. 정밀도는 붙인 라벨 가운데 맞은 것의 비율이라 이미 시스템이 손댄 것만 본다. 재현율은 붙였어야 할 것 가운데 붙인 것의 비율이라 시스템이 손대지 않은 것까지 봐야 한다. 그래서 정밀도는 라벨된 게시물에서 표본을 뜨면 되고, 재현율은 전체 흐름에서 표본을 떠야 한다. 그래서 감사자들은 표본을 두 벌 만들었다.
2.1붙인 라벨의 83.7%에 사람이 동의했다
먼저 붙은 쪽이다. 라벨된 게시물 1,000건에서 주석자 다수결과 시스템 판단이 일치한 비율이 83.7%였다. 이 값에는 조건이 하나 붙는다. 이 1,000건은 아홉 개 유해 범주에 111건씩 고르게 뽑은 층화 표본이다. 실제 모집단은 이 아홉 개 라벨 가운데 porn 한 종류가 70.9%를 차지할 만큼 기운 분포라서, 0.837을 "블루스카이 라벨의 83.7%가 정확했다"로 옮기면 균등 표본의 값이 모집단의 값으로 둔갑한다. 정확한 진술은 "아홉 개 범주에서 고르게 뽑은 1,000건에서 0.837"이다.
정밀도는 라벨 종류마다 고르지 않고, 0.837은 그 편차를 평균한 값이다. 논문 Table 4는 라벨 아홉 종을 자동 처리 계열과 사람 개입 계열로 나눠 각각의 정밀도를 적어 두었고, 두 계열의 간격이 상당하다. 표본이 범주당 111건으로 거의 같아서, 각 행 정밀도의 단순 평균이 그대로 0.837이 된다.
| 계열 | 라벨 | 표본 수 | 정밀도 | 루트 글 | 답글 |
|---|---|---|---|---|---|
| 자동 | porn | 111 | 1.000 | 1.000 (102) | 1.000 (9) |
| 자동 | sexual | 111 | 0.856 | 0.884 (95) | 0.688 (16) |
| 자동 | nudity | 111 | 0.937 | 0.940 (100) | 0.909 (11) |
| 자동 | self-harm | 111 | 0.919 | 0.939 (99) | 0.750 (12) |
| 자동 | graphic-media | 111 | 0.802 | 0.814 (86) | 0.760 (25) |
| 자동 라벨 소계 | 555 | 0.903 | 0.919 (482) | 0.795 (73) | |
| 사람 | intolerant | 111 | 0.667 | 0.609 (23) | 0.682 (88) |
| 사람 | rude | 112 | 0.509 | 0.667 (3) | 0.505 (109) |
| 사람 | threat | 111 | 0.892 | 0.812 (16) | 0.905 (95) |
| 사람 | sexual-figurative | 111 | 0.955 | 0.952 (104) | 1.000 (7) |
| 수동 라벨 소계 | 445 | 0.755 | 0.877 (146) | 0.696 (299) | |
| 전체 | 1,000 | 0.837 | 0.909 (628) | 0.715 (372) | |
감사 논문 Table 4(라벨별 정밀도) 전문. 괄호 안은 해당 칸의 게시물 수. 계열 구분은 논문이 붙인 것이다.
아래쪽 두 행이 이 표의 핵심이다. rude 라벨이 붙은 게시물은 두 건 중 한 건꼴로 주석자가 "안전"이라고 봤고, intolerant도 셋 중 하나가 갈렸다. 반대로 porn은 111건 전부가 일치했다. 자동으로 붙는 라벨일수록 정밀도가 높고 사람이 판단하는 라벨일수록 낮다는 이 순서는, 시스템 성능만으로 읽을 수 있는 그림이 아니다. 판정이 갈린 이유가 주석 쪽에 있을 수도 있기 때문이다.
층화 표본이 모집단을 대표하지 않는다는 사실은 반대 방향으로도 작동한다. 각 라벨의 표본 정밀도를 그 라벨의 실제 건수로 가중해 우리가 다시 계산하면 0.953이 나온다. 정밀도 1.000인 porn이 모집단에서는 70.9%를 차지하는데 표본에서는 11.1%만 차지하기 때문이다. 논문에 없는 우리 계산이고, 각 라벨의 표본 정밀도가 그 라벨 전체에 그대로 적용된다는 가정 위에 선 값이다. 그래도 적어 두는 편이 낫다. 감사의 결론은 "블루스카이 라벨이 부정확하다"가 아니다.
2.2무작위 1,000건에서 사람은 27건을 찾았고 시스템은 6건을 잡았다
반대 방향으로 재자 그림이 뒤집혔다. 게시물 흐름에서 라벨 여부를 보지 않고 무작위로 뽑은 1,000건을 사람이 처음부터 끝까지 읽었다. 주석자들은 그중 27건을 유해로 판정했고, 그 27건 가운데 시스템이 이미 라벨을 붙여 둔 것은 6건이었다. 재현율 0.222다. 논문 초록이 말하는 4.5배가 이 27과 6의 비율이다. 사람 주석자가 같은 표본에서 시스템보다 4.5배 많은 유해 게시물을 찾아냈다. 나머지 21건, 즉 사람이 찾은 것의 77.8%는 라벨 없이 흐름을 그대로 통과했다.
페블러스 원본 도식. 감사 논문 §5.1의 무작위 표본 결과(1,000건 중 사람 판정 27건, 그중 시스템 라벨 6건)를 격자로 옮겼다. 27칸의 위치는 그림을 위한 배치이며 실제 순서가 아니다.
이 격자를 보면 감사의 힘과 한계가 같이 보인다. 색칠된 칸이 스물일곱 개뿐이라는 사실을 밖에서 확인했다는 것이 이 감사의 힘이다. 그 스물일곱이 분모라는 것이 한계다. 한 건만 이쪽저쪽으로 움직여도 재현율은 0.185에서 0.259 사이를 오간다. 논문 자신은 이 표본 크기를 따로 경고하지 않는다. 그러니 이 값은 정밀한 추정치가 아니라 방향을 가리키는 값으로 읽는 편이 맞다. 아래에서도 그렇게 읽는다.
2.3논문의 한계 절은 시스템을 옹호하는 쪽이다
감사 논문이 스스로 적어 둔 한계는 대개 시스템에 유리하게 작동한다. intolerant로 라벨된 게시물의 79%, rude의 97%, threat의 85%가 다른 글에 달린 답글이었다. 주석자들은 그 답글을 원 글 없이 낱개로 읽고 판정했다. 논문의 표현을 옮기면, 블루스카이 모더레이터에게 있었을 추가 맥락이 주석자에게는 없었을 수 있다는 것이다.
이 추정은 숫자로도 뒷받침된다. 앞의 표 맨 아랫줄을 보면 루트 글에서 시스템과 사람의 일치율은 90.9%인데 답글에서는 71.5%로 떨어진다. 격차가 19.4%p다. 맥락이 잘린 자리에서 사람의 판정이 흔들린 것이지 시스템이 그만큼 더 틀린 것이라고 단정할 수 없다. 정밀도가 낮게 나온 라벨이 하필 답글 비중이 높은 라벨과 겹친다는 점도 같은 방향을 가리킨다.
논문의 정성 분석도 여기에 붙는다. 주석자 다수결이 "안전"이라고 본 50건을 다시 들여다본 결과 두 부류가 주를 이뤘다. 하나는 부모 스레드 없이 답글만 읽어 어조와 의도를 판단할 수 없던 경우, 다른 하나는 시각적으로 애매한 콘텐츠였다. 자해 이미지를 닮은 바디 아트, 그래픽으로 잡힌 영화 스틸, 성적 의도가 없는 앨범 커버가 그 예로 적혀 있다. 라벨 품질을 다루는 사람에게 이 목록은 낯설지 않다. 주석자에게 어느 정도의 맥락을 줄 것인가가 곧 라벨 품질의 일부라는 이야기이기 때문이다.
처리 시간이 초 단위와 일 단위로 갈린다
감사자들은 라벨이 붙은 시각과 게시물이 올라온 시각의 차이도 함께 쟀다. 라벨 한 건마다 지연 시간이 남기 때문에 라벨 종류별로 분포를 그릴 수 있고, 그 분포가 두 덩어리로 갈린다. 어떤 라벨은 중앙값이 몇 초이고 어떤 라벨은 며칠이다. 이 구분은 이 글이 지어낸 것이 아니라 논문 Table 3의 소제목이다. 논문은 앞쪽 묶음에 "자동화 가능성 있는 라벨", 뒤쪽 묶음에 "사람 개입이 큰 라벨"이라는 이름을 붙였다.
페블러스 원본 도식. 감사 논문 Table 3의 13개 행을 모두 옮겼다. 이름 옆 건수는 Table 3의 표본 수로, 타임스탬프를 잴 수 있는 부분집합이라 Table 2의 라벨 총계와는 다르다.
가운데가 비어 있다는 점이 이 그림의 요지다. 1분에서 1시간 사이에는 아무 라벨도 없다. 성적 콘텐츠와 스팸은 올라온 지 몇 초 만에 처리되고, 혐오와 위협처럼 판단이 미묘하고 위험이 큰 라벨은 8시간에서 13일이 걸린다. 서로 다른 처리 경로 두 개가 한 시스템 안에 들어 있다. 참고로 이 표에서 porn의 중앙 지연은 5.5초다. 같은 논문 서론에는 7.1초로 적혀 있지만 분위별 값이 모두 실린 Table 3 쪽을 정본으로 본다.
빠른 쪽에도 긴 꼬리는 있다. nudity는 중앙 8.1초인데 95분위가 32일이고, self-harm은 중앙 10.2초에 95분위가 10.3일이다. 자동으로 붙는 라벨 안에도 사람 손을 타는 경로가 섞여 있다는 신호다.
3.1플랫폼 자신도 같은 이야기를 한다
지연 시간으로 자동과 수동을 갈라 본 것은 밖에서 한 추정이다. 그런데 안에서 한 발표가 같은 그림을 그린다. 블루스카이가 2026년 1월 29일에 낸 2025년 투명성 보고서는 라벨별 건수와 함께 수동으로 적용된 비율을 적어 두었다. 그 열을 그대로 옮기면 아래와 같다.
| 블루스카이 자체 라벨명 | 2025년 적용 건수 | 수동 적용 비율 |
|---|---|---|
| adult | 10.79M | 1% |
| suggestive | 3.42M | 3% |
| spam | 761.77K | 1% |
| nudity | 389.44K | 18% |
| needs-review | 370.14K | 0% |
| rude | 295.38K | 100% |
| sexual-figurative | 152.58K | 0% |
| graphic-media | 127.46K | 3% |
| !hide | 68.26K | 2% |
| intolerant | 60.20K | 100% |
| self-harm | 20.92K | 8% |
| threat | 15.86K | 100% |
블루스카이 2025년 투명성 보고서(2026-01-29)의 상위 라벨 표. 라벨명은 플랫폼이 쓰는 이름이라 논문의 이름과 다르다.
논문이 며칠 걸린다고 잰 세 라벨이 플랫폼 표에서 수동 100%다. 논문이 초 단위라고 잰 라벨들은 1%에서 3% 사이다. 같은 보고서는 적용된 라벨의 95.34%가 자동 시스템에서 나온다고 적고, 업로드되는 모든 이미지와 영상을 제3자 제공사인 Hive에 보내 평가받는다고 밝힌다. 논문 쪽에서도 자기 분석이 블루스카이 공식 투명성 보고서를 뒷받침한다고 쓴다. 밖의 추정과 안의 발표가 어긋나지 않는다. 다만 개별 라벨 한 건이 자동으로 붙었는지 사람이 붙였는지까지는 어느 쪽 자료로도 알 수 없다.
한 칸만 어긋나는데, 그 어긋남도 논문이 풀어 둔다. sexual-figurative는 플랫폼 표에서 수동 0%인데 지연은 중앙 10.8일이다. 블루스카이의 2024년 모더레이션 보고서가 이 라벨은 주로 이용자가 자동 오분류에 이의를 제기했을 때 붙었다고 밝히면서 설명이 맞춰진다. 사람 손이 닿은 경로가 최초 판정이 아니라 사후 이의제기였던 것이다.
3.2라벨의 94%가 빠른 쪽에 있다
두 경로는 크기가 크게 다르다. 논문 Table 2에 실린 13개 라벨의 건수를 우리가 합산하고, 논문 자신이 나눈 두 묶음으로 갈라 보면 자동화 가능성 있는 8종이 전체의 94.2%, 사람 개입이 큰 5종이 5.8%다. 한 종류만 따로 떼면 porn이 68.9%로 전체의 삼분의 이를 넘고, 성적 콘텐츠 계열 네 종을 합치면 93.7%다.
페블러스 원본 도식. 감사 논문 Table 2의 13개 행을 합산해(10,681,824건) 논문 자신의 두 묶음으로 나눈 우리 계산이다.
이 분포를 유해 콘텐츠의 실제 분포로 읽으면 안 된다. 업로드되는 모든 이미지와 영상이 자동 검사를 거치고 그 검사가 성적 콘텐츠를 가장 잘 잡기 때문에 나온 모양이다. 즉 이것은 탐지 가능성의 분포다. 자동화하기 쉬운 유형이 전체 건수를 만들고, 그 유형의 높은 정밀도가 전체 평균을 끌어올린다. 판단이 어려운 유형에서 빠진 것들은 세어지지 않으니 어떤 지표에도 나타나지 않는다.
분류기는 128개 신호를 만들고 규칙은 16개를 읽는다
여기까지는 재현율이 낮다는 관찰이다. 감사 논문이 다른 감사들과 갈리는 지점은 그다음이다. 저자들은 낮은 재현율의 이유를 파이프라인 안쪽에서 역공학했다. 블루스카이의 자동 처리는 두 층으로 되어 있고, 두 층 사이에서 신호가 버려진다.
위층은 Hive AI다. 상용 멀티헤드 시각 분류기로, 이미지 한 장을 넣으면(영상은 프레임 단위로) 54개 헤드에 걸친 128개 클래스마다 점수를 돌려준다. 다섯 개 도메인으로 나뉘어 성적 콘텐츠에 26헤드 59클래스, 폭력과 유혈에 10헤드 29클래스, 마약과 악습에 6헤드 15클래스, 혐오 이미지에 5헤드 10클래스, 그 밖의 이미지 속성에 7헤드 15클래스가 배정돼 있다. 한 헤드 안의 클래스들은 서로 배타적이고 점수의 합이 1이 된다.
아래층은 Automod다. 블루스카이가 2024년 4월에 공개한 오픈소스 규칙 엔진으로, Hive가 돌려준 점수에 하드코딩된 임계값을 걸어 라벨로 번역한다. yes_self_harm 점수가 0.96 이상이면 self-harm, yes_sexual_activity가 0.90 이상이면 porn을 붙이는 식이고, 성적 계열 라벨은 porn에서 sexual, nudity 순의 우선순위 캐스케이드를 탄다. 문제는 이 규칙이 읽는 클래스의 수다. 논문은 이렇게 적는다. Automod는 전체 128개 클래스와 54개 헤드 가운데 10개 헤드에 걸친 16개 클래스에만 작동하며, 나머지 44개 헤드의 112개 클래스는 사용되지 않는다.
저자들이 붙인 단서도 같이 봐야 한다. 공개된 Automod 코드는 2024년 4월판이고, 지금도 블루스카이가 정확히 이 규칙을 쓰는지는 밖에서 확인할 수 없다. 논문의 표현으로는 블루스카이가 스스로 내놓은 것 가운데 가장 나은 근사다. 그래서 뒤에 나오는 실험은 이 근사가 타당한지를 따로 검증한다.
페블러스 원본 도식. 감사 논문 부록 C의 서술을 옮겼다.
4.1저자들은 버려진 신호를 실험으로 셌다
구조를 읽는 것과 그 구조가 실제로 무엇을 놓치는지 재는 것은 다른 일이다. 논문 §5.2의 설계가 후자를 한다. 절차는 네 단계다.
- 라벨된 1,000건에서 자동 계열 라벨 다섯 종에 이미지가 한 장인 조건을 걸어 336건을 추렸다.
porn78건,sexual67건,nudity72건,self-harm57건,graphic-media62건이다. - 각 건에 대해 라벨이 없는 게시물 가운데 의미적으로 가장 가까운 것을 하나씩 찾아 짝 336건을 만들었다. 2025년 3월부터 6월까지의 게시물 4,000만 건이 검색 모수였다. 표본이 336건에 그친 이유는 Hive API의 개발자 호출 한도가 하루 100건이기 때문이라고 논문이 밝힌다.
- Automod가 배포 시스템의 대리로 쓸 만한지 먼저 확인했다. 이미 라벨이 붙은 336건을 Automod에 다시 통과시키자 311건, 즉 92.6%를 독립적으로 잡아냈다. 어긋난 25건은 개발자에게 열린 Hive API 판본이 기업용과 달라서일 수 있다고 논문이 적는다.
- 그 Automod에 짝 336건을 넣었더니 잡힌 것은 47건, 14.0%뿐이었다. 남은 289건을 사람이 다시 읽어 36건을 유해로 판정했다. 주석자 두 명의 일치도는 카파 0.63이었다.
36건은 336건의 10.7%다. 저자들은 이 값을 자동 라벨 재현율 손실의 하한이라고 부른다. 의미적으로 가장 가까운 이웃 하나씩만 뒤져서 나온 값이라 실제 누락은 이보다 클 수밖에 없다.
4.2놓친 36건은 두 갈래로 갈린다
여기서부터가 이 논문의 가장 실용적인 대목이다. 저자들은 36건을 하나씩 열어 Hive 점수를 확인하고 두 실패 모드로 나눴다. 둘은 고치는 방법이 다르다.
| 실패 모드 | 건수 | 무슨 일이 일어났나 | 근거 점수 |
|---|---|---|---|
| 근소한 임계값 미달 | 22건 (61.1%) | Automod가 읽는 헤드에서 점수가 나오기는 하는데 임계값 바로 아래에 머문다 | yes_sexual_intent 중앙 격차 0.28, yes_self_harm 0.21, yes_female_underwear 0.08, yes_male_underwear 0.07 |
| 규칙 집합의 공백 | 14건 (38.9%) | Automod가 읽는 헤드 어디에서도 점수가 안 나오는데, 규칙 밖 클래스가 0.80 이상을 찍는다 | general_suggestive 14건 중앙 0.979, yes_cleavage 7건 중앙 1.000, yes_male_shirtless 2건 중앙 1.000 |
감사 논문 §5.2의 실패 모드 분류. 근거 점수의 건수는 한 게시물이 여러 클래스에서 점수를 받을 수 있어 합이 14를 넘는다.
앞쪽 22건은 임계값의 문제다. yes_female_underwear와 yes_male_underwear는 임계값이 0.98인데 실제 점수와의 중앙 격차가 0.08과 0.07이다. 숫자 하나만 내리면 잡히는 것들이 여기에 있고, 동시에 숫자 하나만 내리면 오탐이 늘어나는 것들도 여기에 있다. 뒤쪽 14건은 성격이 다르다. 저자들의 서술로는, 이 게시물들은 해당 시각 범주가 있다는 사실에 어떤 규칙도 작동하지 않기 때문에 Automod를 통째로 통과한다. 점수가 1.000이어도 그 점수를 읽는 코드가 없으면 아무 일도 일어나지 않는다.
저자들의 진단은 여기서 한 층 더 들어간다. 실패의 자리는 콘텐츠가 애매한 데가 아니라 연속 점수를 이진 결정으로 옮기는 번역 층이라는 것이다. 논문이 든 예는 이렇다. yes_sexual_activity에서 0.89를 받은 게시물은 0.10을 받은 게시물과 똑같이 취급된다. 규칙 엔진이 아무것도 기억하지 않기 때문이다.
그렇다고 저자들이 규칙 엔진을 갈아엎으라고 말하지는 않는다. 규칙의 경직성에는 설계상의 이유가 있다는 점을 논문이 명시한다. 규칙은 감사할 수 있고, 왜 그 판정이 나왔는지 설명할 수 있으며, 초당 수십 건이 들어오는 흐름에서도 값싸게 돌아간다. 모델을 규칙 자리에 바로 앉히면 그 세 가지를 함께 잃는다. 규칙을 쓰기로 한 선택 자체가 잘못은 아니다. 그 선택이 버리는 신호의 양을 아무도 세지 않았을 뿐이다.
파운데이션 모델은 대안이 되는가
규칙 엔진이 점수를 버린다면 점수를 그대로 읽는 모델을 쓰면 되지 않는가. 이 질문에 답하는 실험이 하루 앞서 arXiv에 올라왔다. 「Can Foundation Models Moderate Online Content?」는 2026년 9월 9일 제출된 프리프린트이고, 블루스카이 실제 게시물로 만든 ModerationBench라는 벤치마크를 내놓는다.
이 논문은 감사 논문과 남남이 아니다. 저자 여섯 명이 겹치는 같은 연구진의 자매 연구이고, 감사 논문이 본문에서 이 논문을 해법 방향으로 인용한다. 독립된 두 연구가 같은 결론에 닿았다고 읽으면 사실이 아니다. 한 묶음의 연구가 문제와 후보 해법을 나눠 맡은 것에 가깝다.
벤치마크의 구성은 이렇다. 2025년 3월부터 12월까지 게시물 흐름에서 11.4억 건과 기본 모더레이션 서비스의 라벨 1,190만 건을 모으고, 인증된 기관 계정 194곳에서 84.4만 건을 따로 받았다. 여기서 네 갈래로 1,000건씩, 모두 4,000건을 뽑아 사람이 주석했다. 주석자 일치도는 카파 0.813이었다. 네 갈래는 무작위 게시물, 이미 라벨된 게시물, 라벨된 것과 의미적으로 가까운데 라벨이 없는 게시물, 그리고 기관 계정에서 온 안전한 게시물이다.
| 갈래 | 모델 | 정밀도 | 재현율 | F₁ |
|---|---|---|---|---|
| 무작위 게시물 | gemini3.5 | 0.55 | 0.67 | 0.60 |
| gemma4 | 0.42 | 0.67 | 0.52 | |
| qwen3.5 | 0.44 | 0.62 | 0.52 | |
| gpt5.6 | 0.31 | 0.58 | 0.41 | |
| 배포 시스템 | 1.00 | — | 0.22 | |
| 라벨된 게시물 | 모델 네 종 | 0.87~0.88 | 0.96~0.98 | 각 0.92 |
| 배포 시스템 | 0.83 | 1.00 | 0.91 | |
| 라벨 근접 게시물 | gemini3.5 | 0.80 | 0.87 | 0.83 |
| gemma4 | 0.75 | 0.88 | 0.81 | |
| gpt5.6 | 0.72 | 0.86 | 0.79 | |
| qwen3.5 | 0.72 | 0.84 | 0.77 | |
| 배포 시스템 | 0.0 | 0.0 | 0.0 | |
| 안전한 게시물 | 전 모델 | — | — | 플래그 없음 |
자매 논문 ModerationBench Table 4. 라벨 근접 갈래의 배포 시스템 0.0은 라벨이 없는 게시물만 모아 만든 갈래라서 구조상 0이지 성능이 아니다. 무작위 갈래에서 배포 시스템의 재현율 칸은 비워 두었다. 두 논문 어디에도 이 지표의 산식이 적혀 있지 않아 앞 절에서 인용한 감사 논문의 재현율과 같은 자로 잰 값인지 확인할 수 없다.
무작위 갈래만 떼어 보면 격차가 크다. 최고 모델의 F₁이 0.60이고 배포 시스템은 0.22다. 이 비교에 조건절을 반드시 붙여야 하는 이유가 같은 표 안에 있다. 이미 라벨된 갈래에서 배포 시스템의 F₁은 0.91로 최고 모델의 0.92와 사실상 동률이고, 정밀도만 보면 무작위 갈래에서 배포 시스템이 1.00으로 모든 모델을 앞선다. 조건 없이 "파운데이션 모델이 배포 시스템을 세 배 앞섰다"고 쓰면 논문이 하지 않은 주장이 된다.
페블러스 원본 도식. 자매 논문 Table 4에서 갈래마다 가장 높은 모델 값과 배포 시스템 값만 뽑아 그렸다.
라벨 근접 갈래의 구성을 다시 보면 앞 절의 감사 결과와 맞물리는 대목이 나온다. 이 갈래는 라벨된 게시물과 의미가 가까운데 라벨은 붙지 않은 글만 모은 것인데, 사람이 읽어 보니 34.6%가 유해로 판정됐다. 같은 벤치마크의 무작위 갈래에서 사람 판정률이 2.7%였으니 열 배가 넘는 차이다. 라벨이 붙은 자리 바로 옆이 비어 있다. 앞 절의 27건 중 6건이 가리킨 방향과 같다. 다만 두 값은 같은 연구진이 같은 플랫폼에서 뜬 표본이라 서로를 독립으로 확인해 주지는 않는다.
자매 논문이 정작 답하려는 질문은 모델이 배포 시스템보다 나은가가 아니다. 모델에 정책을 문장으로 설명해 주는 쪽과 과거 모더레이션 사례를 보여 주는 쪽 가운데 어느 것이 정책을 더 잘 집행하는가다. 논문은 앞쪽을 지시 기반, 뒤쪽을 사례 기반이라 부르고 부제도 그 둘의 비교로 달아 두었다. 사례 기반에서는 라벨마다 어떤 사례를 골라 줄지를 세 갈래로 나눠 시험했다. 라벨별 평균 임베딩에 가장 가까운 게시물을 대표로 뽑는 방식, 판정할 게시물과 가장 비슷한 것을 그때그때 뽑는 방식, 그냥 무작위로 뽑는 방식이다.
두 방식의 최고 성적은 거의 붙었다. 사례 기반에서 가장 좋았던 설정으로 gemini3.5가 무작위 갈래에서 F₁ 0.59를 냈고, 지시 기반의 0.60과 사실상 같다. 갈린 것은 성적이 아니라 안정성이다. 열 개 모델을 합쳐 보면 무작위 갈래의 오탐률이 대표 사례를 줄 때 13.6%, 무작위 사례를 줄 때 17.2%인데, 판정 대상과 가장 비슷한 사례를 줄 때는 28.7%로 뛴다. 비슷한 것을 더 많이 보여 줄수록 모델이 더 많이 플래그한 것이다. 오탐이 쏠린 자리도 한 곳이다. 사례 기반 실험 전체에서 나온 오탐 5,707건 가운데 2,470건, 그러니까 43%가 rude 하나에서 나왔다. 앞 절 표에서 배포 시스템의 정밀도가 0.509로 가장 낮았던 라벨도 rude였고, 플랫폼 표에서 그 라벨은 수동 적용 100%다. 사람이 붙이든 모델이 붙이든, 판정 기준을 글로 적기 어려운 범주에서 판단이 갈린다.
5.1전용 안전 모델이 범용 모델보다 못했다
이 실험에서 라벨 품질을 다루는 쪽이 가장 눈여겨볼 결과는 따로 있다. 안전 판정을 위해 따로 만든 모델들이 같은 과제에서 범용 모델에 밀렸다. 무작위 갈래에서 llama-guard는 자체 정책으로 F₁ 0.14, 블루스카이 정책을 줘도 0.24였다. llama-guard의 기반 모델인 범용 llama4는 같은 갈래에서 0.44다. shieldstral은 F₁ 0.13이면서 게시물의 34.21%를 플래그했다. 저자들의 결론은 전용 안전 모델이 그대로 갖다 쓰기에는 효과적이지 않다는 것이다.
같은 논문의 다른 결과가 그 이유를 짐작하게 한다. 모델에 정책을 얼마나 자세히 주느냐가 결과를 크게 바꿨다. 라벨 이름만 주면 모델은 지나치게 많이 플래그하고, 여기에 왜 그것이 문제인지와 어떻게 판정하는지를 더하면 플래그 비율이 대략 절반으로 줄면서 F₁이 최대 25% 올랐다. 전용 안전 모델은 자기 정책이 이미 안에 박혀 있어서 이 조정을 받을 자리가 좁다.
정책 문서의 분량도 논문이 세어 두었다. 블루스카이 3,014단어, X 9,412단어, TikTok 10,643단어, Meta 26,298단어다. 블루스카이 정책이 가장 짧고, 짧은 정책일수록 규칙으로 번역할 때 해석의 여지가 넓어진다.
5.2처리량과 비용이 교체를 막는다
벤치마크 점수가 곧 교체 가능성은 아니다. 논문이 밝힌 처리 속도는 gemma4가 전체 정책을 받아 텍스트와 이미지가 함께 있는 게시물을 분당 약 49건 처리하는 수준이다. 같은 논문이 모은 게시물은 2025년 3월부터 12월까지 11.4억 건이고, 이를 초 단위로 환산하면 초당 약 43건이다. 인스턴스 한 대로는 약 53배가 모자란다는 뜻이 된다.
비용도 같은 방향이다. 논문이 적은 프런티어 모델 API 비용은 4,000건 벤치마크 한 번에 gemini 계열 26~49달러, gpt 계열 17~63달러다. 건당 0.004~0.016달러이고, 11.4억 건에 단순 비례로 곱하면 456만 달러에서 1,824만 달러 사이가 된다. 이 11.4억 건은 2025년 3월부터 12월까지 열 달 치이므로 열두 달로 늘리면 액수도 그만큼 커진다. 배치 처리와 캐싱, 사전 필터링을 하나도 넣지 않은 순진한 선형 외삽이므로 정확한 견적은 아니고 자릿수만 보는 계산이다. 지금 놓고 볼 선택지는 규칙 엔진을 모델로 교체하는 것이 아니라 두 층을 겹쳐 쓰는 쪽이다. 논문 자신도 실시간 스트리밍 환경에서 검증하지 못한 점을 한계로 적는다.
사례 기반은 이 벽을 더 높인다. 대표 사례를 함께 넣으면 gemma4의 처리량이 분당 10건으로 떨어져 정책 전문만 줄 때보다 6.5배 느려진다. 사례마다 이미지가 딸려 들어가 모델이 처리할 시각 입력이 늘어나기 때문이다. 프런티어 모델의 벤치마크 라벨링 비용도 gemini3.5가 2.7배, gpt5.6이 32배로 뛴다. 성적은 지시 기반과 거의 같은데 시간과 비용만 오르는 셈이라, 논문은 사례 기반을 실용적 선택지로 밀지 않는다. 판정 기준을 문장으로 적어 두는 쪽이 과거 판정 사례를 쌓아 두는 쪽보다 싸게 먹힌다는 결론이다.
커버리지를 공개하는 플랫폼은 아직 없다
이 감사를 블루스카이의 성적이 나쁘다는 이야기로 읽기는 쉽다. 그런데 견줄 자료가 아예 없다. 다른 플랫폼은 이런 값을 낼 수 있는 기록 자체를 밖에 내놓지 않는다.
업계가 공개하는 지표는 저마다 분모가 다르고, 어느 것도 "붙였어야 할 것 중에 얼마를 붙였나"를 묻지 않는다.
| 지표 | 쓰는 곳 | 분모 | 재현율과 같은가 |
|---|---|---|---|
| 삭제·조치 건수 | 대부분의 플랫폼 | 없음. 절대 건수다 | 아니다 |
| 사전 조치 비율 | Meta | 조치한 콘텐츠 건수 | 아니다 |
| 위반 노출 비중 | Meta | 콘텐츠 조회수 | 아니다 |
| 자동 적용 비율 | 블루스카이 95.34% | 적용된 라벨 건수 | 아니다 |
| 재현율 | 공개하는 곳이 없다 | 실제 유해 게시물 수 | — |
각 지표의 분모는 해당 기관의 공개 정의를 따랐다. 위반 노출 비중(prevalence)과 사전 조치 비율(proactive rate)의 정의는 Meta 투명성 센터의 원문 설명이다.
Meta의 위반 노출 비중은 재현율과 가장 가까운 사촌이다. 위반 콘텐츠가 조회된 양이 전체 조회량에서 차지하는 비중을 재기 때문에 "빠져나간 것"을 향한다는 점에서 방향이 같다. 그런데 분모가 조회수라서 조회가 적은 게시물은 사실상 세어지지 않는다. 사전 조치 비율은 이름과 달리 커버리지 지표가 아니다. 분모가 조치한 콘텐츠 건수라서, 조치 자체를 안 한 콘텐츠는 이 값의 어느 자리에도 들어오지 않는다.
규제 쪽 자료에서도 사정이 비슷하다. 유럽연합의 디지털서비스법 투명성 데이터베이스는 플랫폼이 조치할 때마다 사유를 제출하게 하는데, 감사 논문이 관찰한 바로는 그 데이터베이스에서 가장 흔한 사유가 "그 밖의 제공자 약관 위반"이라는 무정보성 문구다. 조치 건수와 사유를 모아도 커버리지는 나오지 않는다. 참고로 이 데이터베이스에 제출 기록이 있는 플랫폼 679곳의 목록을 대조해 보면 블루스카이는 거기에 없다.
블루스카이가 이 숫자를 갖게 된 것은 시스템이 나빠서가 아니라 기록이 열려 있어서다. 감사 가능성은 성능의 문제가 아니라 구조의 문제이며, 닫힌 플랫폼에서는 입력 쪽 표본을 뜰 수 없어 재현율을 잴 방법 자체가 없다. 업계 전체에서 이 칸은 비어 있고, 비어 있다는 사실조차 지금까지는 잘 보이지 않았다.
페블러스 관심의 이유
페블러스는 데이터를 진단하고 품질 성적서를 발급하는 일을 한다. 소셜 플랫폼의 모더레이션 감사가 그 일과 닿는 지점은 주제가 아니라 재는 방식에 있다. 이 감사는 라벨 품질을 재는 자가 어디까지 재고 어디부터 못 재는지를 숫자로 보여 준 사례다.
7.1DataClinic이 재는 것과 같은 자다
DataClinic은 고객 데이터셋을 받아 이 라벨을 믿어도 되는지를 진단한다. 그런데 진단의 기본 동작은 이미 붙어 있는 라벨을 검사하는 일이다. 붙은 라벨의 정확성은 그렇게 잡히지만, 아예 안 붙은 구간은 라벨이 없으니 검사 대상에 오르지도 않는다. 블루스카이 감사가 보여 준 구조가 정확히 그것이다. 검사한 라벨에서는 0.837이 나오고, 검사 대상에 오르지 못한 구간까지 세면 0.222가 된다. 감사자들이 두 값을 나란히 낼 수 있었던 것은 라벨이 없는 쪽에서도 표본을 떴기 때문이다. AI-Ready Data의 정의에 정확성만이 아니라 커버리지가 들어가야 하는 근거가 이것이다.
7.2커버리지 공백은 모델이 그대로 물려받는다
이 라벨로 안전 분류기를 학습시킨다고 해 보자. 정밀도 0.837짜리 양성 라벨은 학습 신호로 쓸 만하다. 문제는 음성 쪽이다. 재현율이 0.222면 유해하지 않다고 암묵적으로 처리된 게시물의 상당수가 사실 미검출이다. 모델은 그 미검출을 안전이라고 배운다. 이 사례가 값진 것은 공백의 방향까지 읽을 수 있어서다. 라벨의 94%가 초 단위로 붙는 쪽에 쏠려 있으니 자동화하기 쉬운 유형은 과대 대표되고 판단이 미묘한 유형은 과소 대표된다.
공백의 형태를 알려 주는 것은 4절의 결과다. 위층 분류기가 신호를 만들어 놓았는데 아래 규칙 층이 읽지 않아 버려진 신호가 112개 클래스어치다. 데이터 품질 사고는 모델이 못 봐서가 아니라 파이프라인이 안 읽어서 나기도 한다. 두 원인은 대시보드에서 똑같이 생겼다.
7.3커버리지 점검은 1,000건이면 시작된다
이 논문이 실무자에게 주는 가장 실용적인 선물은 방법론의 저렴함이다. 무작위 1,000건, 주석자 두 명과 타이브레이커 한 명, 유해한가 아닌가만 묻는 이항 판정. 그것으로 재현율 추정치가 나왔다. 라벨링 대시보드가 생산량과 정확도만 보고 있다면, 무작위 표본 재라벨링 한 줄을 붙이는 데 드는 비용이 이 정도다.
같은 자리에서 절제도 함께 전달해야 한다. 분모 27로 나온 값은 방향을 알려 줄 뿐 정밀한 추정치가 아니므로, 커버리지 점검은 한 번으로 끝내지 말고 주기로 돌려야 값이 쌓인다. 답글 사례가 남긴 교훈도 그대로 옮길 수 있다. 맥락 없이 낱개로 주석하면 사람도 틀린다. 루트 글 일치율 90.9%와 답글 일치율 71.5%의 격차가 그 대가다. 주석 설계에 맥락을 얼마나 넣을지가 곧 라벨 품질이다.
7.4라벨 품질 리포트에 커버리지 칸을 만든다
페블러스가 제안할 수 있는 것은 새 지표가 아니라 빠져 있던 진단 항목이다. 라벨 품질 리포트에서 정밀도 옆에 커버리지 칸을 만들고, 그 칸을 채우는 절차를 표준화하는 일이다. 무작위 표본을 어디서 뜨는지, 이중 주석과 일치도를 어떻게 보고하는지, 주석자에게 준 맥락의 수준을 어디에 적는지가 그 절차에 들어간다.
여기에 하나를 더 붙일 수 있다. 생산 층과 결정 층을 따로 재는 것이다. 블루스카이 사례에서 분류기는 제 일을 했고 규칙이 신호를 버렸다. 두 층을 한 숫자로 묶어 보고하면 어느 쪽이 문제인지 영영 알 수 없다. 분류기 점수와 최종 결정을 따로 기록해 두는 것만으로도, 놓친 것이 못 본 탓인지 규칙이 안 읽은 탓인지 나중에 가릴 수 있다.
블루스카이는 커버리지 칸이 비어 있을 때 무슨 일이 생기는지를 보여 주는, 숫자가 붙은 공개 사례다. 대시보드가 깨끗한 것과 파이프라인이 제 일을 하는 것은 같은 이야기가 아니다.
페블러스는 데이터 품질을 재는 자를 계속 다듬는다. 이번 사례에서 가져올 항목은 분명하다. 정확성 옆에 커버리지, 그리고 결정 층과 생산 층의 분리다. 읽어 주셔서 감사하다.
참고문헌
본문의 수치는 두 갈래에서 왔다. 논문 내부 수치는 두 프리프린트의 HTML 1판을 직접 열어 표 번호와 절 번호까지 대조해 옮겼고, 파생 값에는 우리 계산임을 본문에 적어 두었다. 플랫폼 수치는 블루스카이가 자사 블로그에 올린 보고서 원문에서 가져왔으며 조회일은 2026년 9월 12일이다.
이 보고서의 뼈대
- 1.Pushpdeep Singh, Sayeh Jarollahi, Ayan Majumdar, Vabuk Pahari, Abhijnan Chakraborty, Krishna P. Gummadi, Ingmar Weber, Abhisek Dash. "Characterizing Bluesky Content Moderation Service: From Automation of Service to Landscape of Harms." arXiv: 2609.11373 [cs.CY] — 2026년 9월 10일 제출, 18쪽. Comments 필드에 ICWSM 2027 게재 승인이 적혀 있다. 본문의 정밀도 0.837과 라벨별 값(Table 4), 재현율 0.222와 27건 중 6건(§5.1), 라벨별 지연 분포 13행(Table 3), 라벨 건수 13행(Table 2), Hive와 Automod 구조(부록 C), 미검출 실험과 두 실패 모드(§5.2), 답글 비중과 한계 서술을 이 판본에서 확인했다.
- 2.Ayan Majumdar, Shounak Paul, Pushpdeep Singh 외. "Can Foundation Models Moderate Online Content? Evaluating Instruction- vs. Example-Driven Policy Operationalization." arXiv: 2609.10410 [cs.CL] — 2026년 9월 9일 제출, 33쪽. Comments 필드에 분량만 적혀 있고 게재 정보는 없다. ModerationBench의 네 갈래 구성과 주석 일치도, Table 2의 갈래별 사람 판정률, Table 4의 갈래별 성능, Table 5와 §5.2의 사례 기반 결과, 부록 G.1의 오탐률, Table 6의 전용 안전 모델 비교, Table 1의 정책 분량, 처리 속도와 API 비용 서술을 확인했다. 1번과 저자 여섯 명이 겹치는 자매 연구다.
플랫폼·정책 1차 자료
- 3.Bluesky. "Bluesky 2025 Transparency Report." 2026년 1월 29일. bsky.social — 상위 라벨별 적용 건수와 수동 적용 비율, 자동 적용 95.34%, 업로드 이미지·영상의 제3자 검사 서술.
- 4.Bluesky. "2024 Moderation Report." 2025년 1월 17일. bsky.social —
sexual-figurative라벨이 주로 이용자 이의제기 경로로 붙었다는 서술. - 5.Bluesky. Automod (오픈소스 규칙 엔진) 소스. github.com/bluesky-social/indigo — Hive 점수를 라벨로 옮기는 임계값 규칙.
- 6.Hive. "Visual Content Moderation API" 문서. docs.thehive.ai — 헤드와 클래스 구성.
- 7.Meta. "Community Standards Enforcement Report" 및 prevalence·proactive rate 정의. transparency.meta.com — 6절 지표 비교표의 분모 정의.
- 8.European Commission. "DSA Transparency Database." transparency.dsa.ec.europa.eu — 제출 플랫폼 목록 대조.
페블러스 인접 글
- 9.페블러스 블로그. 라벨러의 정치 성향에 따라 갈린 AI 동반자 해로움 라벨 — 주석자 불일치가 라벨을 어떻게 흔드는지 다룬 글. 이 보고서의 카파 0.802·0.813과 대비해 읽을 수 있다.
- 10.페블러스 블로그. 데이터 계보 추적이 규정 개정 재라벨링을 14.7%로 줄였다 — 규칙이 바뀔 때 어떤 라벨을 다시 봐야 하는지 가리는 문제를 다룬 글.