Пробинг моделей низкоресурсных языков с помощью фреймворка AIRI

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

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

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

Дообучаем BERT

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

  • BERTurk – модель для турецкого языка;

  • mBERT – мультилингвальная модель, обученная на 104 языках.

Мы дообучили обе модели на датасетах cc100 Dataset, Deutscher Wortschatz / Wortschatz Leipzig для уйгурского языка и на cc100 Dataset и Википедии для казахского языка. Результаты обучения сравнивали методом пробинга.

Что такое пробинг?

Пробинг больших языковых моделей – это метод, который используется для анализа внутренних представлений больших моделей обработки естественного языка. Пробинг позволяет исследовать, как модель обрабатывает различные языковые задачи и какие лингвистические категории (падеж, род, наклонение, тип местоимения) она усваивает. Среди задач:

  • определение времени глагола; 

  • определение числа подлежащего;

  • определение числа прямого дополнения;

  • идентификация предложений, в которых одно из слов заменили; 

  • определение сложносочиненных предложений, в которых части поменяли местами. 

  • Расчёт глубины синтаксического дерева и т.д.

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

  1. На вход модели подаётся предложение.

  2. Энкодер вырабатывает внутреннее представление этого предложения.

  3. Расположенный на выходе энкодера классификатор определяет, какая лингвистическая категория (в рамках задачи) есть в предложении.

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

Мы выполнили пробинг с использованием фреймворка от AIRI – это казалось наиболее простым способом протестировать только что обученную на новый язык модель. Фреймворк позволяет подключить новую модель, установить гиперпараметры для классификации, после чего получить результаты в виде метрик F1 и Accuracy для всех доступных лингвистических задач, по каждому энкодеру в отдельности. Одной из особенностей фреймворка являются данные, на основе которых проводится пробинг - датасеты Universal Dependencies (UD), специальным образом размеченных и отражающих грамматические зависимости между словами. 

Результаты пробинга

Фреймворк от AIRI позволяет исследователю выбрать классификатор: многослойный перцептрон или логистическую регрессию.  В первую очередь мы использовали логистическую регрессию.

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

  • mult_bert - mBERT без дообучения на датасете уйгурского; 

  • turk_bert - BERTurk без дообучения на датасете уйгурского; 

  • ug_mult_bert - mBERT с дообучением;

  • ug_ turk_bert - BERTurk с дообучением.

Как мы видим, показатели F1 и Accuracy у разных моделей по всем лингвистическим задачам не меняются.

Рис. 1 Усредненная по слоям оценка F1-weighted для четырех языковых моделей уйгурского языка (классификатор – логистическая регрессия)
Рис. 1 Усредненная по слоям оценка F1-weighted для четырех языковых моделей уйгурского языка (классификатор – логистическая регрессия)
Рис. 2 Усредненная по слоям оценка Accuracy для уйгурского языка (классификатор – логистическая регрессия)
Рис. 2 Усредненная по слоям оценка Accuracy для уйгурского языка 
(классификатор – логистическая регрессия)

Аналогичная ситуация наблюдается и в случае пробинга модели, дообученной на казахском языке, хотя существуют некоторые различия в показателях F1 для категорий Aspect (вид глагола), PronType (тип местоимения) и NumType (тип числительного). Были рассмотрены модели:

  • mult_bert - mBERT без дообучения на датасете казахского; 

  • turk_bert - BERTurk без дообучения на датасете казахского; 

  • kk_mult_bert - mBERT с дообучением;

  • kk_ turk_bert - BERTurk с дообучением.

Рис. 3 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – логистическая регрессия)
Рис. 3 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – логистическая регрессия)
Рис. 4 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – логистическая регрессия)
Рис. 4 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – логистическая регрессия)

Далее в качестве классификатора применен многослойный перцептрон (MLP). В данном случае наблюдается динамика показателей в определении некоторых лингвистических категорий:

Рис. 5 Усредненная по слоям оценка F1-weighted для четырех языковых моделей уйгурского языка (классификатор – многослойный перцептрон)
Рис. 5 Усредненная по слоям оценка F1-weighted для четырех языковых моделей уйгурского языка (классификатор – многослойный перцептрон)

