Чтобы создать решение для обработки любого естественного языка, нужно множество текстовых данных. Однако значительная часть языков считается низкорепрезентативными или низкоресурсными. Это означает, что данных на этих языках в свободном доступе представлено мало. Причем речь идет даже о тех языках, на которых говорят миллионы носителей: вьетнамском, казахском, армянском.
Для создания языковых моделей низкоресурсных языков разработчики используют множество решений. А чтобы оценить качество, применяют различные методики. Одна из них — пробинг.
В статье рассказали, как с помощью пробинг-фреймворка от AIRI оценивали модели низкоресурсных языков и какие неочевидные результаты получили.
Дообучаем BERT
Всё началось с исследования языковых моделей казахского и уйгурского языков. Нам хотелось улучшить качество этих моделей. Выдвинули гипотезу: для низкорепрезентативных языков эффективнее дообучать большие модели на языковых группах, в которые эти языки входят, нежели дообучать большую мультилингвальную модель. Рассмотрели 2 предобученные модели:
Мы дообучили обе модели на датасетах cc100 Dataset, Deutscher Wortschatz / Wortschatz Leipzig для уйгурского языка и на cc100 Dataset и Википедии для казахского языка. Результаты обучения сравнивали методом пробинга.
Что такое пробинг?
Пробинг больших языковых моделей – это метод, который используется для анализа внутренних представлений больших моделей обработки естественного языка. Пробинг позволяет исследовать, как модель обрабатывает различные языковые задачи и какие лингвистические категории (падеж, род, наклонение, тип местоимения) она усваивает. Среди задач:
определение времени глагола;
определение числа подлежащего;
определение числа прямого дополнения;
идентификация предложений, в которых одно из слов заменили;
определение сложносочиненных предложений, в которых части поменяли местами.
Расчёт глубины синтаксического дерева и т.д.
Для пробинга нужно к каждому из двенадцати расположенных друг за другом энкодеров присоединить по классификатору. Затем классификаторы обучаются и тестируются по следующей схеме:
На вход модели подаётся предложение.
Энкодер вырабатывает внутреннее представление этого предложения.
Расположенный на выходе энкодера классификатор определяет, какая лингвистическая категория (в рамках задачи) есть в предложении.
Результаты классификаций будут говорить о том, насколько языковая модель усвоила лингвистические категории, и, соответственно, насколько качественными внутренними представлениями о языке она оперирует.
Мы выполнили пробинг с использованием фреймворка от 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 для четырех языковых моделей уйгурского языка (классификатор – логистическая регрессия)](https://habrastorage.org/getpro/habr/upload_files/bdc/f72/fc5/bdcf72fc540790940a38658c6842ef23.png)
![Рис. 2 Усредненная по слоям оценка Accuracy для уйгурского языка (классификатор – логистическая регрессия) Рис. 2 Усредненная по слоям оценка Accuracy для уйгурского языка (классификатор – логистическая регрессия)](https://habrastorage.org/getpro/habr/upload_files/b22/122/a1d/b22122a1dea40407985963e37e0cdac1.png)
(классификатор – логистическая регрессия)
Аналогичная ситуация наблюдается и в случае пробинга модели, дообученной на казахском языке, хотя существуют некоторые различия в показателях F1 для категорий Aspect (вид глагола), PronType (тип местоимения) и NumType (тип числительного). Были рассмотрены модели:
mult_bert - mBERT без дообучения на датасете казахского;
turk_bert - BERTurk без дообучения на датасете казахского;
kk_mult_bert - mBERT с дообучением;
kk_ turk_bert - BERTurk с дообучением.
![Рис. 3 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – логистическая регрессия) Рис. 3 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – логистическая регрессия)](https://habrastorage.org/getpro/habr/upload_files/255/5c5/f4e/2555c5f4ecca425c523574863cfd7953.png)
![Рис. 4 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – логистическая регрессия) Рис. 4 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – логистическая регрессия)](https://habrastorage.org/getpro/habr/upload_files/0a0/6a6/5c1/0a06a65c1ba2aa960b20e8d73c27d529.png)
Далее в качестве классификатора применен многослойный перцептрон (MLP). В данном случае наблюдается динамика показателей в определении некоторых лингвистических категорий:
![Рис. 5 Усредненная по слоям оценка F1-weighted для четырех языковых моделей уйгурского языка (классификатор – многослойный перцептрон) Рис. 5 Усредненная по слоям оценка F1-weighted для четырех языковых моделей уйгурского языка (классификатор – многослойный перцептрон)](https://habrastorage.org/getpro/habr/upload_files/3de/1ae/51d/3de1ae51d716a572900587abc487f859.png)
![Рис. 6 Усредненная по слоям оценка Accuracy для уйгурского языка (классификатор – многослойный перцептрон) Рис. 6 Усредненная по слоям оценка Accuracy для уйгурского языка (классификатор – многослойный перцептрон)](https://habrastorage.org/getpro/habr/upload_files/a7e/29d/262/a7e29d2622b3988b65b88a85ff54f13c.png)
(классификатор – многослойный перцептрон)
![Рис. 7 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон) Рис. 7 Усредненная по слоям оценка F1-weighted для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон)](https://habrastorage.org/getpro/habr/upload_files/aa2/b96/60b/aa2b9660ba28a8f4a0f3c972632d5857.png)
![Рис. 8 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон) Рис. 8 Усредненная по слоям оценка Accuracy для четырех языковых моделей казахского языка (классификатор – многослойный перцептрон)](https://habrastorage.org/getpro/habr/upload_files/eea/17c/b23/eea17cb23ca14c7ac444649bf906fb43.png)
Анализируй это: control task
Проанализировав результаты, предположили, что различия в особенностях усвоения моделями различных лингвистических категорий обусловлены устройством языка. Тем не менее, вопрос о том, почему разные модели по определенным лингвистическим категориям продемонстрировали идентичные результаты, оставался открытым.
Мы решили изучить репрезентацию грамматических категорий в датасетах UD для казахского и уйгурского языков.
Выявили, что классы категорий в датасетах UD представлены крайне неравномерно. Предположили, что именно в этом заключается причина идентичности результатов пробинга, так как при сильном доминировании одного класса классификатор всегда будет предсказывать доминирующий класс.
Для начала проверки гипотезы мы провели control task [Hewitt, Liang, 2019]. Перед обучением классификаторов метки, указывающие на принадлежность предложения к тому или иному классу, перемешиваются случайным образом. Основная идея заключается в следующем: если результаты пробинга зависят внутренних представлений предложений, а не от баланса классов, то его результаты станут хуже относительно результатов до перемешивания меток.
Усредненная по слоям оценка Accuracy для четырех языковых моделей для уйгурского языка с выполненным control task приведена на рисунке 9.
![Рис. 9 Усредненное значение Accuracy Рис. 9 Усредненное значение Accuracy](https://habrastorage.org/getpro/habr/upload_files/f50/f58/58f/f50f5858fd2f4f6a857cb51164987142.png)
Заметим, что значение Accuracy на рисунке 2 и рисунке 9 совпадают по всем задачам и моделям. Это значит, что предсказания логистической регрессии не зависят от внутренних представлений предложений, классификатор «запоминает» наиболее встречающийся класс и всегда предсказывает именно его. Соответственно, ставится под вопрос целесообразность использования UD в качестве датасета для пробинга модели уйгурского языка.
Далее мы рассмотрели матрицы ошибок для двух низкоресурсных языков – уйгурского и казахского, а также для турецкого языка. Это было сделано для того, чтобы понять, существует ли дифференциация между результатами для низкоресурсных и высокоресурсных языков.
Ниже представлены матрицы ошибок по результатам логистической регрессии для категорий Case (падеж) и Number (число) дообученного на корпусе уйгурского mBERT. Матрицы ошибок для других лингвистических категорий, а также остальных языков и моделей находятся в приложении:
![](https://habrastorage.org/getpro/habr/upload_files/59b/792/8b2/59b7928b278e569f7efe10af03fcf15f.png)
![Рис. 10 Матрицы ошибок для категорий Case и Number дообученного на корпусе уйгурского mBERT Рис. 10 Матрицы ошибок для категорий Case и Number дообученного на корпусе уйгурского mBERT](https://habrastorage.org/getpro/habr/upload_files/1e6/6e1/90b/1e66e190b34c1ff509101cc963beeed8.png)
Классификаторы над энкодерами модели mBERT, дообученной на уйгурском языке, всегда предсказывают доминирующий класс. Аналогичная ситуация наблюдается и в случае с другими моделями, а также с другими исследуемыми языками, в том числе и с турецким, который считается высокоресурсным языком.
Матрицы ошибок по результатам применения пробинга многослойного перцептрона находятся в приложении 2. Они подтверждают тезис о том, что динамика в показателях моделей наблюдается только в том случае, когда классы внутри лингвистических категорий менее разбалансированы.
Выводы и перспективы исследования
Подведём итоги исследования. На данном этапе известно, что:
в данных UD для некоторых языков существует значительная разбалансировка по классам лингвистических категорий;
предсказания логистической регрессии и MLP в сильно разбалансированных лингвистических категориях не зависят от эмбеддингов модели, классификаторы всегда предсказывают доминирующий класс.
Резюмируя вышесказанное: данный фреймворк не всегда является подходящим для оценки того, как именно модель усваивает лингвистические признаки и категории, и это суждение справедливо не только для низкоресурсных языков, но для всех языков, в датасетах UD которых наблюдается несбалансированность. Классификаторы, обученные на несбалансированных данных, не способны выявить, насколько модель усвоила язык.
Таким образом, при проведении методики пробинга с помощью фреймворка AIRI необходимо обращать внимание на баланс классов внутри категорий и в случае работы с высокоресурсными языками выбирать наиболее сблансированный датасет UD.
Авторы исследования и статьи:
![](https://habrastorage.org/getpro/habr/upload_files/f83/48f/daa/f8348fdaa6fcd5acf20bd8453d492afb.jpg)
Юлия Маковка
Стажер аналитик-разработчик моделей машинного обучения
![](https://habrastorage.org/getpro/habr/upload_files/3b5/347/664/3b53476649e490720b3f7ababee2dc38.jpg)
Макар Шатилов
Стажер аналитик-разработчик моделей машинного обучения