3,583 papers
arXiv:2610.27852 77 20 окт. 2026 г. FREE

Contrastive Round-Robin Voting: выбор лучшего перевода через попарные «дуэли» вариантов

КЛЮЧЕВАЯ СУТЬ
Автоматические метрики качества перевода (COMET-Kiwi, MetricX) угадывают лучший вариант из 8 в 12–17% случаев. Это уровень жребия: при случайном выборе выходит 12,5%. Метод контрастного турнира позволяет выбрать лучший перевод из нескольких, не доверяя баллам и метрикам. Сначала модель делает последовательную доработку: переводит текст и 7 раз просит себя улучшить прошлую версию. Потом сильная модель-судья сравнивает варианты парами, называет различия и выносит вердикт. Каждую пару она судит дважды, меняя порядок. По итогам у судьи 20–37% точности вместо 12–17% у метрик, и выбор ближе к мнению людей-экспертов.
Адаптировать под запрос
⚡

TL;DR

Contrastive Round-Robin Voting (контрастный турнир «каждый с каждым») — способ выбрать лучший вариант из нескольких. Модель сравнивает варианты попарно, явно называя различия, а не ставит каждому оценку отдельно. Каждая пара судится дважды, с обменом порядка. Победы суммируются, побеждает вариант с наибольшим счётом. Варианты берутся из последовательной доработки: модель переводит текст, потом 7 раз просит себя «улучши предыдущий перевод».

Главная находка: автоматические метрики качества перевода (COMET-Kiwi, MetricX) на сильных современных переводах почти не отличаются от случайного выбора. Они угадывают лучший вариант примерно в 12–17% случаев из 8, то есть как жребий. Модель в роли попарного судьи выбирает заметно лучше и ближе к оценкам людей-экспертов. Но есть ловушка. Слабые модели-судьи (Gemini-2.5-Flash, GPT-4o-mini) часто выдают «ничья», а если поменять варианты местами, меняют решение. У сильных моделей (GPT-5.4, Gemini-3.5-Flash) таких сбоев в разы меньше.

Метод двухшаговый. Шаг 1: сгенерировать пул вариантов, каждый следующий — доработка предыдущего. Шаг 2: прогнать все пары через сильного судью с двойной проверкой порядка и выбрать победителя по сумме очков.

🔬

Схема метода

ШАГ 1: Перевод → «улучши предыдущий» ×7 → пул из 8 вариантов
        (в авторской версии в контекст идёт только ПОСЛЕДНИЙ вариант, не вся история)

ШАГ 2: Для каждой пары (i, j) → судья сравнивает «A vs B», называя различия
        → вердикт: 1 (A лучше) / −1 (B лучше) / 0 (ничья)
        → то же с обратным порядком (B vs A)

ШАГ 3: Очки варианта = выигрыши в обоих порядках − проигрыши в обоих порядках
        → победитель = максимум очков

Шаги 1 и 2 — отдельные запросы. Судья должен быть отдельным вызовом, лучше в новом чате.

🚀

Пример применения

Задача: Основатель российского SaaS выходит на Product Hunt и переводит на английский первый экран лендинга. Нужен не «нормальный», а лучший вариант: короткий, без калек с русского и с сохранённым тоном.

Промпт (шаг 1, доработка в том же чате):

Переведи на английский заголовок и подзаголовок лендинга. Аудитория: 
основатели стартапов и продуктовые менеджеры в США и Европе. Тон: 
уверенный, без пафоса.

«Принимайте оплату от клиентов из 40 стран без юрлица за границей. 
Подключение за один день, комиссия от 1,9%».

Затем 3–7 раз подряд отправляется одна и та же реплика:

Пересмотри свой предыдущий перевод и улучши его. Верни только новую версию.

Каждую версию сохрани в заметки.

Промпт (шаг 2, новый чат, одна пара):

Ты — строгий редактор-переводчик. Сравни два перевода одного исходника.
Сначала перечисли конкретные различия между ними (смысл, терминология, 
естественность, тон). Затем вынеси вердикт.

