Всем привет. В этом посте расскажем, как мы тестировали БЯМ для переноса англоязычных датасетов на русский. «Мы» — это ваш покорный слуга и ребята из ФИЦ ИУ РАН. Пост по факту перевод нашей научной статьи, которая была опубликована еще в апреле, но вот руки до поста дошли только сейчас.

Начнем с проблемы. Объем текстовой информации растет из года в год и NLP-исследватели сталкиваются с вызовом разработки методов, которые позволили бы в этом объёме данных хотя бы не потеряться. В частности, это касается и научной информации. Чтобы оставаться на передовом уровне в своей научной области или быстро освоить новое направление, важно иметь инструменты, упрощающие этот процесс. Можно утверждать, что термины и их определения являются базовыми элементами любой предметной области. В связи с этим наличие методов их извлечения из литературы для ознакомления было бы крайне полезны. Это также актуально при анализе больших объемов научных данных.

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

  • наличие термина или определения в тесте,

  • разметка терминов и определений как именованных сущностей (задача NER),

  • связи между ними.

Проблема заключается в том, что для других языков, таких как русский, подобные ресурсы отсутствуют. Было бы удобно автоматически перенести существующий английский датасет на целевой язык для создания отправной точки. Но здесь есть некоторые трудности.
Разметку для общей задачи классификации текстов можно перенести просто путем перевода. Гораздо сложнее перенести разметку именованных сущностей, ведь необходимо найти соответствующие фрагменты в исходном и целевом языках. В последнее время большие языковые модели (БЯМ) показывают головокружительное качество в разных задачах обработки языка, включая перевод и распознавание именованных сущностей (NER). Мы решили попробовать БЯМ для межъязыкового переноса разметки. Наша гипотеза в том, что они могут автоматизировать процесс адаптации размеченного набора данных между различными языками, позволяя получить быструю базовую модель или обеспечить основу для разметки, что позволит сократить время и цену разметки.

Датасет DEFT

Давайте подробнее поговорим про датасет. DEFT представляет собой коллекцию текстов из свободно доступных книг на сайте cnx.org. Тексты охватывают такие темы, как биология, история, физика, психология, экономика, социология и государственное управление. Разметка NER включает метки терминов и определений в качестве основной аннотации, а также разметку для таких вспомогательных случаев, как псевдонимы, порядок и ссылочные выражения как для терминов, так и для определений. Для задачи обнаружения предложений, содержащих определение, разметка производится непосредственно на основе наличия NER-разметки определений в предложении. Разметка отношений связывает термины и определения. Более подробное описание, включая методологию разметки, смотрите в оригинальной статье. Мы используем корпус DEFT, который доступен на GitHub.

Статистика сущностей приведена на Рисунке 1 в разделе «ENG» для обучающей, проверочной и тестовой выборок, а также для подготовленного эталонной выборки, о которой далее. Также хотим отметить, что мы проводили эксперименты с третьей частью разметки, которая содержит связь между терминами и определениями.

Для удобства мы преобразовали исходный формат CoNLL в формат библиотеки Hugging Face Datasets. По сути, набор данных в Datasets может быть представлен как список словарей (объектов), которые легко конвертируются в формат JSON и обратно. В свою очередь это упрощает взаимодействие с БЯМ посредством этого формата, а также позволяет хранить датасет в хабе HF.

При предварительной обработке исходных файлов корпуса были обнаружены две проблемы. Первая связана с ошибкой токенизации, когда два предложения, содержащие широкий спан, были неправильно разделены. Как следствие, второе предложение начинается с токена, имеющего тег "I", что недопустимо в формате BIO.

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

WCL датасет

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

Мы также преобразовали датасет из исходного формата в общий формат Hugging Face Dataset, повторяя структуру, которая у нас получилась в DEFT датасете. В итоге мы получили 2822 предложения без определений и 1869 предложений с определениями. Затем мы делим весь датасет на обучающую (train), валидационную (dev) и тестовую (test) выборки в пропорции 70/10/20.

Какие БЯМ использовали

Мы постарались протестировать разнообразные БЯМ, чтобы оценить их производительность для нашей цели. Вот их список (март 2025):

  • llama-3.1-8b-instruct

  • gpt-3.5-turbo

  • gpt-4o-mini

  • gpt-4.1-nano

  • gpt-4.1-mini

  • deepseek-chat-v3-0324

  • deepseek-r1

  • qwen-2.5-72b-instruct

