Разработка AI-системы оценки качества переводов
Quality Estimation (QE) — автоматическая оценка качества перевода без обращения к эталонному переводу. В отличие от BLEU, который сравнивает с reference translation, QE работает только с исходным и переведённым текстом — как человек-ревизор.
Уровни оценки качества
Сегментный уровень (предложение): оценка каждого сегмента по шкале 0–1. Сегменты с низким score требуют проверки человеком.
Слóвный уровень (word-level QE): разметка каждого слова в переводе как OK / BAD. BAD-теги показывают, где именно ошибка — экономит время ревизора.
Документный уровень: когерентность, последовательность терминологии, стилистическое единство на уровне документа.
Модели для QE
from transformers import AutoModelForSequenceClassification, AutoTokenizer
class QualityEstimator:
def __init__(self, model_name: str = "Unbabel/wmt22-cometkiwi-da"):
# CometKiwi — state-of-the-art QE без референса
self.model = load_comet_model(model_name)
def estimate_segment(self, source: str, hypothesis: str) -> QEScore:
score = self.model.predict(
[{"src": source, "mt": hypothesis}],
batch_size=8
).scores[0]
return QEScore(
score=score, # 0-1, где 1 = отличное качество
requires_review=score < 0.7,
error_probability=1 - score
)
def estimate_batch(
self,
segments: list[tuple[str, str]]
) -> list[QEScore]:
data = [{"src": src, "mt": mt} for src, mt in segments]
scores = self.model.predict(data, batch_size=32).scores
return [QEScore(score=s, requires_review=s < 0.7) for s in scores]
Классификация типов ошибок
Помимо числовой оценки, система классифицирует тип проблемы (MQM-таксономия):
- Accuracy: неправильный перевод, пропуск, добавление несуществующей информации
- Fluency: грамматика, орфография, пунктуация, неестественный порядок слов
- Terminology: нарушение глоссария, неверный отраслевой термин
- Style: несоответствие style guide, тон коммуникации
def classify_errors(source: str, translation: str) -> list[MQMError]:
prompt = f"""Найди ошибки перевода по классификации MQM:
Исходный текст: {source}
Перевод: {translation}
Для каждой ошибки: тип (accuracy/fluency/terminology/style), серьёзность (critical/major/minor), цитата из перевода, объяснение."""
return llm.parse(prompt, response_format=list[MQMError])
Интеграция в workflow
QE-скоринг встраивается в pipeline перевода:
- Машинный перевод + QE: сегменты с score > 0.9 публикуются без ревизии, < 0.7 — обязательная проверка человеком
- Post-editing: переводчик видит QE-оценку каждого сегмента и фокусируется на проблемных
- Vendor management: QE-метрики по переводчикам позволяют объективно оценивать качество работы
При внедрении QE в post-editing workflow экономия времени ревизора — 40–60%.