Исходник: «Принимайте оплату от клиентов из 40 стран без юрлица за границей. 
Подключение за один день, комиссия от 1,9%».
Требование: уверенный тон, без пафоса, аудитория — основатели стартапов.

Перевод A: {версия 3}
Перевод B: {версия 7}

Ответь JSON: {"differences": "...", "verdict": 1 | -1 | 0}
(1 — A лучше, −1 — B лучше, 0 — равны)

Потом та же пара с переставленными A и B.

Результат: Первые шаги дадут 4–8 версий перевода. Каждая следующая чуть отличается от предыдущей, иногда лучше, иногда нет. Судья на каждой паре выдаст короткий список различий и JSON с вердиктом. После двух порядков у каждой пары будет итог: победа, поражение или ничья. Суммируешь очки и берёшь вариант с максимумом. Если судья по одной паре дал противоположные вердикты в разных порядках, она считается ничьей. Это сигнал, что варианты близки.

🧠

Почему это работает

Слабость LLM и метрик. Абсолютная оценка («поставь переводу 85 из 100») нестабильна. Метрики вроде COMET-Kiwi плохо различают сильные переводы: все они «хорошие», разница тонкая. Оценка по шкале требует калибровки, а модель каждый раз «плавает» по шкале.

Сильная сторона LLM. Модели гораздо лучше говорят «этот лучше, потому что…», когда видят два текста рядом. Различия видны сразу. Вердикт «A или B» требует только относительного суждения, без привязки к шкале. Поэтому парное сравнение устойчивее поточечной оценки.

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

Рычаги управления: - Число вариантов N → меньше N, меньше пар (2N(N−1) вызовов). Для чата хватит 3–4. - Судья → сильнее модель, меньше ничьих и «перепрыгиваний» при смене порядка. - Режим рассуждения у судьи → прирост мал. Авторы выбрали быстрый режим без рассуждений как лучший по цене/качеству. - Блок инструкции → если у перевода есть специальное требование (тон, глоссарий), добавь его в судью: «также оцени, насколько точно вариант следует этому требованию». Банальное «переведи с X на Y» в судью не включается. - Формат вердикта → JSON с тремя значениями убирает болтовню и упрощает подсчёт.

📋

Шаблон промпта

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

Шаг 1. Генерация (первый запрос и доработки в одном чате):

Первый запрос:
Переведи с {язык_исходный} на {язык_целевой}.
Контекст и требования: {инструкция}.
Текст: {текст}

Каждый следующий запрос (повторить {число_доработок} раз):
Пересмотри свой предыдущий перевод и улучши его. Верни только новую версию.

Шаг 2. Судья (новый чат, отдельный вызов на каждую пару, дважды с обменом A/B):

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

Исходный текст: {текст}
Направление: {язык_исходный} → {язык_целевой}
{блок_инструкции}

Перевод A:
{вариант_A}

Перевод B:
{вариант_B}

Ответь строго JSON:
{"differences": "<кратко, по пунктам>", "verdict": 1 | -1 | 0}
1 = A лучше, -1 = B лучше, 0 = равны.

Шаг 3. Подсчёт:

score[i] = (победы i в роли A и в роли B) − (поражения i в обоих ролях)
Победитель = вариант с максимальным score.

{блок_инструкции} — вставляй только если у перевода есть особое требование. Формулировка из статьи: «Переводы были выполнены по такой инструкции; также оцени, насколько точно каждый вариант ей следует: {инструкция}».

🚀 Быстрый старт — вставь в чат:

Вот шаблон «контрастный турнир для выбора лучшего варианта». 
Адаптируй под мою задачу: {твоя задача}. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про язык и аудиторию, особые требования к тексту и количество вариантов. Эти данные нужны, чтобы заполнить {инструкция} и {блок_инструкции} и подобрать число пар под ваш бюджет. Она возьмёт структуру из шаблона (генерация → попарное сравнение → обмен порядка → подсчёт) и подстроит под вашу задачу.

⚠️

Ограничения

⚠️ Шаблоны не даны: в предоставленном тексте нет дословных промптов. Структуру можно воспроизвести, но точные формулировки авторов неизвестны.