Для упрощения экспериментов мы использовали сервис bothub.chat в качестве единого прокси для доступа к вышеуказанным моделям. Этот сервис предоставляет унифицированный интерфейс к различным API — включая ChatGPT от OpenAI, DeepSeek, Llama и Qwen — тем самым устраняя необходимость в прямой интеграции с API.

Методология

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

Подготовка эталонного (gold) набора

Для оценки качества результатов на каждом этапе необходим надежный набор данных с вручную проверенным переводом и NER-разметкой. Когда мы приступали к этой работе, у нас уже был перевод всего dev-выборки (1179 предложений) и небольшую часть train-выборки (3010 случайно выбранных предложений из 24184) с помощью API Google Translate, который был выполнен аж в 2020 году, так долго он ждал своего часа. Причина почему именно такое количество предложений было переведено из train-выборки потерялась во времени.
Далее были отобраны только предложения с NER-разметкой, что дало 870 предложений из dev- и train-выборок. Затем NER-разметка английского текста была вручную перенесена на русский с использованием инструмента Label Studio. При разметке мы также исправляли семантически некорректный перевод. Источником некорректности обычно являлись устойчивые выражения и специфические языковые конструкции. Статистика NER-меток эталонного (gold) набора представлена на Рисунке 1.

Для оценки качества перевода было отобрано 200 предложений без NER-разметки, которые также были проверены на корректность перевода.

Итоговая статистика эталонного набора следующая: 870 предложений имеют NER-разметку, и 200 предложений не имеют разметки. В общей сложности получено 1070 предложений с вручную проверенным переводом на русский язык.

Перенос NER-разметки с использованием LLM

Для задачи переноса аннотаций NER мы протестировали несколько БЯМ: Llama3.1-8B и Qwen-2.5-72B, различные варианты DeepSeek, а также варианты GPT-4 и ChatGPT-3.5-turbo от OpenAI. Эти модели отличаются количеством параметров, что напрямую влияет на стоимость и время генерации. Последний фактор особенно важен при работе с большими объёмами данных. Кроме того, поскольку модели OpenAI являются закрытыми, интересно знать, насколько открытые модели, такие как Llama3.1, Qwen или DeepSeek, подходят для подобных задач, ведь многие исследователи и компании не могут полагаться на сторонние API по соображениям конфиденциальности данных.
Отметим, что мы использовали Qwen-2.5-72B, так как она была выпущена в ходе нашей работы, и мы решили включить именно ее, а не Llama3.1-72B.
Мы строили затравки по стандартным техникам, типа zero-shot, few-shot и chain-of-thoughts. В начале разработки мы отобрали 20 примеров из gold-выборки, на которых можно было бы отсеивать заведомо плохие затравки. Для дальнейшего тестирования отбирались только те затравки, которые достигали корректного переноса разметки не менее чем в 15 из 20 примеров.

Изначально задача для БЯМ была сформулирована следующим образом: при наличии исходного английского текста и списка триплетов разметки, состоящих из начального индекса, конечного индекса и метки (имени сущности), модель должна найти в заданном русском тексте триплеты, соответствующие английским. К сожалению, этот подход полностью провалился, как будет показано в разделе с результатами. Мы переформулировали задачу: найти в русском тексте подстроку (не индексы, а именно подстроку), соответствующую подстроке английского текста, которая фактически является NER-фрагментом. Схематично это показано на рисунке ниже. С такой формулировкой дело пошло и мы быстро получили затравку, прошедшую базовый порог качества.

Далее мы оценивали ее работу уже на всей gold-выборке. В качестве метрики использовалось количество совпадений между эталонным переносом и результатами БЯМ в различных ситуациях:

  • Точное совпадение: случаи, когда индексы эталонного и перенесённого интервалов полностью совпадают.

  • Широкое частичное совпадение: случаи, когда перенесённый интервал шире оригинального.

  • Узкое частичное совпадение: случаи, когда перенесённый интервал уже оригинального.

  • Несоответствия: случаи, где перенос не пересекается совсем.

  • Общее число проверенных интервалов: количество обработанных случаев. Отметим, что эта метрика различается для разных моделей БЯМ, так как некоторые примеры не могли быть корректно обработаны даже после нескольких попыток.

Перевод текста с использованием БЯМ

