Skip to main content

Агентный перевод: посчитаем счёт

Алекс Чен27.10.20267 min read
агентные-системыllm-переводоптимизация-затратмашинный-переводai-перевод

Идея нравится сразу. Одна модель переводит, вторая проверяет, третья правит — и качество растёт, потому что именно так устроены человеческие переводческие команды. Это интуитивно, хорошо демонстрируется и продаётся напористо.

Арифметика популярна меньше. Последовательная связка переводчик→ревьюер→редактор стоит примерно впятеро больше токенов, чем один вызов; итеративная петля, крутящаяся до сходимости, — примерно впятнадцатеро (arXiv:2505.01560). Это цена. Дальше — о том, что за неё дают, по данным тех, кто мерил, и о том, что случилось, когда мы посмотрели на собственный агентный пайплайн и отказались от него.

Три конфигурации и их множители

Один вызов. Один промпт, один ответ. База: 1×.

Последовательные агенты. Перевести, потом отревьюить перевод, потом отредактировать по замечаниям. Каждая стадия перечитывает исходник и вывод предыдущей, поэтому входные токены растут быстрее, чем число стадий. Замерено примерно 5×.

Итеративные агенты. Петля «ревью — правка» повторяется, пока не пройдёт тест на сходимость или не упрётся в лимит. Примерно 15×, и — что важно — с высокой дисперсией: документ, который так и не устроил ревьюера, каждый раз стоит полного лимита.

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

Что множитель покупает, по замерам

Здесь результаты становятся для рекламы неудобными.

Против зрелого нейронного машинного перевода агентные системы проиграли по автометрикам в 7 из 12 комбинаций «языковая пара + домен». Не «выиграли меньше ожидаемого» — проиграли специализированной NMT-системе, стоящей в разы дешевле.

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

Честное прочтение не «агенты плохи». Оно уже и полезнее:

  • Выигрыш реален на длинной художественной прозе, где важна согласованность по всему произведению, и ревьюер с полным контекстом ловит дрейф, недоступный посегментному переводчику.
  • Выигрыш реален на юридических нюансах, где второй проход, специально настроенный искать изменённые обязательства, находит то, чего не находит первый.
  • Везде остальном множитель покупает дисперсию.

Почему ревьюер часто делает хуже

Контринтуитивную часть стоит объяснить: «добавьте проверяющего» звучит как то, что хуже сделать не может.

Стадия ревью — не валидатор. Это ещё одна генерация, и она поощряется — собственным промптом — за то, что нашла что сказать. Дайте модели хороший перевод и спросите, что с ним не так, — она расскажет, что с ним не так. Редактор дальше применит этот совет. Две стадии из трёх активно уводят вывод от перевода, который и так был верен.

Это та же форма отказа, что у слишком ретивого линтера: цена ложного срабатывания не нулевая, потому что дальше по цепочке кто-то по нему действует.

Лечение — там, где схема всё-таки окупается — сделать работу ревьюера фальсифицируемой: проверить, что эти конкретные числа на месте, что термины совпали с глоссарием, что ни одно обязательство не поменяло знак. Чек-лист, а не мнение. А это штука сильно дешевле агента — в чём, собственно, и суть.

Что мы сделали со своим

У нас он был. agent_pipeline.py вместе с промптами и типами — 668 строк, вшитых в сервис перевода импортом, строкой конструктора, вызовом и двумя методами.

Он включался при translation_mode == "agentic". API это значение никогда не принимал.

Итого: 668 строк агентного перевода, месяцами лежавших в репозитории и исполнившихся в проде ровно ноль раз. Никто не заметил: от него ничто не зависело и его ничто не тестировало.

Мы его удалили. Ресёрч, предшествовавший удалению, советовал вынуть ревьюерскую петлю под другую задачу — проверку извлечённых полей против схемы. Мы прочитали код, чтобы это сделать, и вынимать оказалось нечего: ревьюер сверял нечёткое совпадение из памяти переводов с исходным предложением, а это другая задача, чем проверка значения против объявленного поля. Идея живёт как рекомендация в наших же исследовательских заметках. Код для неё не понадобился.

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

Как решать: четыре вопроса

Если вам продают агентный слой перевода или вы думаете его строить:

1. Какова база, замеренная на вашем контенте? Не на WMT. На ваших документах, с вашим глоссарием, по той шкале, по которой вы качество и судите. Большая часть агентных выигрышей испаряется против одного хорошо составленного вызова с глоссарием внутри.

2. Что ревьюеру разрешено говорить? Если ответ «что угодно» — ждите регрессий. Если ответ — список фальсифицируемых свойств, то агент вам, возможно, и не нужен: нужен валидатор.

3. Сколько стоит несошедшаяся петля? Для итеративных схем считайте худший случай, а не средний. Зацикливаются трудные документы, то есть дорогие, то есть те, которых у вас много.

4. Сконцентрирован ли выигрыш? Если выигрыш реален на 5% документов — гоняйте дорогой путь на этих 5%. Выборочная эскалация забирает большую часть пользы за долю множителя, и, в отличие от агентного фреймворка, это правило маршрутизации, которое пишется за полдня.

Дешёвое, которое обычно и выигрывает

Для перевода документов вмешательства, которые в наших числах измеримо окупились, оказались все скучными:

  • Глоссарий в промпте — это один дополнительный блок входа, а не один дополнительный вызов модели.
  • Выключение «размышления» у рассуждающей модели на механической работе — это флаг.
  • Детерминированная проверка чисел после перевода — это сравнение цепочек цифр, и стоит она нисколько.
  • Не извлекать документ, уже извлечённый — это кэш.

Ни одно из этого не агент. Всё это дешевле одного лишнего прохода, и каждое чинит класс дефектов, а не подталкивает среднее.

Главное

  • Последовательные агенты стоят около 5× токенов, итеративные — около 15×, с высокой дисперсией на документах, которые не сходятся.
  • Замеры к рекламе недобры: агентные системы проиграли зрелому NMT по автометрикам в 7 из 12 комбинаций и одному вызову LLM по человеческой оценке в 5 из 6.
  • Стадия ревью — это ещё одна генерация, а не валидатор. Она поощряется за то, что нашла что сказать, а редактор дальше по этому действует.
  • Там, где схема окупается, делайте ревьюера фальсифицируемым — списком свойств, что дешевле и надёжнее агента.
  • Эскалируйте выборочно. Если выигрыш на 5% документов — тратьте множитель на эти 5%.

FAQ

Насколько агентный перевод дороже?

Примерно впятеро по токенам для последовательной связки переводчик-ревьюер-редактор и примерно впятнадцатеро для итеративной петли, по опубликованным замерам. Задержка растёт сопоставимо, а это важно для любого пайплайна, за которым наблюдает пользователь.

Улучшает ли агент-ревьюер качество перевода?

Иногда, и не по умолчанию. В опубликованных сравнениях один вызов LLM обошёл агентные системы по человеческой оценке в пяти случаях из шести. Ревьюер, которому велено искать проблемы, найдёт проблемы и в верном переводе, а стадия редактора дальше по этому совету поступит.

Когда агентный перевод действительно оправдан?

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

Чем дешевле заменить агента-ревьюера?

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

Как понять, используется ли агентный пайплайн вообще?

Инструментировать его. У нас это были 668 строк за значением режима, которое API никогда не принимал: в проде он исполнился ноль раз, и никто не заметил. Телеметрия токенов по путям вызова отвечает на этот вопрос за сутки.

Заключение

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

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

Если хотите перевод документов, где дорогие шаги — это те, которые замерили, — попробуйте KTTC.

We use cookies to improve your experience. Learn more in our Cookie Policy.