Чтобы создать решение для обработки любого естественного языка, нужно множество текстовых данных. Однако значительная часть языков считается низкорепрезентативными или низкоресурсными. Это означает, что данных на этих языках в свободном доступе представлено мало. Причем речь идет даже о тех языках, на которых говорят миллионы носителей: вьетнамском, казахском, армянском.  Для создания языковых моделей низкоресурсных языков разработчики используют множество решений. А чтобы оценить качество, применяют различные методики. Одна из них — пробинг.  В статье рассказали, как с помощью пробинг-фреймворка от AIRI оценивали модели низкоресурсных языков и какие неочевидные результаты получили. Всё началось с исследования языковых моделей казахского и уйгурского языков. Нам хотелось улучшить качество этих моделей. Выдвинули гипотезу: для низкорепрезентативных языков эффективнее дообучать большие модели на языковых группах, в которые эти языки входят, нежели дообучать большую мультилингвальную модель. Рассмотрели 2 предобученные модели: BERTurk  – модель для турецкого языка; mBERT – мультилингвальная модель, обученная на 104 языках. Мы дообучили обе модели на датасетах 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 у разных моделей по всем лингвистическим задачам не меняются. Аналогичная ситуация наблюдается и в случае пробинга модели, дообученной на казахском языке, хотя существуют некоторые различия в показателях F1 для категорий Aspect (вид глагола), PronType (тип местоимения) и NumType (тип числительного). Были рассмотрены модели: mult_bert - mBERT без дообучения на датасете казахского;  turk_bert - BERTurk без дообучения на датасете казахского;  kk_mult_bert - mBERT с дообучением; kk_ turk_bert - BERTurk с дообучением. Далее в качестве классификатора применен многослойный перцептрон (MLP). В данном случае наблюдается динамика показателей в определении некоторых лингвистических категорий: Проанализировав результаты, предположили, что различия в особенностях усвоения моделями различных лингвистических категорий обусловлены устройством языка. Тем не менее, вопрос о том, почему разные модели по определенным лингвистическим категориям продемонстрировали идентичные результаты, оставался открытым.  Мы решили изучить репрезентацию грамматических категорий в датасетах UD для казахского и уйгурского языков. Выявили, что классы категорий в датасетах UD представлены крайне неравномерно. Предположили, что именно в этом заключается причина идентичности результатов пробинга, так как при сильном доминировании одного класса классификатор всегда будет предсказывать доминирующий класс.  Для начала проверки гипотезы мы провели control task [Hewitt, Liang, 2019]. Перед обучением классификаторов метки, указывающие на принадлежность предложения к тому или иному классу, перемешиваются случайным образом. Основная идея заключается в следующем: если результаты пробинга зависят внутренних представлений предложений, а не от баланса классов, то его результаты станут хуже относительно результатов до перемешивания меток.  Усредненная по слоям оценка Accuracy для четырех языковых моделей для уйгурского языка с выполненным control task приведена на рисунке 9.   Заметим, что значение Accuracy на рисунке 2 и рисунке 9 совпадают по всем задачам и моделям. Это значит, что предсказания логистической регрессии не зависят от внутренних представлений предложений, классификатор «запоминает» наиболее встречающийся класс и всегда предсказывает именно его. Соответственно, ставится под вопрос целесообразность использования UD в качестве датасета для пробинга модели уйгурского языка. Далее мы рассмотрели матрицы ошибок для двух низкоресурсных языков – уйгурского и казахского, а также для турецкого языка. Это было сделано для того, чтобы понять, существует ли дифференциация между результатами для низкоресурсных и высокоресурсных языков. Ниже представлены матрицы ошибок по результатам логистической регрессии для категорий Case (падеж) и Number (число) дообученного на корпусе уйгурского mBERT. Матрицы ошибок для других лингвистических категорий, а также остальных языков и моделей находятся в приложении: Логистическая регрессия. Многослойный перцептрон. Классификаторы над энкодерами модели mBERT, дообученной на уйгурском языке, всегда предсказывают доминирующий класс. Аналогичная ситуация наблюдается и в случае с другими моделями, а также с другими исследуемыми языками, в том числе и с турецким, который считается высокоресурсным языком. Матрицы ошибок по результатам применения пробинга многослойного перцептрона находятся в приложении 2. Они подтверждают тезис о том, что динамика в показателях моделей наблюдается только в том случае, когда классы внутри лингвистических категорий менее разбалансированы. Подведём итоги исследования. На данном этапе известно, что: в данных UD для некоторых языков существует значительная разбалансировка по классам лингвистических категорий; предсказания логистической регрессии и MLP в сильно разбалансированных лингвистических категориях не зависят от эмбеддингов модели, классификаторы всегда предсказывают доминирующий класс.  Резюмируя вышесказанное: данный фреймворк не всегда является подходящим для оценки того, как именно модель усваивает лингвистические признаки и категории, и это суждение справедливо не только для низкоресурсных языков, но для всех языков, в датасетах UD которых наблюдается несбалансированность. Классификаторы, обученные на несбалансированных данных, не способны выявить, насколько модель усвоила язык. Таким образом, при проведении методики пробинга с помощью фреймворка AIRI необходимо обращать внимание на баланс классов внутри категорий и в случае работы с высокоресурсными языками выбирать наиболее сблансированный датасет UD. Стажер аналитик-разработчик моделей машинного обучения Стажер аналитик-разработчик моделей машинного обучения