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

Недавние достижения в области глубокого обучения для обработки естественного языка поразительны. Мы увидели серьезные прорывы во многих задачах НЛП, включая классификацию, ответы на вопросы, перевод и многое другое. Большинство этих достижений произошло благодаря двум вещам: новым мощным языковым моделям и методам трансфертного обучения. Некоторые даже называют это моментом ImageNet НЛП. Идея проста, но прекрасна: обучить очень большую сложную модель на огромном количестве данных, а затем использовать эту модель в последующих задачах, таких как классификация и теги pos. Такие компании, как Google, OpenAI, AllanNLP, выпускают модели, которые каждый раз превосходят самые современные.

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

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

Возьмем, к примеру, BERT. BERT - это языковая модель, выпущенная Google, которая показала отличные результаты для множества различных задач. По нашему опыту, это работает как по волшебству. Но точная настройка BERT непроста, она требует не только знания TensorFlow или PyTorch, но также требует большого количества строк кода, которые могут быть подвержены ошибкам. Здесь я показываю, как это сделать просто pytorch:



Было бы не здорово, если бы мы могли просто сделать fit().predict()?

Вот почему мы создали TamnunML!

TamnunML стремится восполнить этот пробел. Мы создаем простой в использовании (иногда однострочный) интерфейс для использования мощных моделей и методов. На данный момент мы сосредоточены на обработке естественного языка и обучении с передачей, но надеемся расширить это до широкого набора алгоритмов. TamnunML предоставляет отличный scikit-learn интерфейс для более сложных методов, реализованных с использованием гораздо более сложных фреймворков, таких как pytorch.

В tamnun точная настройка BERT выполняется так же просто, как fit().predict()!

Используя эти две линии, мы можем использовать мощность BERT для нашей собственной работы.

Другой пример - «дистилляция знаний», которая представляет собой процесс передачи знаний из одной (обычно большой) модели в другую (обычно гораздо меньшую). Это очень полезно, когда мы хотим использовать мощность очень большой модели, такой как BERT, на относительно слабом оборудовании (например, CPU против GPU). Вы можете увидеть более полное введение в дистилляцию BERT в этом посте:



Как и в случае тонкой настройки BERT, дистилляция знаний требует знаний и работы. В tamnun мы можем делать это с очень небольшим кодом:

Мы изучаем множество других методов для включения в tamnun. Одним из них является Увеличение данных без учителя, метод, призванный помочь в построении моделей, когда помеченные данные ограничены использованием немаркированных данных и методов увеличения. Авторы показали очень хорошие результаты, используя только 20 помеченных примеров! Другой - Параметрическое обучение передачи для НЛП, где авторы предлагают использовать адаптеры для более эффективной настройки больших моделей (таких как BERT).

Оба эти метода выглядят очень многообещающими в реальных задачах НЛП.

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

Заинтересованы в этом виде работы? Мы всегда ищем талантливых людей, чтобы присоединиться к нашей команде!