Ранее я разместил свой рабочий тренинг Hindi-BERT и dv-wave (мальдивский дивехи) с использованием кода Google ELECTRA и опубликовал их на HuggingFace. Сейчас я вернулся к проекту еще для двух южноазиатских языковых моделей: TaMillion (тамильский) и Bangla-Electra (бангла / бенгали).

Корпус и обучение

Как я описывал в предыдущих сообщениях, я загружаю 5 ГБ дедуплицированного текста, извлеченного из Интернета, из OSCAR-corpus и добавляю последний дамп статей Википедии (~ 0,45 ГБ по состоянию на 1 июля 2020 г.).

Вот и записные книжки CoLab: Тамил и Бангла.

Бенчмаркинг

После обучения модели мне нужно продемонстрировать лучшую производительность этих самодельных моделей, чем просто использовать Google Multilingual BERT (mBERT). Это сложнее на языках с ограниченными ресурсами, где нет общих стандартов для сравнения точности моделей.

Для Бангла

Я нашел этот актуальный препринт по критериям классификации на языках с ограниченными ресурсами, на самом деле сосредоточенный на примере Bangla, написанный
м-ром Резаулом Каримом, Бхарати Раджа Чакраварти, Джоном П. МакКреем и Майклом Кочесом:



Данные обучения и тестирования для анализа настроений и различных классов языка вражды, очевидно, собранные из социальных сетей, включены в это репо: github.com/rezacsedu/BengFastText - но я не уверен, что это окончательный / официальный релиз. .

В блокноте для анализа настроений изначально Bangla-Electra получила 68,9%, незначительное преимущество перед mBERT (68,1%).
Для обеих моделей большинство неправильных ответов были отрицательными, ложно помеченными как положительные. Просматривая баланс тренировочных данных, я заметил, что много строк повторяются 2–3 раза? Это затрудняет оценку того, сколько существует уникальных положительных и отрицательных примеров.
Я возобновил обучение в одночасье и попробовал функциюSimpleTransformers, чтобы добавить веса к каждому классу в функции потерь, не оставляя вмятин.

Помогает ли изменение веса модели лучше понимать, или вы просто склоняете чашу весов в другую сторону?
Это больше похоже на рисование волнистой линии на 2D координатная пластина, и слева от линии обозначено отрицательное, а справа - положительное. Вы могли подумать, что большинство точек данных находятся далеко слева или справа от линии, но на практике это полное поле точек данных, разумно размещенных предварительно обученной моделью. Мы подталкиваем разделительную линию, если она не попала в нужное место на поле.

В конце концов я попробовал эту задачу, опубликованную Soham Chatterjee, и здесь по 6 категориям новостей Bangla-Electra получила 82,3% правильных ответов по сравнению с 72,3% mBERT.

Почему эти показатели точности все еще ниже 90%? Почему они не сильно улучшились по сравнению с mBERT?
Я получил комментарий к своему посту на хинди-BERT, в котором мне следует попросить команду OSCAR предоставить сырые, не перемешанные предложения для моего корпуса. Я планирую переработать хинди, бенгальский и тамильский языки, чтобы увидеть, повысит ли это точность.

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

Я решил протестировать все три теста.
Новости: Случайное: 16,7%, mBERT: 53,0%, TaMillion: 69,6%
Обзоры фильмов (регрессия, RMSE ): mBERT: 0,657, TaMillion: 0,627
Tirukkural: Random: 33,3%, mBERT и TaMillion: 50,8%

Я продолжил тренироваться за ночь со 100 000 до 190 000 шагов, и точность при выполнении новостной задачи улучшилась лишь незначительно (с 68,2 до 69,6%).

ELECTRA против BERT

Все мои модели проходят один и тот же процесс обучения с ELECTRA. Когда я сериализую их в форматы моделей PyTorch и h5, я использую сценарий HuggingFace, который преобразует их в модель BERT. Что касается dv-wave, я заметил, что указание SimpleTransformers использовать настройки BERT превосходит настройки ELECTRA на несколько процентных пунктов. То же самое справедливо и для этих двух моделей.

Обновления?

Эта статья была написана в июле 2020 года. Для последних рекомендованных моделей я буду обновлять этот файл readme: https://github.com/mapmeld/use-this-now/blob/main/README.md#south-asian -языковые-модели-проекты