⚠️ Нет прямого сравнения с поточечным LLM-судьёй: «очень чёткое улучшение» показано против автоматических метрик (COMET-Kiwi, MetricX), а не против оценки «поставь балл» той же моделью. Что даёт именно парность, а что сама сила модели, статья не разделяет.

⚠️ Слабый судья вредит: модели послабее часто дают «ничья» или меняют вердикт при перестановке. Это шум, а не рейтинг. Слабую модель в судьи ставить не стоит.

⚠️ Точность всё ещё скромная: даже у лучших судей угадывание «лучшего из 8» составляет примерно 20–37%. Метод заметно лучше случайности, но не заменяет редактора.

⚠️ Дорого по числу вызовов: на 8 вариантов полный турнир с двойным порядком — 112 вызовов, на финальный ансамбль двух моделей — 142. Для длинных текстов или массовой работы нужна автоматизация.

⚠️ Узкая проверка: судью проверяли на английско-китайском и английско-русском. Эффект последовательной доработки взят из соседней работы и показан на одной модели.

🔍

Как исследовали

Команда из Амстердама участвовала в соревновании по машинному переводу WMT26 на 23 направлениях. Идея: что можно выжать из «обычных» LLM только за счёт приёмов на этапе запроса, без дообучения. Для проверки судьи взяли данные WMT25: 198 абзацев EN→ZH и 200 EN→RU. Для каждого берут 8 случайных вариантов перевода от разных систем (GPT-4.1, Claude-4, Qwen3 и др.) с оценками людей-экспертов. Сравнивали, насколько ранжирование судьи совпадает с человеческим (корреляция Кендалла), и как часто он находит лучший вариант.

Что вышло: автометрики показали корреляцию около 5–9 из 100 и угадывали лучший вариант на уровне жребия. Попарные LLM-судьи дали 20–30. Сильные модели (GPT-5.4, Gemini-3.5-Flash) заметно лучше слабых: ничьих меньше, а при смене порядка вердикт реже «прыгает» (12,6% против 51,4% у Gemini-2.5-Flash на китайском).

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

💡

Адаптации и экстраполяции

🔧 Техника: убрать «рассуждение» у судьи → быстрее и дешевле

Авторы брали минимальное reasoning effort и температуру 0. В чате это значит: просить только JSON с вердиктом, без длинного обоснования. Для скорости оставь в differences одну-две строки.

🔧 Техника: добавить критерий в блок инструкции → судья учитывает ваше требование

Для текстов с жёстким брифом вставь: «Оцени также, насколько вариант следует требованию: без англицизмов, до 12 слов в заголовке, тон как у Stripe». Именно так авторы подмешивают специальные инструкции.

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

Сравни два заголовка для рассылки. Сначала назови различия, потом дай 
вердикт JSON {"verdict": 1|-1|0}.
Заголовок A: {…}
Заголовок B: {…}
Критерий: {открываемость у B2B-аудитории}

Повтори с обратным порядком. Победитель — тот, кто выиграл в обоих.

🔗

Ресурсы

  • UvA-MT's Participation in the WMT26 General Translation Shared Task — Di Wu, Sergey Troshin, Wafaa Mohammed, Seth Aycock, Evgeniia Tokarchuk, Vlad Niculae, Christof Monz; Language Technology Lab, University of Amsterdam
  • Wu et al., 2026. Ladders in chaos: When, how, (and perhaps why) does test-time scaling improve LLM machine translation — основа последовательной доработки
  • Wu et al., 2025a. Please translate again — промпт доработки
  • Wang et al., 2024. Large language models are not fair evaluators — позиционное смещение судей
  • Бенчмарк: WMT25 General MT Human Evaluation (github.com/wmt-conference/wmt25-general-mt)

📋 Дайджест исследования

Ключевая суть

Автоматические метрики качества перевода (COMET-Kiwi, MetricX) угадывают лучший вариант из 8 в 12–17% случаев. Это уровень жребия: при случайном выборе выходит 12,5%. Метод контрастного турнира позволяет выбрать лучший перевод из нескольких, не доверяя баллам и метрикам. Сначала модель делает последовательную доработку: переводит текст и 7 раз просит себя улучшить прошлую версию. Потом сильная модель-судья сравнивает варианты парами, называет различия и выносит вердикт. Каждую пару она судит дважды, меняя порядок. По итогам у судьи 20–37% точности вместо 12–17% у метрик, и выбор ближе к мнению людей-экспертов.