Рис. 6 Усредненная по слоям оценка Accuracy для уйгурского языка (классификатор – многослойный перцептрон)
Рис. 6 Усредненная по слоям оценка Accuracy для уйгурского языка 
(классификатор – многослойный перцептрон)
Рис. 7 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон)
Рис. 7 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон)
Рис. 8 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон)
Рис. 8 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон)

Анализируй это: control task

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

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

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

Для начала проверки гипотезы мы провели control task [Hewitt, Liang, 2019]. Перед обучением классификаторов метки, указывающие на принадлежность предложения к тому или иному классу, перемешиваются случайным образом. Основная идея заключается в следующем: если результаты пробинга зависят внутренних представлений предложений, а не от баланса классов, то его результаты станут хуже относительно результатов до перемешивания меток. 

Усредненная по слоям оценка Accuracy для четырех языковых моделей для уйгурского языка с выполненным control task приведена на рисунке 9.

 

Рис. 9 Усредненное значение Accuracy
Рис. 9 Усредненное значение Accuracy

Заметим, что значение Accuracy на рисунке 2 и рисунке 9 совпадают по всем задачам и моделям. Это значит, что предсказания логистической регрессии не зависят от внутренних представлений предложений, классификатор «запоминает» наиболее встречающийся класс и всегда предсказывает именно его. Соответственно, ставится под вопрос целесообразность использования UD в качестве датасета для пробинга модели уйгурского языка.

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

Ниже представлены матрицы ошибок по результатам логистической регрессии для категорий Case (падеж) и Number (число) дообученного на корпусе уйгурского mBERT. Матрицы ошибок для других лингвистических категорий, а также остальных языков и моделей находятся в приложении:

  • Логистическая регрессия.

  • Многослойный перцептрон.

Рис. 10 Матрицы ошибок для категорий Case и Number дообученного на корпусе уйгурского mBERT
Рис. 10 Матрицы ошибок для категорий Case и Number дообученного на корпусе уйгурского mBERT

Классификаторы над энкодерами модели mBERT, дообученной на уйгурском языке, всегда предсказывают доминирующий класс. Аналогичная ситуация наблюдается и в случае с другими моделями, а также с другими исследуемыми языками, в том числе и с турецким, который считается высокоресурсным языком.

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

Выводы и перспективы исследования

Подведём итоги исследования. На данном этапе известно, что:

  • в данных UD для некоторых языков существует значительная разбалансировка по классам лингвистических категорий;

  • предсказания логистической регрессии и MLP в сильно разбалансированных лингвистических категориях не зависят от эмбеддингов модели, классификаторы всегда предсказывают доминирующий класс

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

Таким образом, при проведении методики пробинга с помощью фреймворка AIRI необходимо обращать внимание на баланс классов внутри категорий и в случае работы с высокоресурсными языками выбирать наиболее сблансированный датасет UD.

Авторы исследования и статьи:

Юлия Маковка

Стажер аналитик-разработчик моделей машинного обучения

Макар Шатилов

Стажеры аналитик-разработчик моделей машинного обучения

Источник: https://habr.com/ru/companies/naumen/articles/760194/


Интересные статьи

Интересные статьи

Проблема N+1 запросовПроблема N + 1 возникает, когда фреймворк доступа к данным выполняет N дополнительных SQL-запросов для получения тех же данных, которые можно получить при выполнении одного SQL-за...
Паяльники воспринимаются теми, кто не имеет отношения к работе с электроникой, как… ну примерно как утюг. Простой инструмент, который должен просто нагреваться до определённой температуры. На самом де...
Есть много библиотек, которые позволяют управлять шаговыми двигателями. В данной статье речь будет идти про биполярный шаговый двигатель с драйвером с интерфейсом step/dir (импульс/направление). Что т...
В своё время один из клиентов сообщил нам, что на Itanium его программа завершалась аварийно. Постойте, не закрывайте статью! На Itanium клиент выявил проблему, но она свойственна и всем остал...
В середине 2020 года в СИБУРе запустился проект, направленный на автоматизацию процесса лидогенерации (поиска потенциальных клиентов). Вызов состоял в том, что в B2B, а особенно промышленности и произ...