Как настроить автоматический перевод с помощью LLM

Практическое руководство по настройке автоматического перевода документов и текстов через языковые модели.

Как настроить автоматический перевод с помощью LLM

Языковые модели изменили стандарты машинного перевода. GPT-4o и Claude переводят тексты с пониманием контекста, сохранением стиля и адаптацией под целевую аудиторию — то, с чем Google Translate и DeepL справляются хуже. По тестам профессиональных переводчиков, LLM-перевод художественных и маркетинговых текстов превосходит классические MT-системы в 60–70% случаев. Разберём, как настроить такой перевод для регулярных задач.

Когда LLM лучше Google Translate

Классические системы перевода (Google Translate, DeepL, Яндекс Переводчик) работают на уровне предложений. LLM анализируют документ целиком и учитывают контекст. Это даёт преимущество в нескольких сценариях.

Маркетинговые тексты. LLM адаптируют тон, шутки и культурные отсылки. Google Translate переведёт буквально, и текст потеряет убедительность.

Техническая документация. LLM сохраняют единообразие терминов в пределах документа и правильно обрабатывают код в тексте (не переводят имена переменных).

Юридические тексты. LLM лучше справляются с устойчивыми конструкциями и терминологией, но требуют вычитки юристом.

Для коротких фраз и простых текстов Google Translate и DeepL остаются быстрее и дешевле. LLM оправдан для текстов, где важен стиль и точность.

Базовый перевод через API

from openai import OpenAI

client = OpenAI()

def translate(text, source_lang="английский", target_lang="русский", style="нейтральный"):
    response = client.chat.completions.create(
        model="gpt-4o",
        temperature=0.3,
        messages=[
            {
                "role": "system",
                "content": f"""Ты — профессиональный переводчик с {source_lang} на {target_lang}.
Стиль перевода: {style}.
Правила:
- Сохраняй форматирование (markdown, HTML-теги)
- Не переводи имена собственные, названия продуктов, код
- Не добавляй пояснений — только перевод
- Технические термины переводи общепринятым русским эквивалентом"""
            },
            {"role": "user", "content": text}
        ]
    )
    return response.choices[0].message.content

Параметр temperature=0.3 обеспечивает стабильность перевода. Для творческих текстов увеличьте до 0.6–0.7. Подробнее о работе с промптами — в отдельном гайде.

Пакетная обработка документов

Для перевода длинных документов разбивайте текст на фрагменты с перекрытием — это сохраняет контекст на стыках:

def translate_document(text, chunk_size=3000, overlap=200):
    chunks = []
    start = 0
    while start < len(text):
        end = start + chunk_size
        # Не разрывать предложения
        if end < len(text):
            last_period = text.rfind(".", start, end)
            if last_period > start:
                end = last_period + 1
        chunks.append(text[start:end])
        start = end - overlap
    
    translated = []
    for i, chunk in enumerate(chunks):
        context = f"Часть {i+1} из {len(chunks)} одного документа. "
        if i > 0:
            context += f"Предыдущий фрагмент заканчивался: ...{translated[-1][-100:]}"
        result = translate(chunk, style=f"{context} Сохраняй единообразие терминов.")
        translated.append(result)
    
    return "\n".join(translated)

Перекрытие в 200 символов помогает модели сохранить связность текста. Контекст о предыдущем фрагменте обеспечивает единообразие терминологии.

Глоссарий терминов

Для корпоративного перевода критично единообразие терминов. Подключите глоссарий через системный промпт:

glossary = {
    "deployment": "развёртывание",
    "pipeline": "пайплайн",
    "latency": "задержка",
    "throughput": "пропускная способность",
    "fine-tuning": "дообучение",
    "inference": "инференс"
}

glossary_text = "\n".join(f"- {en} → {ru}" for en, ru in glossary.items())

system_prompt = f"""Ты — технический переводчик.
Используй следующий глоссарий:
{glossary_text}
Не отступай от глоссария. Неизвестные термины переводи общепринятым вариантом."""

