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

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

В статье рассказали, как с помощью пробинг-фреймворка от 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.

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

Юлия Маковка

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

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

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

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


  1. berng
    11.09.2023 11:06

    Похоже у вас вообще ничего не работает (рис.10): чтобы безусловно предсказывать 1 (в последнем случае) и 5 (в предпоследнем случае) даже нейронки не надо - ведь судя по вашим матрицам ошибок у вас выход от входа не зависит.


    1. blognaumen Автор
      11.09.2023 11:06

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


      1. berng
        11.09.2023 11:06

        А при чем тут дисбаланс классов? Мне всегда казалось, что матрица ошибок - исходные данные, и по ним можно оценивать метрики при (почти) любых дисбалансах классов. Если у вас что-то не работает при сильном дисбалансе классов - значит для обучения выбраны неверные метрики обучения и функции потерь, неустойчивые к дисбалансу. Обычно замена метрик решает проблему - взвешанную кросс-энтропию, например, вместо кроссэнтропии для логистической регрессии или просто исходно сбалансировать датасет (оверсемплинг/андерсемплинг).

        А результаты для турецкого языка у вас не приведены, извините, поэтому непонятно где это можно увидеть.


        1. blognaumen Автор
          11.09.2023 11:06

          В статье рассматривается фреймворк без осуществления дополнительных действий с его кодом или датасетом.
          Мы хотели осветить проблему с датасетом и показать, что к тем результатам пробинга, которые аналитик получит с использованием фреймворка "из коробки", нужно относиться с осторожностью.
          Результаты для турецкого языка можно увидеть в приложении ("Логистическая регрессия", "Многослойный перцептрон").