Цель этого этапа довольно проста. Заданный текст на английском языке необходимо перевести на русский с помощью БЯМ. Из предыдущих исследований известно, что БЯМ достаточно хорошо справляются с этой задачей, хотя все же уступают специализированным системам (по крайней мере так было на момент наших работ). Тем не менее наша цель — создать монолитный конвейер, основанный исключительно на БЯМ.
Для оценки качества перевода используемых БЯМ мы использовали метрику BLEU и две метрики, основанные на эмбеддингах.

Метрика BLEU широко применяется в области машинного перевода. Ее суть заключается в расчете перекрытия между n-граммами эталонного перевода и переводом, предоставленным системой. Ее недостатком является то, что лексическое совпадение не гарантирует сохранение смысла и, наоборот, полное лексическое несоответствие не гарантирует разный смысл. Для оценки степени сохранения смысла мы используем метрики на основе эмбеддингов, так как они работают на семантическом уровне.

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

Во-вторых, аналогично подходу BLEU сравниваются средние расстояния между эмбеддингами эталонного русского текста и переведенными. Если BLEU работает на лексическом уровне, эта метрика делает это на семантическом уровне и опирается на вышеупомянутую особенность кросс-языковых кодировщиков. Назовем эту метрику как «BLEU-like».

В этой части повторно используется лучшая затравка из задачи переноса разметки, меняется только описание задачи. Как будет показано в разделе результатов, они показывают схожие результаты. Текст затравки можно найти в нашей статье в Приложении C.

Результаты

Перенос разметки

Как упоминалось ранее, сначала задача переноса разметки NER ставилась как поиск соответствующих триплетов для русского языка, исходя из триплетов для оригинальных английских триплетов. Однако хороших результатов достичь не удалось ни для каких затравок. Лучший результат, который удалось достичь, составил всего 2 из 20 примеров тестового подмножества. Были выделены несколько вероятных ограничений, связанных с этой проблемой:

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

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

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

После изменения формулировки задачи на извлечение подстроки напрямую в мы быстро нашли затравку в режиме 2-shot, которая способна решить 18 из 20 тестовых задач с использованием ChatGPT3.5-turbo и Llama3.1-8B (мы не тестировали другие БЯМ, т.к. они были добавлены в эксперимент позже). Эта затравка была выбрана для использования в следующих экспериментах. Текст затравки смотрите в статье в Приложении A.

При тестировании Llama на полном эталонном наборе мы заметили две особенности:

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

  • Модель делает гораздо больше ошибок типа несоответствия. Анализ показал, что источником этих ошибок является богатая морфология русского языка. А иногда модель исправляет ошибки автоматического перевода русского текста. Для решения этой проблемы мы решили использовать fuzze search в качестве постобработки для Llama3.1.

Результаты на всем эталонном наборе для упомянутой затравки и моделей приведены в Таблице 1. Как видно, модель deepseek-chat-v3-0324+fs показывает наилучшие результаты: лишь 0,84% полностью несовпадающих фрагментов. Сопоставимые результаты показывают и другие БЯМ, за исключением gpt-4.1-nano и llama-3.1-8b-instruct. Для последней видно, что процент несовпадающих фрагментов значительно выше, чем у других LLM, а точных совпадений — лишь немного больше половины. Однако постобработка с использованием нечеткого поиска здорово скоращает количество несовпадений, ценой увеличения числа неточных совпадений. Мы предполагаем, что можно найти более сложные варианты постобработки, котороые могли бы улучшить результат. Более того, дообучение Llama с учётом инструкций помогло бы показать ей гораздо более высокие результаты. Такой подход, безусловно, может быть полезен в случаях, когда это целесообразно, учитывая значительно более низкую стоимость инференса у небольших моделей.

Перевод текста

Результаты для двух затравок, которые мы тестировали, представлены в Таблице 2. Видно, что затравки показывают очень схожие результаты по всем метрикам. Что касается метрики BLEU, результаты для этой задачи значительно выше, чем результат, полученный в этой работе, где ChatGPT получает результаты по BLEU около 45 пунктов по паре Eng-Rus. Мы также вручную проверили несколько десятков случайных примеров, чтобы убедиться в корректности перевода. Тексты затравок смотрите в Приложениях B и C в нашей статье.