Принцип работы

Вместо «поставь переводу 85 из 100» судья получает два текста рядом. Сначала он перечисляет конкретные различия: смысл, термины, естественность, тон. Потом пишет вердикт: 1 (A лучше), −1 (B лучше), 0 (ничья). Дальше работает турнир «каждый с каждым». Каждая пара идёт в двух порядках: A против B, потом B против A. Очки варианта = победы минус поражения в обоих порядках. Побеждает тот, у кого очков больше. Судья не оценивает вариант по шкале, он выбирает между двумя. Это как соревнование по борьбе: не нужно знать «абсолютную силу» борца, достаточно увидеть, кто кого уложил. Если по одной паре вердикты в разных порядках противоположны, пара считается ничьей. Это знак, что варианты почти равны.

Почему работает

Оценка по шкале плавает. Сильные переводы все «хорошие», и разница между ними тонкая. Метрики её не видят, а модель каждый раз сдвигает шкалу по-своему. При сравнении двух текстов различия видны сразу. Модели гораздо лучше говорят «этот лучше, потому что...», чем ставят абсолютный балл. Обмен порядка гасит позиционное смещение: привычку судьи выбирать первый или последний вариант. Доработка даёт пул, где варианты растут из предыдущих, а не независимы. По отчёту авторов, при малом бюджете это выгоднее параллельной генерации. Главный подвох: слабый судья превращает турнир в лотерею. Gemini-2.5-Flash и GPT-4o-mini часто выдают «ничья» и меняют решение при перестановке вариантов. У GPT-5.4 и Gemini-3.5-Flash таких сбоев в разы меньше. Режим рассуждений у судьи почти ничего не добавляет. Авторы выбрали быстрый режим как лучший по цене и качеству.

Когда применять

Перевод и локализация → когда нужен не «нормальный» вариант, а лучший: первый экран сайта, заголовок, питч, письмо инвестору, особенно если есть требования к тону или глоссарий. Работает и для выбора лучшего из нескольких вариантов любого короткого текста. Для чата хватит 3–4 варианта, на 8 вариантов уйдёт больше сотни вызовов, это уже для автоматизации. Не подходит для длинных документов вручную, для слабых моделей в роли судьи и как замена живому редактору. Даже лучшие судьи угадывают «лучшее из 8» лишь в 20–37% случаев.

Мини-рецепт

1. Сделай первый перевод: укажи аудиторию, тон и требования, вставь текст.
2. Доработай: в том же чате отправь 3–7 раз подряд Пересмотри свой предыдущий перевод и улучши его. Верни только новую версию. Каждую версию сохраняй в заметки.
3. Открой новый чат с сильной моделью: судья должен быть отдельным вызовом, без истории доработок.
4. Устрой дуэль: дай судье исходник, два перевода и формат ответа {"differences": "...", "verdict": 1 | -1 | 0}. Пиши: 1 — A лучше, −1 — B лучше, 0 — равны.
5. Поменяй местами: прогони ту же пару, переставив A и B. Противоположные вердикты в двух порядках = ничья.
6. Добавь особое требование: если важен тон или термины, допиши судье: «Оцени, насколько точно каждый вариант следует этому требованию: <требование>тон уверенный, без пафоса».
7. Посчитай очки: победы минус поражения в обоих порядках. Бери вариант с максимумом.

Примеры

