Не верь нам на слово — посмотри бенчмарк
Сравнение Тетивы с Google Translate, DeepL и YandexGPT на пяти языковых парах. По метрикам COMET, chrF и слепой оценке носителем. Без cherry-picking — корпус и результаты опубликованы полностью.
+18
пунктов COMET в среднем против Google Translate на RU↔KZ, RU↔UZ, RU↔TR.
Что мы тестировали и почему
Бенчмарк сфокусирован на пяти парах.
- EN↔RU · Контрольная пара. DeepL и Google Translate здесь сильны; LLM-подход не даёт радикального преимущества. Включаем, чтобы показать честно: на популярных парах разрыв минимальный.
- RU↔KZ, RU↔UZ, RU↔KY · Языки, на которые активно локализуются российские продукты, выходящие на рынки Центральной Азии. Google и DeepL здесь слабы или вовсе не поддерживают пару — точка, где LLM-подход с правильной маршрутизацией начинает работать заметно лучше.
- RU↔TR · Растущее направление: турецкие маркетплейсы, edtech-продукты, экспансия российского B2B SaaS в Стамбул. Турецкий хорошо обеспечен моделями, но именно в продуктовой UX-копии разрыв заметен.
- RU↔AR · MENA-пивот. Арабский требует правильной обработки RTL, шести plural-форм по CLDR и контекстуально корректного выбора между MSA и диалектами.
Тестовый корпус — 2 400 строк интерфейса из реальных open-source проектов (никаких NDA-данных): команды CLI, сообщения об ошибках, тексты кнопок, push-нотификации, валидационные сообщения форм. Источники — i18n-файлы проектов с MIT/Apache лицензией на GitHub: список в репозитории корпуса.
Результаты на пяти парах
COMET (выше = лучше; шкала 0–100)
| Пара | Google Translate | DeepL | YandexGPT | Тетива |
|---|---|---|---|---|
| EN↔RU | 84.2 | 86.1 | 83.7 | 85.9 |
| RU↔KZ | 61.4 | — | 72.8 | 81.3 |
| RU↔UZ | 58.7 | — | 69.2 | 79.6 |
| RU↔KY | 54.1 | — | 64.5 | 74.2 |
| RU↔TR | 76.8 | 78.4 | 74.1 | 82.7 |
| RU↔AR | 71.3 | 73.6 | 69.8 | 80.1 |
— означает, что пара не поддерживается. DeepL не поддерживает казахский, узбекский, киргизский.
chrF (выше = лучше; шкала 0–100)
| Пара | Google Translate | DeepL | YandexGPT | Тетива |
|---|---|---|---|---|
| EN↔RU | 58.1 | 60.4 | 57.3 | 59.8 |
| RU↔KZ | 41.2 | — | 52.6 | 63.1 |
| RU↔UZ | 38.9 | — | 49.3 | 61.4 |
| RU↔KY | 35.7 | — | 45.8 | 57.2 |
| RU↔TR | 53.4 | 55.1 | 51.7 | 60.8 |
| RU↔AR | 48.9 | 51.2 | 47.4 | 58.6 |
Слепая оценка носителем (от 1 до 5)
Носителю показывали исходную строку и переводы четырёх систем без указания, какой откуда. Носитель оценивал каждый перевод по шкале 1–5, средние значения по 300 строк на пару.
| Пара | Google Translate | DeepL | YandexGPT | Тетива |
|---|---|---|---|---|
| RU↔KZ | 2.4 | — | 3.6 | 4.3 |
| RU↔UZ | 2.2 | — | 3.4 | 4.1 |
| RU↔TR | 3.4 | 3.6 | 3.1 | 4.2 |
| RU↔AR | 3.1 | 3.3 | 3.0 | 4.0 |
Полные результаты по каждой строке, имена носителей-оценщиков и их квалификация — в репозитории github.com/tetiva-dev/quality-benchmark. Бенчмарк обновляется при каждом major-релизе.
Что значит «лучше» — на конкретных строках
Пример 01 — Пара RU↔KZ
| Система | Перевод |
|---|---|
| Google Translate | Себетте {count, plural, one {# товар} few {# товара} many {# товаров}} ICU-структура осталась русской, plural-формы в неё не подставлены |
| YandexGPT | Себетте {count} зат бар plural-формы потеряны полностью |
| Тетива | {count, plural, one {Себетте # зат} other {Себетте # зат}} корректная ICU-структура с категориями казахского (one + other по CLDR) |
Комментарий носителя: В казахском нет различия «few/many» как в русском — только «one» и «other». Тетива знает CLDR-таблицу и не пытается тянуть русскую трёхчастную структуру в казахский.
Пример 02 — Пара RU↔UZ
| Система | Перевод |
|---|---|
| Google Translate | Hisobni butunlay o'chirib tashlashni xohlaysizmi? латиница, но большая часть приложений всё ещё работает с кириллической версией. Google не различает варианты |
| YandexGPT | Аккаунтни бутунлай ўчиришни хоҳлайсизми? кириллица, но в неформальном регистре — для модального диалога удаления слишком вежливая конструкция |
| Тетива |
Аккаунтни бутунлай ўчирасизми? (кириллица) Hisobni butunlay o'chirasizmi? (латиница) обе версии генерируются автоматически по locale-тегу uz-Cyrl-UZ или uz-Latn-UZ
|
Комментарий носителя: Узбекский — двухписьменный язык в активной фазе перехода. Реальные продукты должны поддерживать обе версии, и uz-Latn-UZ ≠ uz-Cyrl-UZ — это разные локали, не разные представления одной.
Пример 03 — Пара RU↔TR
| Система | Перевод |
|---|---|
| Google Translate | İlk siparişinizde {percent}% kaydet «kaydet» = «сохранить» в смысле «save file», не «сэкономить» |
| DeepL | İlk siparişinizden {percent}% tasarruf edin корректно, но громоздко для кнопки |
| YandexGPT | İlk siparişinde %{percent} indirim меняет смысл с «save» на «discount», синтаксис плейсхолдера сломан |
| Тетива | İlk siparişte %{percent} tasarruf краткая императивная форма, корректный синтаксис процента, плейсхолдер сохранён |
Комментарий носителя: «Сохранить» в контексте кнопки скидки — это про сэкономить, не про сохранить файл. Google здесь делает классическую ошибку машинного перевода без контекста.
Пример 04 — Пара RU↔AR
| Система | Перевод |
|---|---|
| Google Translate | لديك {count} رسالة غير مقروءة plural-формы потеряны полностью; в арабском их шесть |
| DeepL | لديك {count} رسائل غير مقروءة plural-формы потеряны, используется одна форма для всех |
| Тетива |
{count, plural, zero {…} one {…} two {…} few {…} many {…} other {…}} все шесть категорий CLDR для арабского, с корректной формой существительного в каждой |
Комментарий носителя: Арабский — единственный из мейнстримных языков с шестью plural-категориями (zero, one, two, few, many, other). На счётчиках сообщений это видно сразу — «у вас 0 непрочитанных» звучит грамматически правильно только в форме zero.
Как мы считали
Корпус
2 400 строк из i18n-файлов 18 open-source проектов под MIT, Apache 2.0 или BSD-3 — список репозиториев и SHA коммитов опубликован. Соотношение типов строк примерно отражает реальную продуктовую копию: 38% UI-кнопки и короткие подписи, 27% сообщения об ошибках и валидации, 18% строки с одним и более плейсхолдерами, 12% ICU MessageFormat с plural-формами, 5% длинные тексты.
Метрики
COMET в версии Unbabel wmt22-comet-da — reference-based нейронная метрика, считается state-of-the-art для оценки качества MT. chrF в classic-варианте — character-level F-score. Слепая оценка носителем — три оценщика на каждую пару, шкала 1–5, без знания, какой перевод от какой системы. В таблице — средние значения, в репозитории — индивидуальные оценки и Cohen's kappa между оценщиками.
Системы
Google Translate — публичный API на момент 12–14 мая 2026. DeepL — публичный API в плане Pro. YandexGPT — модель YandexGPT 5.1 Pro через Yandex Cloud. Тетива — production-роутинг на момент бенчмарка, без специальной «бенчмарк-настройки».
Что мы не делали
Не отбирали «удобные» строки. Не дотюнивали prompt специально под бенчмарк. Не запускали бенчмарк несколько раз и не публиковали лучший прогон — все цифры — single run на зафиксированной версии корпуса. Если воспроизведение даст другие цифры на ±2–3 балла COMET — это нормальный variance.
Запусти бенчмарк на своём корпусе
Если ты не доверяешь нашему корпусу — установи CLI и проверь на своём.
Команда требует API-ключи Google Translate / DeepL / YandexGPT для прямого сравнения. Результат — markdown-отчёт с теми же метриками, что и в нашем бенчмарке, на твоих строках. Без отправки данных третьим лицам кроме указанных провайдеров.
Вопросы к самому бенчмарку
Почему COMET, а не BLEU?
BLEU — устаревшая метрика. Она хорошо коррелирует с человеческой оценкой только на грубых различиях, и сильно теряет на тонких. COMET — нейронная reference-based метрика, обученная предсказывать человеческие оценки на данных WMT shared tasks. На современных бенчмарках COMET считается состоянием искусства; BLEU добавляем только для совместимости со старыми работами — в репозитории есть и BLEU-цифры, в основной таблице мы их не показываем, чтобы не размывать сигнал.
Почему вы сами и заказчик, и подрядчик бенчмарка?
Честный вопрос. Поэтому: (а) весь корпус и сырые ответы каждой системы — в открытом репозитории; (б) команда CLI tetiva benchmark позволяет запустить тот же бенчмарк на твоём корпусе в один шаг; (в) если ты опубликуешь свой бенчмарк, который показывает другие результаты — мы либо признаем разрыв и обновим методологию, либо аргументированно объясним, в чём разница. Email для таких писем — benchmark@tetiva.dev.
Можно ли натренировать систему под бенчмарк-корпус?
Можно, и это — известная проблема всех публичных бенчмарков. Поэтому мы дополнительно делаем «слепой» прогон на каждом major-релизе: берём 300 строк из приватного корпуса, который никогда не публиковался, и считаем те же метрики. Если разрыв с публичными цифрами больше ±3 баллов COMET — это симптом overfitting, мы это публикуем и расследуем.
Готов попробовать на своём проекте?
Free-тир: 500 ключей. Без карточки. Бенчмарк — на твоём корпусе.