На позднем этапе работы, когда мы начинаем экспериментировать с другими БЯМ, мы используем затравку под номер 2, так как она показала наилучшие результаты на gpt-3.5-turbo. Мы осознаём, что одна и та же затравка может давать разные результаты в зависимости от БЯМ, однако результаты в Таблице 2 показывают, что эта разница невелика, несмотря на различия в масштабах БЯМ. В результате, после сравнения других БЯМ, наилучшими оказались gpt-4o-mini и deepseek-chat-v3-0324, как показано в Таблице 3.

Финальный перенос датасетов и обучение модели

Для полного переноса датасетов мы выбрали модель deepseek-chat-v3-0324, поскольку, хотя она и не показывает наилучших результатов в переводе, уступая лучшей модели на небольшую величину, она демонстрирует наилучшие показатели в переносе разметки NER, что является ключевым.

Время, затраченное на применение пайплайна ко всему корпусу DEFT и датасету WCL, представлено в Таблице A2.

На выходе мы получаем переведённый корпус с разметкой NER. Статистические данные по датасету для двух задач приведены на Рисунке 1 в частях с легендой «RUS».

Далее мы используем этот датасет для обучения бертоподобных моделей, чтобы установить базовый уровень для задачи детекции определений (Задача 1) и распознавания именованных сущностей (Задача 2) для выделения определений и терминов (для датасета WCL — только выделение терминов). Список базовых моделей следующий:

  • BERT-base-multilingual (сокращенно Bert-m) — модель BERT, обученная Google. Хороший точка старта.

  • RuBERT-base-cased — BERT, предобученный на русских текстах с нуля.

  • RoBerta-base — модель RoBERTa, предобученная на русских текстах. Результаты обучения на датасете RuDEFT представлены в Таблице 4, а на WCL-Wiki-Ru — в Таблице 5.

Для RuDEFT модели показывают неплохие результаты в определении предложений с определениями. Для Задачи 2 результаты заметно хуже: стоит проверить корректность разметки, возможно из-за ошибок падает качество. Интересно, что модель RoBERTa демонстрирует настолько слабую производительность. Также видно, что разница между многоязычной BERT и RuBERT незначительна.

Сравнивая gold-выбоку и переведённые БЯМ тестовые части, можно отметить заметный разрыв между ними в Задаче 1. Возможно БЯМ при переводе вносит в текст своего рода смещение (bias), которое модель классификации эксплуатирует в процессе обучения.
С другой стороны, в Задаче 2 мы сделали такие наблюдения. Во-первых, разрыв в качестве между моделями в целом значительно меньше. Во-вторых, модели показывают лучшие результаты на «золотой» части. В-третьих, если в Задаче 1 разрыв между RuBERT и Bert-m стабильный, то в Задаче 2 Bert-m показывает меньший разрыв, чем RuBERT. Если обратиться к матрице ошибок в Приложении D в статье, можно увидеть, что разница в основном связана с более точным распознаванием сущности I-Term в gold-выборке. Вероятно, это связано с тем, что перенесенная тестовая часть NER содержит частично ошибочные спаны (уже или шире), однако модели сумели правильно сделать обобщения на перенесённой train-выборке, несмотря на наличие в ней ошибочных спанов. Разница между Bert-m и RuBERT можно объяснить тем, что RuBERT полностью обучен на русскоязычных данных. Это позволяет ему лучше распознавать нюансы языка, что делает его более устойчивым к ошибкам аннотации. Подробный анализ этих двух явлений мы оставляем для будущей работы.

Что касается датасета WCL-Wiki-Ru, то, как видно из Таблицы 5, все модели показывают отличные результаты по обеим задачам. Отметим, что RoBERTa немного уступает другим моделям. Такой высокий результат связан простотой самого датасета. Определения в Википедии имеют чётко заданную структуру. Если откроете любую страницу, то заметите, что они оформлены по схеме «X — это / называется / и т. д.», то есть термин стоит в начале предложения, за которым следует характерный глагол. Кроме того, датасет содержит только одну сущность — Term, что упрощает выполнение всей задачи.

Что дальше

Очевидно, что хочется посмотреть, как сами БЯМ справятся с этой задачей. Кроме того, можно объединить два датасета в одни и посмотреть, даст ли это какое-то преимущество для моделей классификации. Разумеется, можно просто улучшить качество разметки, проверив ее людьми.

Мы выложили код и датасеты (ruDEFT, WCL).

А еще есть, да-да, мой тг-канал.

Комментарии (0)