AI 품질 보정과 데이터 재생산 파이프라인
요약:
본 기록은 Translator-Agent 2.0의 도입 이후, AI가 자체적으로 번역 품질을 평가하고 품질 기준 이하의 데이터를 자동 보정·재생산하는 구조를 정립한 과정을 기술한다. BLEU/TER 점수 기반 평가, 품질 예측 모델, 재번역 큐 관리, 인간 승인 없는 자동 검증 루프를 포함한다.
1. Translator-Agent 2.0의 설계 목표
9월 초부터 수집되는 데이터의 양이 폭증하면서 AI 번역 품질이 일관되지 않다는 문제가 보고되었다. 평균 BLEU 점수는 0.82 수준이었지만 언어 간 편차가 컸고, 특정 기술 문서에서 용어가 반복적으로 오역되었다. Translator-Agent 2.0의 목적은 **AI가 스스로 품질을 예측하고, 낮은 품질의 데이터를 재생산하도록 만드는 것**이었다.
- BLEU, TER, Context Vector를 이용한 품질 점수화
- 자동 재번역 루프 (Re-Translation Loop)
- Quality-Driven Event Routing (품질 점수 기반 라우팅)
- 자동 승인 및 검증 리포트 생성
2. 품질 평가 메커니즘
Translator-Agent 2.0은 번역이 완료되면 즉시 BLEU와 TER을 계산하고, 품질 점수를 생성한다. 이 점수는 0~1 사이 실수값으로 표현되며, 0.75 미만이면 재번역 큐에 등록된다. BLEU는 의미 유사도, TER은 문장 수정 비율을 측정한다. 품질 점수는 Redis의 Sorted Set에 저장되어 우선순위 처리가 가능하다.
score = (bleu * 0.7 + (1 - ter) * 0.3)
redis.zadd("i18n.quality", {key: score})
if score < 0.75:
publish("i18n.retranslate", {"id": pid, "lang": lang, "score": score})
평균 BLEU 점수는 0.82에서 0.87로 상승했으며, TER(수정률)은 0.28 → 0.17로 개선되었다. 이 시스템은 언어별 번역 품질 차이를 자동으로 보정하는 첫 단계가 되었다.
3. 재번역 루프 (Re-Translation Loop) 구조
“i18n.retranslate” 이벤트를 수신하면 Translator-Agent는 재번역을 수행한다. 재번역 시에는 DeepSeek 대신 ChatGPT 모델을 단독으로 사용하며, 이전 번역 결과를 문맥으로 제공한다. 이를 “contextual reinforcement”라 명명했다.
context = db.get_translation(pid, lang)
new = chatgpt.rewrite(context, mode="contextual")
db.save_translation(pid, lang, new, quality="REWRITE")
1차 번역과 2차 재번역의 BLEU 차이는 평균 +0.09, 즉 품질이 9% 향상되었다. 하루 평균 4,000건의 자동 재번역이 수행되며, 관리자는 이를 승인하지 않아도 된다. 품질 개선이 검증되면 “auto-approve” 플래그가 적용되어 시스템이 스스로 승인한다.
4. 품질 점수 예측 모델 (Quality Predictor)
반복적으로 품질이 낮은 데이터 패턴을 탐지하기 위해, Translator-Agent 2.0에는 LightGBM 기반 품질 예측 모델이 내장되었다. 입력은 문장 길이, 기술용어 비율, 번역 일관성, 이전 BLEU 점수의 이동평균 등이다. 이 모델은 번역이 수행되기 전에 품질을 예측하고, 낮은 품질이 예상되면 ChatGPT 단독 번역 모드로 전환한다.
if quality_predictor.predict(features) < 0.7:
mode = "chatgpt"
else:
mode = "deepseek+chatgpt"
품질 예측 정확도는 89.7% 수준으로 측정되었다. AI가 사전 예측으로 번역 모드를 조정함으로써 전체 재번역량이 34% 감소했다.
5. 데이터 재생산 파이프라인
품질 개선은 단순 재번역에 그치지 않고, 데이터 자체를 재생산하는 단계로 확장되었다. Translator-Agent는 BLEU 점수가 기준 이하일 때, 해당 데이터를 “reconstruct” 큐에 등록하여 의미적으로 새로운 문장을 생성한다. 이 과정은 단순 번역이 아니라 AI가 의미 단위로 다시 작성하는 수준이다.
if score < 0.65:
publish("i18n.reconstruct", {"id": pid, "lang": lang})
“reconstruct” 이벤트는 별도의 Cloud Function이 처리한다. AI는 원문과 번역문을 비교하여 의미 벡터 차이를 계산하고, 그 차이가 0.25 이상이면 완전히 새로운 표현으로 문장을 재작성한다. 이 구조 덕분에 AI가 “문장 품질을 스스로 복원”하는 구조가 완성되었다.
6. AI 검증 루프 및 자동 승인 구조
모든 번역과 재생산 데이터는 두 번의 검증 루프를 거친다. 1차는 Translator-Agent의 내부 품질 모델, 2차는 Classifier-Agent의 문맥 정합성 평가이다. 두 점수 모두 0.8 이상이면 자동 승인된다.
if quality_score > 0.8 and context_score > 0.8:
db.update_status(pid, lang, "APPROVED")
publish("i18n.finalized", {"id": pid, "lang": lang})
승인 루프는 인간의 개입 없이 수행된다. Telegram 리포트에는 일일 승인·재번역·재생산 통계가 요약된다.
📘 *Translation Quality Report*
Total Translations: 47,113
Rewrites: 3,942 (8.3%)
Reconstructs: 1,174 (2.4%)
Auto-Approved: 92.6%
Avg BLEU: 0.87
Avg TER: 0.16
7. 데이터 배포 및 글로벌 동기화
재생산된 데이터는 MQ를 통해 각 리전의 Redis와 MySQL에 자동 반영된다. AI Ops-Agent는 품질 등급에 따라 TTL을 다르게 설정하여 낮은 품질의 데이터는 짧게 캐시되도록 했다.
if score >= 0.9:
ttl = 86400 # 24h
elif score >= 0.8:
ttl = 43200
else:
ttl = 10800
이 방식으로 높은 품질의 데이터는 더 오래 유지되고, 낮은 품질은 빠르게 갱신된다. Redis 캐시의 품질별 분포는 “A등급(24h)” 68%, “B등급(12h)” 22%, “C등급(3h)” 10% 수준으로 안정화되었다.
8. 결과 및 현재 상태
Translator-Agent 2.0의 도입으로 번역 품질 관리 체계는 완전히 자동화되었다. AI는 데이터를 번역할 뿐 아니라, 스스로 품질을 판단하고 개선하는 자율적 루프를 운영한다. BLEU/TER 기반 점수화, 재번역 큐, 재생산 파이프라인, 품질 예측 모델이 통합되어 더 이상 사람이 품질을 검증할 필요가 없다.
- 평균 BLEU 0.87 / TER 0.16
- 재번역 성공률 94%
- 자동 승인 비율 92.6%
- 재생산 데이터 1,174건 /일
- MQ 처리량 2,800 msg/sec
REINDEERS의 AI 번역 시스템은 이제 “품질을 평가받는 주체”가 아니라 **스스로 품질을 유지·보정하는 자율형 언어 엔진**으로 발전했다.
Comments
Post a Comment