25개 언어에서 작동하는 저렴한 AI 모더레이터가 단일 단어를 만났을 때
요약
본 글은 AI 모더레이터의 다국어 성능에 대한 실질적인 테스트 결과를 공유합니다. 기존에는 '영어 우선'이라는 주의사항을 인용했지만, 실제 25개 언어 환경에서 Jev와 같은 의사 결정 모델을 사용한 검열 테스트를 진행했습니다. 그 결과, 경계는 알파벳이 아닌 텍스트의 종류에 따라 달라지며, 특정 언어에서는 모더레이션 성능 편차가 크게 나타남을 확인했습니다.
핵심 포인트
- AI 모더레이터는 단순한 채팅 모델보다 의사 결정 모델(decision model) 사용이 효율적입니다.
- 25개 언어 테스트 결과, Jev 모델은 94%의 높은 정확도를 보였으나 성능 편차가 존재합니다.
- 모더레이션 실패 경계는 알파벳 종류가 아닌 '텍스트의 종류'에 따라 달라집니다.
- 다국어 환경에서 AI 모더레이터 도입 시 언어별 성능 차이를 반드시 테스트해야 합니다.
아무도 테스트하지 않은 주의사항
3주 전 저는 고객이 입력하는 내용을 검열하는 것은 단락을 반환하는 채팅 모델(chat model)보다는 확률을 반환하는 저렴한 의사 결정 모델(decision model)에 속해야 한다고 주장했습니다. 저는 공급업체 문서에서 나온 한 가지 주의 사항("영어 우선, 다른 언어는 '처리되지만 동등하게 잘 되지는 않음'")을 인용하고 넘어갔습니다. 이 주의 사항은 제게 추상적인 문제가 아닙니다. 제가 사용하는 Magento 모듈 중 하나는 30개의 스토어 뷰를 가진 스토어에서 고객이 입력한 필드를 검열하는데, 이는 25개 언어와 9가지 문자를 포함합니다. 그래서 저는 테스트를 진행했습니다. 저는 모델이 알파벳을 따라 무너질 것이라고 예상했습니다. 라틴 문자는 유지되고, 키릴 문자 및 CJK(중국어, 일본어, 한국어)는 실패할 것이라 생각했습니다. 이름 필드에 단순한 욕설 단어를 넣었을 때, 러시아어와 중국어는 영어 옆에서 작동했지만 독일어, 프랑스어, 네덜란드어는 그렇지 않았습니다. 그 경계선은 다른 곳에 있으며, OpenAI의 새로운 의사 결정 엔드포인트(decision endpoint)도 같은 지점에서 경계를 긋고 있습니다.
요약. 이전 기사(https://webmaster-ramos.com/blog/stop-paying-generation-prices-for-decisions)에서 저는 고객이 작성한 텍스트의 검열을 Jev와 같은 보정된 의사 결정 모델(calibrated decision model)인 세 번째 단계에 두었으며, 그 문서에서 나온 주의 사항("영어 우선, 다른 언어는 '처리되지만 동등하게 잘 되지는 않음'")을 인용했습니다. 저는 이를 테스트했습니다: 6개 모델, 25개 언어, 1,940개의 텍스트, 모든 레이블에 대한 블라인드 두 번째 모델 검토, API 호출 비용 $1.84가 소요되었습니다. 그 결과는 이렇습니다: Jev는 25개 언어에서 일반 고객을 차단하지 못했습니다(360개의 깨끗한 텍스트 중 1개의 오탐지). 8개 언어의 실제 댓글에서는 94%를 기록했는데, 이는 6개 모델 중 두 번째로 높은 수치이며 gpt-5-mini보다 앞섰습니다. 짧은 이름 필드에서는 작동하지 않았습니다: 영어, 스페인어, 러시아어, 일본어, 중국어에 대한 단순 욕설 단어는 네 번 중 세 번 정도 포착했지만, 나머지 16개 언어에서는 다섯 번 중 한 번 정도만 포착했습니다. 경계는 알파벳이 아니라 텍스트의 종류였습니다. 아래에는 수치, 라우팅 레시피, 그리고 이 테스트가 증명하지 못하는 내용들이 있습니다.
아무도 테스트하지 않은 주의사항
이전 기사에서는 한 상점의 AI 호출을 네 개의 단계로 분류했습니다: 코드, 컴파일된 규칙, 보정된 결정 모델, 생성형 모델. '이 필드에 욕설이 있습니까?'와 '이 리뷰가 부적절합니까?'는 명세가 없는 판단(judgment)이라는 세 번째 단계에 속하며, TypeSafe의 Jev 같은 모델은 이를 25분의 1초 만에 백분의 일 센트도 안 되는 비용으로 확률로 답변합니다. 같은 기사에는 공급업체의 문서에서 가져온 경계 항목이 하나 있었습니다: 영어는 주요 학습 언어이며, 다른 언어(CJK 포함)도 처리하지만 균등하게 잘 처리되지는 않습니다. 따라서 자체 콘텐츠를 테스트하고 라우팅 시의 신뢰도를 확인해야 합니다. 저는 그때 테스트하지 않았습니다.
테스트해야 하는 이유는 실용적입니다. 제가 30개의 스토어 뷰가 있는 상점 전면부에서 유지 관리하는 Magento 모듈은 채팅 모델을 사용하여 고객이 입력한 텍스트 필드 하나를 모더레이션합니다. 30개의 스토어 뷰는 25개 언어와 9가지 스크립트를 의미합니다. 거의 모든 다국어 상점은 비슷한 형태를 가집니다: 짧은 자유 텍스트 필드(이름, 서명, 각인)와 더 긴 고객 텍스트(댓글, 리뷰). 따라서 질문은 'Jev가 좋은가'가 아닙니다. 질문은 다음과 같습니다: 결정 모델을 채팅 분류기 대신 다국어 고객 텍스트에 적용하면 무엇을 잃게 되는지, 어떤 언어에서 그러한 손실이 발생하는지, 그리고 그 확률이 코드가 이를 우회하도록 충분히 명확하게 보여주는지가 문제입니다.
2023년 10월 2일 기준으로 이 모델 클래스에 대한 공개된 다국어 평가는 찾을 수 없었습니다.
제가 측정하고 방법
Jev 자체를 제외한 여섯 개의 모델은 모두 하나의 OpenRouter 키를 통해 접근했습니다:
jev-1.13.0- 결정된 모델 (typed decision model)로, 임계값(thresholds)이 의미를 갖도록 버전이 고정되어 있습니다;gpt-5-mini- 엄격한 JSON 스키마를 가진 채팅 모델: 오늘날 대부분의 저장소(stores)가 이 작업을 수행하는 클래스이자 제어 장치입니다;gemini-2.5-flash-lite- 구조화된 출력을 제공하는 가장 저렴한 Google 경로입니다;gemma-4-26b- 오픈 웨이트(open weights) 모델입니다;llama-guard-4-12b- 사람들이 보통
- 작성된 텍스트 435개. 언어 모델이 하나의 사양에 따라 원어민 텍스트로 작성했습니다. 즉, 깨끗한 이름, 함정 이름(현지 스큰토프 문제, 의학 용어, 동음이의어), 정중한 리뷰와 화나지만 품위 있는 리뷰가 포함되었습니다. 생성기는 단 5개 언어(en, de, fr, es, it)에 대해서만 모욕적인 내용을 작성했고, 나머지 20개 언어에서는 자체 안전 필터에 걸렸으며 저는 이를 우회하지 않았습니다.
- 공개된 욕설 목록에서 만든 이름 21개 언어. 코드는 이름 템플릿에 용어를 삽입하며 아무도 그것을 판단하지 않습니다. 모든 용어는 두 번씩 나타납니다. 그대로의 형태와 위장된 형태(leet, 문자 사이의 점, 유사한 문자, 늘인 문자, 별표)로요. 그리고 같은 위장은 깨끗한 이름에도 통제군으로 적용됩니다.
- 공개된 코퍼스에서 가져온 실제 댓글 960개를 사람들에 의해 라벨링했으며, 7개의 언어 그룹의 8개 언어입니다: 영어, 루마니아어, 포르투갈어, 터키어, 그리스어, 아랍어, 인도네시아어, 중국어.
라벨은 원어민 화자가 아닌 두 번째 모델이 확인했습니다. GPT-6.1 Sol - 텍스트를 작성한 것과는 다른 모델 계열입니다 - 모든 텍스트를 새로운 세션에서 블라인드로 라벨링했습니다. 즉, 오직 텍스트와 언어, 그리고 동일한 정책만 보았습니다. 아래의 숫자는 해당 모델의 라벨이 원래 라벨과 일치하고 정책이 명확하게 답변을 내리는 경우에만 사용되었습니다. 모든 435개의 작성된 텍스트는 통과했습니다. 목록 항목 중 약 절반은 통과했습니다. 리뷰어는 나머지 항목들을 공공 이름으로서 무해하거나(아이 같은 단어, 욕설적 두 번째 의미를 가진 평범한 명사) 정책상 모호하다고 판단했습니다. 공개된 욕설 목록이 받아들일 수 없는 이름의 목록을 의미하지는 않습니다. 960개의 댓글 중 520개가 통과했습니다. 따라서 총 1,292개의 검증된 텍스트가 있습니다.
모든 측정은 2026년 10월 2~3일에 이루어졌습니다. 코드, 데이터 및 모든 모델의 원본 답변은 벤치마크 저장소에 있습니다. 두 개의 키와 하나의 명령으로 재현할 수 있습니다.
깨끗한 텍스트: 25개 언어에서 일반 고객을 차단하지 않습니다
이것이 가장 확실한 결과이며, 첫 번째로 제시하는 이유는 상점의 경우 오탐(false positive) 비용이 미탐(miss) 비용보다 크기 때문입니다. 즉, 차단된 고객은 주문을 하지 않습니다.
25개 언어와 9가지 스크립트(이름, 함정, 평온하고 분노한 리뷰 등)로 작성된 360개의 깨끗한 텍스트를 대상으로 Jev는 단 한 번 틀렸습니다 (스웨덴의 함정 이름). gpt-5-mini 역시 단 한 번 틀렸는데, 분노했지만 예의 바른 프랑스어 불만을 괴롭힘(harassment)으로 인식했습니다. Flash-Lite와 Gemma는 각각 두 번씩 잘못되었고, gpt-oss-safeguard는 네 번, Llama Guard는 26번 잘못되었습니다. 깨끗한 텍스트에 대한 Jev의 중앙값 확률은 25개 언어 모두에서 0.02~0.04입니다. 만약 질문이 '내 태국 상점 리뷰에서 모델이 평범한 사람들을 차단하기 시작할까?'라면, 이 데이터에 따르면 대답은 '아니오'입니다.
댓글: 영어 외 영역에서도 유지됨
520개의 검증된 댓글(8개 언어, 184개 불쾌하고 336개 깨끗함):
| 모델 | 정확도 (accuracy) | 184개 중 포착률 (caught of 184) | 336개 중 오탐률 (false positives of 336) | p50 | $당 1,000건 비용 |
|---|---|---|---|---|---|
| Gemini 2.5 Flash-Lite | 95.4% | 178 | 18 | 467 ms | 0.05 |
| ... | |||||
| 세 가지 예상치 못한 점. |
영어에서의 하락폭이 작습니다. 영어에서는 98.5%였으나, 나머지 일곱 개 언어에서는 93.4%로, 5%p 차이입니다. Jev가 놓친 아홉 건 모두 확률이 0.16~0.49에 머물러 있었습니다. 즉, 모델이 확신하며 틀린 것이 아니라 의심하는 수준이었습니다. 이 모델은 모든 520개 사례에서 댓글의 언어를 정확하게 식별했습니다.
가장 비싼 채팅 모델은 상점 전면에는 너무 엄격합니다. gpt-5-mini는 184개의 불쾌한 댓글을 모두 포착했지만, 336개의 허용 가능한 댓글 중에서도 57개(6분의 1)를 포착했는데, 대부분 '괴롭힘'으로 분류되었습니다. 이는 이전 섹션에서 다룬 분노하지만 예의 바른 불만 사례가 대규모로 나타난 것입니다. 상점 리뷰를 관리하는 경우, 이 분류기는 정직한 비판까지 잘라냅니다.
Jev의 의심 영역은 정책이 애매한 곳에 위치합니다. 리뷰어는 별도로 186개의 댓글을 '정책이 결정하지 못하는' 것으로 표시했습니다. 그중 39%가 Jev의 불확실 구간(0.3~0.7)에 속했으며, 명확한 사례에서는 14%였습니다. 이 구간은 노이즈가 아닙니다. 신중한 관리자도 잠시 멈칫할 만한 영역입니다. 이러한 모호한 댓글에 대해 gpt-5-mini는 89%, Jev는 65%, Flash-Lite는 51%의 비율로 플래그를 지정했습니다.
한 가지 유의할 점은, 이 수치가 실제보다 더 정밀해 보이지 않다는 것입니다. '검증됨(verified)'이란 검토자(reviewer)와 코퍼스 주석가(corpus annotators)가 동의하는 실제 텍스트의 절반을 의미하며, 이것이 더 명확한 부분입니다. 논쟁이 되는 나머지 절반에서는 모델들이 더 많이 분기됩니다.
짧은 이름: 여기서는 알파벳 순서와 무관하게 뒤처짐
짧은 필드(short field)는 다른 작업입니다. 이름에는 문맥이 없습니다. 단어 하나일 뿐이며, 때로는 위장되어 있습니다. 욕설어가 구절 안에 있는 서면화된 공격적인 이름의 경우, Jev는 30개 중 28개를 포착합니다. 하지만 목록에 있는 순수한 욕설어 자체에서는 그렇지 못합니다:
| 언어 그룹 | Jev (0.5) | Jev (0.2) | gpt-5-mini | Flash-Lite | 검증된 용어 | :--- |
| 영어 | 5 | 5 | 6 | 6 | 6 |
| ... |
영어, 스페인어, 러시아어, 일본어, 중국어의 경우 Jev는 27개 중 21개의 검증된 용어를 포착합니다 (gpt-5-mini는 25개). 나머지 16개 언어에서는 80개 중 15개를 포착합니다 (gpt-5-mini는 53개). 저는 이 격차가 스크립트를 따를 것이라고 예상했습니다: 라틴어가 유지되고, 키릴 문자와 아랍어, CJK가 떨어지는 식입니다. 하지만 그 반대로 나타났습니다: 러시아어와 중국어가 영어 옆에서 잘 유지되는 동안, 대부분의 라틴 문자 유럽 언어들(독일어, 프랑스어, 네덜란드어, 헝가리어, 핀란드어, 터키어)은 그렇지 못했습니다. 문서에 언급된 '균등하지 않게 잘'이라는 것은 사실이지만, 알파벳 순서를 따르지는 않습니다. 각 언어는 2~10개의 검증된 용어를 가지고 있으므로, 단일 셀보다는 그룹 합계가 중요합니다.
위장(Disguise)은 두 번째 문제를 추가합니다. 서면화된 위장 이름의 경우 Jev는 25개 중 13개를 포착하고 (영어는 5개 중 5개, 독일어는 5개 중 1개), gpt-5-mini는 25개 중 25개를 포착합니다. 더 나쁜 것은, Jev의 확률이 위장 자체의 모습에 따라 상승한다는 것입니다. 완벽하게 깨끗한 이름에 leet(숫자/기호 대체)를 하거나 점을 찍으면 평균적으로 그 확률이 0.16 증가합니다 (영어에서는 0.32). gpt-5-mini는 125개의 위장된 깨끗한 이름 중 어느 것도 플래그 지정하지 않습니다: 그것은 위장을 읽어냅니다. Jev는 텍스트가 어떻게 보이는지에 부분적으로 반응합니다.
제어(control)도 천장은 아닙니다: gpt-5-mini는 107개의 검증된 용어 중 29개를 놓치고 있으며, 그 자체로 불균등합니다 - 이탈리아어는 7개 중 3개, 터키어는 10개 중 5개, 베트남어는 6개 중 2개입니다.
확률: 임계값을 설정할 수 있는 부분
세 번째 단계의 결정 모델에 대한 주요 주장은 가격이 아니라 분기할 수 있는 확률 코드입니다. 댓글에서는 약속대로 작동합니다. 짧은 이름의 경우, 의심을 사기에는 비용이 많이 듭니다.
Jev가 검증된 용어에 부여하는 중앙값 확률은 0.29이고, 깨끗한 이름(clean name)의 경우 0.03입니다. 따라서 이 모델은 눈먼 것보다 불확실한 경우가 더 많습니다. 임계값을 낮추면 더 많은 것을 포착할 수 있습니다. 하지만 위장된 깨끗한 이름들이 용어와 함께 증가합니다:
| p가 최소여야 플래그 | 용어 (107) | 위장된 용어 (105) | 깨끗한 이름 (125) | 위장된 깨끗한 이름 (125) |
|---|---|---|---|---|
| 0.5 | 36 | 37 | 0 | 7 |
| ... | ||||
| 따라서 짧은 필드에서는 임계값만으로는 아무것도 결정할 수 없습니다. 쌍(pair)이 합니다: Jev가 확신하는 곳을 답변하고, 채팅 모델이 불확실한 범위를 처리합니다. 0.3-0.7 범위라는 문서화된 습관은 여기서 너무 좁습니다. 대부분의 누락 건들이 0.3 미만에서 발생합니다. |
댓글의 경우, 두 번째 모델의 선택이 범위의 선택보다 더 중요합니다. Jev와 gpt-5-mini를 0.3-0.7 범위에 적용하면 91.7%를 얻습니다. 이는 Jev 단독 사용보다 낮은데, gpt-5-mini의 엄격함이 영향을 미치기 때문입니다. 같은 범위에서 Jev와 Flash-Lite를 사용하면 95.4%를 달성하며, 트래픽의 14%가 두 번째 모델로 전송되고 건당 $0.055의 비용이 발생합니다. 이는 정확도만 놓고 보면 Flash-Lite 단독 사용과 같고 가격도 거의 같습니다. 이 쌍은 정확도가 아니라, 결정의 86%가 250ms 내에 로그하고 분기할 수 있는 확률 코드와 함께 돌아온다는 점에서 승리합니다.
다국어 스토어를 위한 레시피
| 표면 (surface) | 증거 (evidence) | 실행할 것 (what to run) |
|---|---|---|
| 댓글, 리뷰 | 520개의 검증된 실제 댓글, 8개 언어 | Jev를 먼저 사용하고, 0.3-0.7 범위에서 Flash-Lite를 사용합니다. gpt-5-mini는 사용하지 마세요: 허용 가능한 댓글 6개 중 1개를 잘라냅니다. |
| ... | ||
채팅 모델로 얼마나 많은 트래픽이 갈지는 고객들이 무엇을 작성하는지에 따라 다릅니다. 일반적인 깨끗한 이름의 경우, 0.1-0.7 범위는 125개 중 12개를 사용하며, 약 10분의 1입니다. xX_Name_Xx 스타일의 이름들은 더 자주 갈 것입니다: 이 모델은 위장의 모양에 반응합니다. 예산을 책정하기 전에 자체 로그에서 이를 측정하십시오. |
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기