Обучение модели машинного перевода (MarianMT, NLLB, SeamlessM4T)

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Обучение модели машинного перевода (MarianMT, NLLB, SeamlessM4T)
Средний
~5 дней
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Обучение модели машинного перевода (MarianMT, NLLB, SeamlessM4T)

Обучение модели машинного перевода нужно для специализированных доменов (юридический, медицинский, технический) или языковых пар с плохим покрытием готовыми моделями.

Выбор базовой архитектуры

MarianMT (Helsinki-NLP): seq2seq трансформер, компактный, быстрый. Готовые модели для 1000+ пар. Идеально для fine-tuning на домене.

NLLB-200 (Meta): 200 языков, лучше для редких языков и мультиязычного перевода. Fine-tuning возможен, но модель большая (1.3B–3.3B параметров).

SeamlessM4T (Meta): мультимодальная (текст + речь), 100 языков. Для задач с интеграцией STT+перевод.

Данные для fine-tuning

Параллельные корпуса (билингвальные пары предложений):

  • OPUS (opus.nlpl.eu): большой бесплатный корпус для 500+ пар
  • Специализированные: EMEA (медицина ЕС), JRC-Acquis (юриспруденция), MultiUN
  • Собственные: переведённые документы компании, профессиональные переводы

Минимум для fine-tuning MarianMT: 10K–50K параллельных предложений домена. Для NLLB: 100K+.

Fine-tuning MarianMT

from transformers import MarianMTModel, MarianTokenizer, Seq2SeqTrainingArguments, Seq2SeqTrainer
import sacrebleu

model_name = "Helsinki-NLP/opus-mt-ru-en"
tokenizer = MarianTokenizer.from_pretrained(model_name)
model = MarianMTModel.from_pretrained(model_name)

def preprocess(examples):
    inputs = tokenizer(examples["ru"], max_length=512, truncation=True, padding=True)
    targets = tokenizer(text_target=examples["en"], max_length=512, truncation=True, padding=True)
    inputs["labels"] = targets["input_ids"]
    return inputs

training_args = Seq2SeqTrainingArguments(
    output_dir="./marian_legal",
    predict_with_generate=True,
    per_device_train_batch_size=8,
    num_train_epochs=5,
    learning_rate=5e-5,
    fp16=True,
    generation_max_length=512,
)

Оценка качества: BLEU и COMET

# BLEU
bleu = sacrebleu.corpus_bleu(hypotheses, [references])
print(f"BLEU: {bleu.score:.2f}")

# COMET (лучше коррелирует с человеческими оценками)
from comet import download_model, load_from_checkpoint
model_path = download_model("Unbabel/wmt22-comet-da")
comet_model = load_from_checkpoint(model_path)
scores = comet_model.predict(data, batch_size=8, gpus=1)

Типичный прирост от fine-tuning на доменных данных: +3–8 BLEU, +0.05–0.1 COMET score. Для сравнения: разница между системами-участниками WMT — 1–3 BLEU.