- BrainTools - https://www.braintools.ru -

Переводим книги нейронками для себя: год спустя. Словари, скорости и почему переводчики всё ещё нужны

Год назад я написал статью «Переводим fb2 книжки, с нейронками, для себя [1]» — про то, как собрал на паре Tesla P40 в гараже программу Sunny Narrator («Солнечный сказочник»), которая переводит художественные книги через локальные и облачные LLM. Тогда это был скорее прототип «доказать себе, что так можно»: черновики читались с головной болью [2], книга в тысячу страниц переводилась два дня, а электричество, отключённое посреди процесса, стоило ещё двух.

За год программа доехала до версии 2.1, я перевёл достаточно книг, чтобы набить руку, и понял главное: это уже инструмент не только для меня, но и для переводчиков — и для всех любопытных. Рассказываю, что изменилось, сколько это стоит в токенах и почему без человека ничего не работает.

Две цифры и одна мысль про переводчиков

Первое. Перевод средней книги потребляет всего 1,5–2 миллиона токенов. Звучит как много, но на деле это одна книга — целиком, со всеми стадиями: перевод, замечания, исправление, корректура, резюме глав. Не десятки миллионов, не бесконечные диалоги с чат-ботом. Конечная, предсказуемая, небольшая величина.

Второе. Переводчики по-прежнему нужны и важны. Особенно хорошие. Нейронка не умеет в словотворчество: встречая новый термин, она чаще всего просто транскрибирует его. Классический пример — книги Нила Эшера: нейросеть честно выдаст «габлдак», в то время как живой переводчик в своё время нашёл великолепный «уткотреп» (а до него был ещё и «бормокряк» — и это тоже придумал человек). Машинный перевод не заменяет переводчика — он снимает с него черновую работу и оставляет то, что делает перевод литературой.

Что изменилось за год (кратко)

Если в прошлой статье Sunny Narrator был «поделкой на 200 строк, обросшей костылями», то сейчас это внятный пайплайн:

  • FB2 и EPUB (плюс DOCX и PDF через Calibre-конвейер). Причём FB2 идёт отдельным «классическим» путём — структура книги (стихи, строфы, разделы) сохраняется один в один.

  • Пять стадий контроля качества: перевод → замечания → исправление → корректура → резюме чанка. Можно включить быстрый режим из двух стадий — примерно в 2,5 раза быстрее, но уже не для финального художественного качества.

  • Checkpoint/resume: после каждого чанка пишется контрольная точка. Отключили свет, упала модель, уехал кот на клавиатуру — запуск продолжает с чанка №51 из 100, а не с начала. Моя старая боль «4 дня из-за электричества» закрыта.

  • JSON_MODE: модели на всех стадиях отвечают структурированным JSON — парсинг перестал быть лотереей.

  • Серийные словари: можно прогнать всю серию книг и собрать единый словарь имён и терминов по всем томам. Для многотомников это спасение.

Процесс перевода: чанк + словарь + резюме → перевод → замечания → исправление → корректура

Процесс перевода: чанк + словарь + резюме → перевод → замечания → исправление → корректура

Пайплайн почти не изменился с прошлой статьи — но каждая стадия стала надёжнее.

Одна модель — полтекста. Две модели — книга

Самый неочевидный вывод года: если переводить одной моделью, текст выглядит неполным. Хорошие переводческие модели отлично пишут, но слабо вычитывают; хорошие «вычитыватели» скучно переводят. Поэтому в Sunny Narrator работают две роли:

  • MODEL_TRANSLATE — переводчик;

  • MODEL_PROOFREAD — корректор, который смотрит на результат со стороны и чинит.

Мой личный вариант, сложившийся за месяцы прогонов:

  • gemma4-26B-A4B — переводчик;

  • qwen3.6-35B-A3B — корректор.

Обе — компактные MoE-модели, которые уверенно живут на паре Tesla P40 и выдают 40–70 токенов в секунду. Это весьма и весьма быстро: для локального железа вчерашнего дня — почти непозволительно. Можно брать модели и меньше, они тоже работают, — но именно эта пара даёт лучшее соотношение скорости и «литературности» из всего, что я пробовал.

