Донавчання моделей перекладу: MarianMT, NLLB, SeamlessM4T

Донавчання моделей машинного перекладу для галузевих завдань: MarianMT, NLLB, SeamlessM4T

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1302
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    714
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1006

Донавчання моделей машинного перекладу для галузевих завдань: MarianMT, NLLB, SeamlessM4T

Юридичний відділ компанії, що локалізує контракти на 10+ мов, витрачав 40 годин на тиждень на постредагування машинного перекладу. Generic-моделі плутали терміни в 15% випадків: "consideration" перетворювалося на "розгляд" замість "зустрічне задоволення". Ми донавчили MarianMT на корпусі з 50K паралельних речень — BLEU зріс з 28 до 46, час постредагування скоротився до 10 годин. Зниження витрат на постредагування на 30–50% та окупність інвестицій у fine-tuning менш ніж 3 місяці — типовий результат для наших проєктів. Нижче — як ми це робимо.

Чому донавчання моделі машинного перекладу критичне для бізнесу?

Generic-моделі дають BLEU 25–35 на технічних текстах. Після кастомного fine-tuning на доменних корпусах ми підіймаємо BLEU до 40–50, а COMET — на 0.1–0.15. Це знижує обсяг постредагування на 30-50% та виключає грубі смислові помилки. Без кастомізації ви втрачаєте до 20% точності перекладу на складних доменах. Порівняння з відкритими системами: наша модель краща за базову в 2 рази за BLEU на спеціалізованих доменах.

Порівняння базових архітектур

Модель Мови Розмір Ресурси для fine-tuning Коли використовувати
MarianMT (Helsinki-NLP) 1000+ пар 150–300М параметрів 1 GPU, 10–50K речень Швидке донавчання під одну пару мов
NLLB-200 (Meta) 200 мов 1.3B–3.3B параметрів 4–8 GPU, 100K+ речень Мультимовні сценарії, рідкісні мови
SeamlessM4T (Meta) 100 мов (текст+мова) 2.3B параметрів 8+ GPU, 200K+ речень Інтеграція STT та перекладу в одному пайплайні

Вибір архітектури залежить від цільових мов, бюджету на обчислення та бажаної якості. MarianMT у 3 рази швидший у навчанні, ніж NLLB, при порівнянній якості на однопарних завданнях.

Як ми будуємо pipeline для fine-tuning?

Наш процес включає п'ять етапів: аналітика даних, підготовка корпусу, навчання, оцінка, деплой. Розглянемо кожен на прикладі MarianMT для юридичного домену.

Підготовка даних

Паралельні корпуси — ключовий фактор успіху. Ми використовуємо:

  • OPUS — безкоштовний ресурс із 500+ мовними парами (для загального домену)
  • EMEA (медицина) та JRC-Acquis (юриспруденція) — спеціалізовані корпуси ЄС
  • Власні дані клієнта: перекладені контракти, патентна документація, протоколи випробувань

Мінімальний обсяг: 10K паралельних речень для MarianMT, 100K+ для NLLB. Дані проходять дедуплікацію, фільтрацію шуму (довжини, ratio) та токенізацію через SentencePiece.

Навчання та оптимізація

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, ) 

Ми підбираємо learning rate (1e-5 – 5e-5) та кількість епох, використовуємо early stopping по loss на валідації. Для великих моделей застосовуємо LoRA та 4-bit quantization, щоб вкластися в доступну GPU-пам'ять.

Оцінка та розгортання

# 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. Модель готова до деплою через Triton Inference Server або ONNX Runtime з підтримкою batching.

Типові помилки при донавчанні та як їх уникнути

  • Перенавчання на маленькому корпусі: використовуємо dropout 0.1, early stopping, data augmentation (back-translation).
  • Зміщення домену: додаємо 10–20% універсальних даних (наприклад, OPUS).
  • Втрата якості на загальному домені: мультитаскінг — навчаємо одночасно на домені та загальному корпусі.
  • Галюцинації: включаємо forced decoding з обмеженням довжини, застосовуємо beam search з length penalty.

Які метрики гарантують якість перекладу?

Ми використовуємо дві метрики: BLEU (точність n-грам) та COMET (оцінка на основі нейромережі). Типовий приріст на доменних даних — +3–8 BLEU та +0.05–0.1 COMET. Цього достатньо для підвищення якості до рівня комерційних систем. Зниження витрат на постредагування на 30–50% — прямий фінансовий ефект.

Що входить у роботу

  • Підготовка та очищення паралельних корпусів (включаючи ETL-пайплайн)
  • Вибір та конфігурація базової моделі (MarianMT/NLLB/SeamlessM4T)
  • Навчання з підбором гіперпараметрів (LR, batch size, dropout, number of beams)
  • Оцінка якості (BLEU, COMET, ручна валідація на 200–500 реченнях)
  • Експорт моделі в ONNX/TorchScript з оптимізацією latency p99
  • Документація: model card, звіт з метриками, інструкція з деплою
  • Підтримка протягом 30 днів після здачі

Процес та терміни

Етап Що робимо Терміни
Аналітика Збір даних, визначення метрик, вибір архітектури 2–5 днів
Підготовка даних Очищення, токенізація, вирівнювання 3–10 днів
Навчання Експерименти з hyperparams, LoRA, quantization 1–5 днів
Оцінка та ітерації Тестування на hold-out, виправлення артефактів 2–5 днів
Деплой Docker, REST API, моніторинг 1–2 дні

Орієнтовні терміни: від 10 робочих днів для MarianMT до 30 днів для NLLB. Вартість розраховується індивідуально під ваш стек та обсяг даних.

Чому варто довіритися нам?

Понад 5 років займаємося NLP-проєктами в продакшені. Виконали 15+ кастомізацій машинного перекладу для юридичних, медичних та технічних доменів. Гарантуємо прозору звітність на кожному етапі: ви отримуєте model card, метрики та код. Зв'яжіться з нами — оцінимо ваш проєкт і підберемо оптимальну архітектуру. Замовте консультацію з fine-tuning вже сьогодні.