[ПЛОХО] : Переведи на английский и оцени свой перевод по шкале от 1 до 100
[ХОРОШО] : Шаг 1, в одном чате: Переведи на английский заголовок первого экрана сайта. Аудитория: основатели стартапов в США и Европе. Тон: уверенный, без пафоса. Текст: «Принимайте оплату от клиентов из 40 стран без юрлица за границей. Подключение за один день, комиссия от 1,9%». Затем 4 раза: Пересмотри свой предыдущий перевод и улучши его. Верни только новую версию. Шаг 2, в новом чате: Ты — строгий редактор-переводчик. Сначала перечисли конкретные различия между переводами A и B (смысл, термины, естественность, тон). Потом вынеси вердикт. Требование: уверенный тон, без пафоса. Перевод A: {версия 2}. Перевод B: {версия 5}. Ответь JSON: {"differences": "...", "verdict": 1 | -1 | 0} Потом та же пара с переставленными A и B. Так сравни все пары из пяти версий и сложи очки.
Источник: UvA-MT's Participation in the WMT26 General Translation Shared Task
ArXiv ID: 2610.27852 | Сгенерировано: 2026-10-22 17:50

Проблемы LLM

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

Методы

МетодСуть
Турнир «каждый с каждым» — выбор лучшего из нескольких вариантовЧто делать. Сгенерируй 3–8 вариантов текста. Каждую пару отдай судье в новом чате. Попроси сначала перечислить различия, потом вынести вердикт. Формат: {"differences": "...", "verdict": 1 | -1 | 0}, где 1 — A лучше, −1 — B лучше, 0 — равны. Прогони пару второй раз с обратным порядком. Очки варианта = победы в обоих порядках минус поражения в обоих. Побеждает максимум очков. Почему работает. Сравнить два текста рядом проще, чем поставить оценку по шкале. Различия видны сразу. Шкала «плавает» от запроса к запросу, особенно когда все варианты хорошие. Явный список различий не даёт судье отвечать наугад. Двойной порядок гасит смещение к позиции. Много слабых относительных суждений складываются в устойчивый рейтинг. Приём для генерации. Варианты можно получить доработкой: «Пересмотри свой предыдущий перевод и улучши его. Верни только новую версию». Повтори несколько раз в одном чате. Если есть особое требование (тон, глоссарий), добавь его в запрос судьи: «Также оцени, насколько точно вариант следует этому требованию». Когда да: важен лучший вариант, а не просто хороший. Варианты близки по качеству. Есть чем проверить требования. Когда нет: нужен один быстрый ответ. Текстов много, а автоматизации нет. Число вызовов растёт как 2N(N−1): при 4 вариантах это 24 вызова, при 8 — 112. Судья слабая модель. Метод не заменяет редактора: у лучших судей точность угадывания «лучшего из 8» всё равно скромная
📖 Простыми словами

UvA-MT's Participation in the WMT26 General Translation Shared Task

arXiv: 2610.27852

Нейросети патологически не умеют ставить оценки по шкале. Если попросить модель оценить перевод от 1 до 100, она нарисует цифры с потолка: для неё и метрик вроде COMET все приличные варианты выглядят «примерно одинаково нормально». Но стоит заставить LLM сравнивать тексты лоб в лоб и тыкать пальцем в различия, включается логика. Модель — паршивый судья с секундомером, но идеальный арбитр в дуэли.

Это как выбирать костюм на важную встречу. Бессмысленно вешать на каждый пиджак ярлык вроде «7.8 баллов из 10» — через пять минут голова пойдёт кругом. Но если надеть две вещи рядом перед зеркалом, сразу видно: один висит мешком, а второй сидит идеально. В прямом сравнении мгновенно вылезают косяки, которые одиночный осмотр стыдливо замалчивает.

Рабочий метод называется Contrastive Round-Robin Voting. Сначала запускается последовательная доработка: модель переводит фразу, а потом 7 раз подряд улучшает свой же результат, выдавая пачку кандидатов. Затем эти варианты устраивают турнир «каждый с каждым». Фишка в том, что каждую пару судят дважды с переменой мест: так лечат баг предвзятости, когда нейросеть машинально подсуживает первому попавшемуся тексту.

Парни тестировали это на машинном переводе для WMT26, но принцип универсален. Схема идеально ложится на любой текст с высокими ставками: заголовок лендинга на Product Hunt, тему холодного письма или оффер для инвесторов. Везде, где нужен не просто грамматически правильный буллшит, а убойный смысл без калек, круговой турнир вычищает шелуху.

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

Работа с исследованием

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

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с