Кстати, год назад в комментариях мне советовали посмотреть в сторону Qwen вместо Mistral — совет оказался пророческим, спасибо. Теперь очередь за советом про графовые БД и RAG, но это уже другая история.

Сколько стоит книга и сколько книг в день помещается в гараж

Математика [3] простая и приятная:

  • Средняя книга — 1,5–2 млн токенов суммарно по всем стадиям.

  • Две Tesla P40 с этой парой моделей — 2–3 книги в день.

  • Если вместо локального железа взять подписку Qwen через API — книги начинают считаться уже десятками, упираясь только в лимиты подписки и вашу решимость.

Что происходит с результатом дальше? А вот тут самое интересное для скептиков «машинный перевод — это нечитаемо». Готовый перевод — это черновик высокой готовности. Его доводка до приличного вида сводится к:

  1. вычитке текста;

  2. замене слов, которые пропустили в словаре (имена, термины, говорящие фамилии);

  3. замене того, что «выглядит неприглядно» — кривых оборотов, неудачных каламбуров, стилистических провалов.

То есть человек делает то, что он и должен делать: редакторскую и переводческую работу, а не разгребает кашу из путающихся имён и родов. Переводчику такой черновик экономит недели; любопытному читателю — позволяет вообще прочесть книгу, которая иначе не добралась бы до него.

Скрин куска текста: от издательства, от MVP и оригинал

Скрин куска текста: от издательства, от MVP и оригинал

Для сравнения — фрагменты оригинала, перевода годичной давности и издательского перевода.

Словарь — это 80% успеха

Если из всей статьи вы запомните одну фразу, пусть это будет она: самое главное — подготовить корректный словарь. Модель может быть средней, железо — скромным, но со словарём книга переводится ровно: имена не плывут, термины не переименовываются на каждой странице, герои не меняют пол между главами. И наоборот: без словаря даже отличная модель даст вам дрейф имён и «Алису, которая стала Элис».

Откуда брать словарь? В программе есть встроенные NER-словари: модель распознавания именованных сущностей (spaCy) проходит по книге и вытаскивает всех персонажей, организации, города и страны, а частотный анализ добавляет важные слова. На выходе получается заготовка книга.dic в формате оригинал = перевод, категория, род, примечания. Для серии книг — один общий словарь по всем томам.

Честно предупреждаю: эти словари собираются гигантскими, и на чистку и вычитку словаря иной раз уходят часы. Это нормальная цена входа. Пропущенное в словаре слово — это как раз та самая «неприглядность», которую потом придётся ловить на вычитке. Так что правило простое: час, вложенный в словарь до перевода, экономит день после.

Анонс: сайт обмена словарями (и немного про закон)

Словари — главная ценность всей затеи, и я готовлю сайт для обмена словарями: чтобы сообщество могло выкладывать и забирать готовые словари к книгам и сериям.

Зачем это нужно с юридической точки зрения [4]: сам машинный перевод книги — территория серая, а вот словарь имён и терминов — обычный список фактов. Обмениваясь словарями, мы сможем не нарушая законодательства заметно поднимать качество перевода тех книг, которые у вас уже есть в формате FB2 или EPUB: взял свою копию, накатил чужой вычищенный словарь — и получил перевод, на который раньше уходили часы ручной подготовки. Перевод при этом каждый делает локально, сам, на своём железе или своём API.

Сайт в работе; как только будет что показать — напишу отдельно, а ссылка появится в репозитории.

Удивительное про длину: ±2% и речанкинг

Признаться, я ожидал, что русского текста на выходе станет ощутимо больше — традиционно перевод с английского «разбухает». А потом я посмотрел на цифры и удивился: английский мапится в русский с точностью до пары процентов.

