Skip to main content

Глоссарий в промпте: +12 процентных пунктов почти даром

Мария Соколова22.09.20266 min read
глоссарийтерминологияпромпт-инжинирингмашинный-переводконсистентность

Вы собрали глоссарий. Вы прикрепили его к задаче. Модель всё равно перевела ключевой термин тремя разными способами в одном документе.

Прикрепить глоссарий и заставить его соблюдать — разные задачи, и большинство конвейеров решают только первую. Хорошая новость в том, что вторая необычно дёшева: одна явная инструкция в промпте стоит около 12 процентных пунктов точности терминологии (arXiv:2605.14679). Мало что ещё в инженерии перевода окупается так хорошо при таких затратах.

Ниже — что писать в промпте, почему очевидная формулировка работает хуже и как проверять те термины, которые действительно важны.

Почему один глоссарий не держит

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

Повторяются три сценария отказа.

Синонимический дрейф. Термин передан верно в первый раз, а дальше по документу перефразирован. Читатель видит два слова и резонно предполагает две разные вещи.

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

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

Ни один из них не является провалом понимания. Модель поняла. Ей просто не сказали, что здесь консистентность важнее беглости.

Инструкция, которая приносит те самые 12 пунктов

Вариант, который отгружают в большинстве конвейеров, выглядит так:

Глоссарий: "интеллектуальная собственность" = "intellectual property"

Это подсказка. Модель воспринимает её как пожелание, потому что ничто в ней не говорит об обратном.

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

Терминология (ОБЯЗАТЕЛЬНА к соблюдению):
- "интеллектуальная собственность" → "intellectual property"
- "исключительное право" → "exclusive right"

Правила:
- Используйте целевой термин ровно в приведённом виде, при каждом появлении.
- Держите его одинаковым по всему документу — не варьируйте формулировку
  ради стиля.
- Если термин не встаёт грамматически, перестраивайте окружающее
  предложение, а не термин.

Последнюю строку чаще всего опускают, а работает именно она. Без неё модель оказывается перед конфликтом — ваш термин против грамматичного предложения — и разрешает его, изгибая термин. Указание на то, какая сторона может гнуться, снимает неоднозначность целиком.

Давайте подсказки посегментно, а не на документ

Есть и второе, структурное улучшение, которое ничего не стоит: прикрепляйте те статьи глоссария, которые относятся к этому сегменту, а не вклеивайте весь глоссарий в каждый вызов.

Глоссарий на 400 терминов в каждом промпте — это дорого и, что хуже, шумно: модели приходится находить две нужные статьи среди 398 ненужных. Если сначала сопоставить термины с сегментом и отправить только совпадения, получится короткий и точный список:

Глоссарий (ОБЯЗАТЕЛЬНО эти переводы): 'ОГРН' → 'OGRN', 'ЮЛ' → 'legal entity'

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

В пакетном переводе связка должна пережить пакетирование

Если вы переводите сегменты пакетами — а ради стоимости так и надо, — посегментные подсказки обязаны остаться привязанными к своим сегментам. Легко написать пакетный промпт, который собирает все подсказки в один список сверху, и так же легко модели потом применить термин из третьего сегмента к седьмому.

Нумеруйте их вместе с сегментами:

Переведите каждый пронумерованный сегмент:
[0] Сведения об основном виде деятельности
[1] ОГРН 1132537002553

Глоссарий по сегментам (ОБЯЗАТЕЛЬНО эти переводы):
  [1]: 'ОГРН' → 'OGRN'

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

Проверяйте важные термины обратным переводом

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

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

  1. Источник: исключительное право
  2. Перевод: exclusive right
  3. Обратный перевод: исключительное право

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

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

Глоссарий против памяти переводов

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

Глоссарий работает на уровне термина и предписывает: это слово должно передаваться так. Он действует внутри сегмента, везде, где термин встретился.

Память переводов (TM) работает на уровне сегмента и опирается на историю: это предложение целиком уже переводили так, значит, переиспользуем. Она действует, когда сегмент совпал с уже одобренным.

Переиспользование TM — точное или нечёткое — происходит на уровне предложения. Соблюдение глоссария работает ниже, на словах внутри предложения, которое TM не подобрала. Документ может на 80% состоять из переиспользования TM и всё равно требовать соблюдения глоссария на оставшихся 20%, а свежий документ без всякой TM всё так же нуждается в устойчивой терминологии.

Хотите, чтобы переиспользовался термин между предложениями, — это глоссарий. Хотите, чтобы переиспользовалось предложение, — это TM.

Главное

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

FAQ

Насколько большим может быть глоссарий, прежде чем промптинг перестанет работать?

Ограничение не в размере глоссария, а в количестве терминов в одном промпте. Сопоставляйте с сегментом заранее и отправляйте только совпадения — глоссарий на 400 терминов прекрасно работает, когда конкретный вызов видит три из них.

Что делать, если два термина глоссария пересекаются?

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

Работает ли это с терминами, которые должны склоняться?

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

Соблюдать глоссарий на выходе машинного перевода или в процессе?

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

Стоят ли 12 процентных пунктов дополнительных токенов в промпте?

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

Заключение

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

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

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

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