번역 모델 선정번역 모델을 감이 아니라 표로 골랐다
구분
CASE 07 · 모델 평가
모델 평가 · A/B
상태
백엔드 배포 · 연결 전
2026
역할
설계 · 판정 · 운영
코드는 AI
분야
AI + 검증
eval · few-shot · 출력 게이트
CASE-07AI
204/204
시드 51 × 2언어 × 2모델
p50
p95
개요
번역 모델 선정
사용자가 쓴 한 줄짜리 다짐을 다른 언어 사용자에게 보여주려면 번역이 필요했습니다. 후보는 전용 번역 모델(m2m100)과 범용 LLM(llama-3.3-70b)이었고 전용 모델이 나을 것 같다는 직관은 있었지만 근거가 없었습니다.
01
평가
시드 51장 × 대상 2언어 × 후보 2모델 = 204건을 전량 돌려 한 표에 놓고 봤습니다. 품질과 함께 지연과 비용을 봤습니다.
전용 모델 탈락. 뜻이 뒤집히거나("나를 제외하고는 아무도 스케줄을 유지하지 않는다") 원문을 그대로 통과시켰습니다
지연은 둘이 비슷했습니다. p50 832ms · p95 1,595ms
세 번째 후보(gemma-3-12b-it)는 계정에서 허용되지 않아(5018) 후보에서 빠졌습니다
범용 LLM은 프로젝트가 이미 쓰던 모델이라 새 비용 라인이 생기지 않았습니다
02
설계
A/B에서 드러난 결함을 그대로 가드로 옮겼습니다.
few-shot을 조건부로. 한↔일 쌍에서만 문자가 섞여 나왔으므로, 예시 2쌍을 그 쌍에만 넣습니다. 나머지 쌍에는 넣지 않아 프롬프트가 불필요하게 길어지지 않습니다
출력 게이트. 길이 · 대상 문자 체계 · 원문 누출 · 원문 동일 · 욕설을 통과해야 저장합니다.
Netflix 같은 브랜드명은 누출로 세지 않되, 원문이 영어면 보존 허용을 2단어로 제한해 "영어 문장 그대로 + 일본어 한 토막"을 잡습니다토큰 상한을 역산. 480자 × 1.3토큰/자 ≈ 624 → 640. 낮게 잡으면 잘린 문장이 게이트를 통과해 영구 캐시됩니다
모델을 인터페이스 뒤로. 교체가 배포 한 번으로 끝나고 캐시 행이 어느 모델의 산출인지 기억합니다
기록
잰 숫자와 출처
측정 · A/B 표
204/204시드 51 × 2언어 × 2모델
측정 · A/B 표
832 · 1,595p50 · p95 지연(ms)
측정 · 설계
640역산한 토큰 상한 · 480자 × 1.3
측정 · 사례 기록
0새 비용 라인
결과
204/204 실행 완료 · 근거를 남긴 모델 선정 · 새 비용 라인 0 · 번역 실패 시 원문 표시(피드는 막지 않음)
배운 것
"전용 모델이 낫다"는 직관이 틀렸습니다. 돌려보기 전에는 알 수 없었고 204건은 하루면 돌릴 수 있는 양이었습니다. 그리고 평가에서 나온 실패 패턴이 그대로 출력 가드의 명세가 됐습니다. 평가는 고르는 일에서 끝나지 않았습니다.