Это не случайность [5], а встроенный контроль длин. Программа сравнивает размер блока оригинала и перевода, и если расхождение уезжает заметно за 10% — значит, что-то пошло не так: модель съела абзац, нафантазировала, задвоила. В этом случае срабатывает речанкинг: блок разбивается пополам и каждая половина переводится заново. Просто, топорно — и на практике реально решает львиную долю ошибок перевода. Итоговая книга по размеру сходится с оригиналом в пределах ±5%.

Пример лог-файла — по нему видно, как шёл перевод

Пример лог-файла — по нему видно, как шёл перевод

Лог по-прежнему огромный (кратно больше самой книги) и по-прежнему лучший инструмент диагностики.

Ответы на прошлые комментарии — делами, а не словами

В прошлый раз под статьёй было немного комментариев, но все по делу. Краткий отчёт, что из этого выросло:

  • «Плагин Calibre переводит книгу за 2 часа, а у вас 2 дня» — да, короткие и простые тексты плагины щёлкают быстро, и для фанфиков/рассказов это честный выбор. Но на книгах от 500+ страниц без контекста, словаря и моделей от 20B текст рассыпается: голова лопнет от переключений имён, родов и полов. Теперь у меня есть и скоростной режим, и вменяемое время: 2–3 книги в день на локальном железе.

  • «Попробуйте Qwen вместо Mistral» — сделано: связка qwen3.6-35B-A3B + gemma4-26B-A4B сейчас рекомендуемая в репозитории.

  • «Боль с FB2 в Calibre» — понимаю, сам там живу: поэтому FB2 идёт отдельным бережным пайплайном, а вот EPUB/DOCX/PDF теперь, наоборот, доступны через Calibre-конвейер.

  • «А надо ли усложнять, может прогресс сам всё решит?» — прошёл год. Готового инструмента, который переводил бы книгу целиком с удержанием контекста, имён и терминов, так и не появилось. Прогресс решает качество абзаца; контекст книги по-прежнему приходится строить руками. Так что усложняем дальше.
    Есть отличные скилы для Claude ChatGPT но объем вычитки в дни для меня все еще много. Но спасибо тем ребятам что выкладывают такие переводы, пару книг я брал с таким переводом и после них не выдержал и значительно доработал составление словарей, узнал что такое косинусные сравнения, вектора и NLP пайплайн.

Итого: кому это нужно и зачем это вам

  • Переводчикам — как черновик высокой готовности: словарь + вычитка вместо перевода с нуля. Особенно на больших сериях, где единый словарь имён решает половину проблем.

  • Издательствам и редакциям — как способ быстро прикинуть, стоит ли браться за книгу, и как черновой слой под работу редактора. (И да, вопрос лицензии на код открыт.)

  • Любопытным читателям — как возможность прочесть книгу, которой нет на вашем языке: своя копия книги, свой словарь, своё железо, никакой магии и никакого нарушения закона.

  • Энтузиастам локальных LLM — как живую боевую нагрузку для пары старых серверных GPU: 40–70 токенов в секунду на Tesla P40 сегодня вполне по карману.

Всё как раньше: питон, два провода и упрямство.

Репозиторий: github.com/NW15D/sunny-narrator [6] — там код, документация (13 страниц, включая русский README), примеры конфигов под Ollama/llama.cpp/Docker и те самые рекомендуемые модели.

Если перевели что-то интересное или готовы помочь со словарями/порталом обмена — жду в issues и PR. И, как и год назад: если у вас валяется без дела пара серверных видеокарт — вы знаете, что с ними делать.

Автор: neowisard

Источник [7]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/34950

URLs in this post:

[1] Переводим fb2 книжки, с нейронками, для себя: https://habr.com/ru/articles/946870/

[2] болью: http://www.braintools.ru/article/9901

[3] Математика: http://www.braintools.ru/article/7620

[4] зрения: http://www.braintools.ru/article/6238

[5] случайность: http://www.braintools.ru/article/6560

[6] github.com/NW15D/sunny-narrator: https://github.com/NW15D/sunny-narrator

[7] Источник: https://habr.com/ru/articles/1077366/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1077366

www.BrainTools.ru

Rambler's Top100