Переводим книги нейронками для себя: год спустя. Словари, скорости и почему переводчики всё ещё нужны. DIY или Сделай сам.. DIY или Сделай сам. epub.. DIY или Сделай сам. epub. fb2.. DIY или Сделай сам. epub. fb2. gemma.. DIY или Сделай сам. epub. fb2. gemma. llm.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40. искусственный интеллект.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40. искусственный интеллект. Контент и копирайтинг.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40. искусственный интеллект. Контент и копирайтинг. Ненормальное программирование.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40. искусственный интеллект. Контент и копирайтинг. Ненормальное программирование. перевод.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40. искусственный интеллект. Контент и копирайтинг. Ненормальное программирование. перевод. переводы.. DIY или Сделай сам. epub. fb2. gemma. llm. llm-приложения. python. qwen. tesla p40. искусственный интеллект. Контент и копирайтинг. Ненормальное программирование. перевод. переводы. словари.

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

За год программа доехала до версии 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, но это уже другая история.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это не случайность, а встроенный контроль длин. Программа сравнивает размер блока оригинала и перевода, и если расхождение уезжает заметно за 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 — там код, документация (13 страниц, включая русский README), примеры конфигов под Ollama/llama.cpp/Docker и те самые рекомендуемые модели.

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

Автор: neowisard

Источник