Перевод файлов разных форматов

Для Markdown и HTML-файлов добавьте в промпт инструкцию сохранять разметку. Для SRT-субтитров (видео) сохраняйте таймкоды. Для JSON с текстовым контентом — переводите только значения, не ключи:

import json

def translate_json(data, target_lang="русский"):
    """Переводит строковые значения в JSON, сохраняя структуру."""
    json_str = json.dumps(data, ensure_ascii=False, indent=2)
    
    response = client.chat.completions.create(
        model="gpt-4o",
        temperature=0.2,
        messages=[
            {"role": "system", "content": f"Переведи значения JSON на {target_lang}. Не меняй ключи, числа, булевы значения. Верни валидный JSON."},
            {"role": "user", "content": json_str}
        ]
    )
    return json.loads(response.choices[0].message.content)

Стоимость и оптимизация

Перевод книги в 100 000 слов через GPT-4o обойдётся примерно в $15–20. Через GPT-4o-mini — $1–2, но с потерей качества на сложных конструкциях. Для технических текстов с простой структурой GPT-4o-mini достаточно. Для художественных и маркетинговых — стоит использовать GPT-4o или Claude.

Для снижения затрат: используйте локальные модели (Llama 3.1 70B даёт приемлемое качество перевода), кэшируйте переведённые сегменты, переводите только изменённые части документа при обновлениях.

Проверка качества

Автоматическая проверка перевода — ещё одно применение LLM. Отправьте оригинал и перевод в модель с промптом «Найди ошибки в переводе: пропуски, искажения смысла, стилистические проблемы». Модель вернёт список замечаний, которые можно исправить вручную или автоматически.

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

LLM для машинного перевода: почему это лучше традиционных систем

Традиционные системы машинного перевода (DeepL, Google Translate) используют специализированные нейросети, обученные исключительно на параллельных корпусах. LLM, обученные на огромных мультиязычных данных, показывают другой подход: они понимают контекст, стиль и культурные нюансы на уровне, недоступном специализированным переводчикам.

Сравнение подходов к автоматическому переводу

МетодКачествоСкоростьСтоимостьКастомизация
DeepL API★★★★☆★★★★★$20/1M знаковГлоссарии
GPT-4o (промпт)★★★★★★★★☆☆$2.5/1M токенов (вход)Полная: стиль, тон, термины
Claude Sonnet★★★★★★★★★☆$3/1M токенов (вход)Полная
OPUS-MT (open source)★★★☆☆★★★★★Бесплатно (self-hosted)Fine-tuning
NLLB-200 (Meta)★★★★☆★★★★☆Бесплатно (self-hosted)200 языков

Промпт-инженерия для перевода с LLM

Ключ к качественному переводу через LLM — системный промпт с контекстом задачи:

Ты — профессиональный переводчик технической документации.
Переведи следующий текст с английского на русский.
Требования:
- Сохраняй технические термины: [список терминов]
- Стиль: формальный, для инженерной аудитории
- Не переводи имена собственные и бренды
- При неоднозначности выбирай более точный вариант

Автоматизация перевода больших объёмов

Для перевода больших документов (книги, документация, субтитры) используют батчинг через API:

  1. Разбивка текста на чанки по 1000–2000 слов с учётом границ предложений
  2. Параллельная отправка чанков через asyncio (Python) или Promise.all (Node.js)
  3. Кэширование результатов для повторяющихся фрагментов
  4. Post-processing: восстановление форматирования, проверка глоссария

При батчинге GPT-4o через Batch API стоимость снижается на 50% — это делает LLM-перевод конкурентоспособным с DeepL даже для больших объёмов.

Когда LLM лучше специализированных переводчиков

LLM превосходят DeepL/Google в задачах: художественный перевод с сохранением стиля автора, локализация UI/UX с учётом культурного контекста, перевод юмора и идиом, перевод на редкие или диалектные языки. Для массового технического перевода однотипных текстов DeepL остаётся быстрее и дешевле.


Читайте также