Torch ORT использует ONNX Runtime для улучшения времени обучения и вывода для моделей PyTorch.

С Lightning Flash, все, что вам нужно, это enable_ort=True использовать Torch ORT при обучении моделей на основе Transformer, что дает вам возможность использовать все функции Lightning, такие как обратные вызовы , Ведение журнала, смешанная точность и распределенное обучение с поддержкой расширенных распределенных подключаемых модулей.

Ниже мы расскажем, как можно использовать Lightning Flash с Torch ORT, обучая модель Transformer с помощью Flash Text Classification Task, и увидеть впечатляющие ускорения!

В соответствии с целью PyTorch Lightning по избавлению от шаблонов, Flash стремится упростить обучение, вывод и точную настройку моделей глубокого обучения.

Flash построен на основе PyTorch Lightning, чтобы абстрагироваться от ненужного шаблона для общих задач глубокого обучения.

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

Тонкая настройка трансформаторов с помощью Lightning Flash и Torch ORT

Ниже мы рассмотрим два шага, необходимые для точной настройки задачи классификации текста Transformers с помощью Torch ORT.

Шаг 1. Загрузите данные

Во-первых, давайте установим lightning-flash из мастера и импортируем библиотеки для использования задачи распознавания речи.

Обязательно установите Torch ORT, для которого необходимо установить определенные версии CUDA (или, при желании, использовать Docker). Инструкции здесь!

Теперь, когда мы установили flash и загрузили наши зависимости, давайте поговорим о данных. Чтобы настроить нашу первую модель классификации текста, мы будем использовать набор данных IMDB в качестве примера, куратор которого содержит помеченные обзоры в сочетании с положительными или отрицательными оценками.

Набор данных содержит отзывы и связанные с ними положительные или отрицательные мнения. Вот фрагмент CSV-файла.

review,sentiment
"... Running makes them all feel truly alive. The big life-altering running adventure comes to an end when they accidentally get in the middle of something big, violent, and so absurd that it's funny in a clever way. One of my favorite films of all time by genius director Sabu.",positive
"This is borne out with Special Forces and Undisputed 2, but unfortunately The Shepherd just doesn't live up to their abilities.<br /><br />There is no doubt that JCVD looks better here fight-wise than he has done in years, especially in the fight he has (for pretty much no reason) ...",negative

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

После того, как мы загрузили набор данных IMDB, Flash предоставляет модуль TextClassificationData, который обрабатывает сложность загрузки текстовых данных из файла CSV и преобразования их в представление, которое модели глубокого обучения необходимо обучать.

Шаг 2. Настройте задачу классификации текста с помощью Torch ORT.

После того, как мы загрузили наш набор данных, нам нужно выбрать магистраль для нашей задачи для точной настройки и включить Torch ORT.

Выбираем БАРТ-большой, опорный позвоночник факелом ОРТ. См. Эту таблицу для получения дополнительных магистралей, одобренных ОРТ.

Во Flash включить Torch ORT и выбрать свой костяк предельно просто. Просто передайте enable_ort=True флаг и установите backbone='facebook/bart-large' его с помощью TextClassifier Task.

Теперь, когда мы выбрали модель и загрузили наши данные, пришло время обучить модель нашей задаче классификации, используя следующие две строки кода:

При использовании нескольких GPUS включение расширенного распределенного плагина DeepSpeed ​​Stage 1 может еще больше повысить производительность. DeepSpeed ​​Stage 1 поставляется с оптимизированной распределенной связью между графическими процессорами и некоторыми преимуществами памяти за счет сегментирования состояний оптимизатора! Более подробную информацию можно прочитать в нашей документации Model Parallel.

Flash Trainer построен на основе PyTorch Lightning, что означает, что обучение легко распределяется на несколько графических процессоров, кластерных узлов и даже TPU.

Собираем все вместе

Приведенные выше шаги кратко изложены в приведенном ниже коде, демонстрируя, насколько легко настроить вашу собственную модель классификации текста с помощью Torch ORT!

Следующие шаги

Для получения дополнительной информации о Torch ORT и Lightning Flash, погрузитесь в нашу документацию, а также в репозиторий torch ORT для других вариантов использования!

Также ознакомьтесь с функциями распределенного обучения с ранним доступом в Grid, которые позволяют масштабировать модели преобразователей Flash, не беспокоясь об инфраструктуре.

Grid.AI позволяет масштабировать обучение с портативного компьютера в облако, не изменяя ни единой строчки кода. В то время как Grid поддерживает все классические платформы машинного обучения, такие как TensorFlow, Keras, PyTorch и другие. Использование таких функций Lightning, как ранняя остановка, интегрированное ведение журнала, автоматическая контрольная точка и интерфейс командной строки, позволяет сделать традиционные MLOps, лежащие в основе обучения модели, невидимыми.

Об авторе

Шон Нарентиран - инженер-исследователь в лабораториях Grid AI Labs и PyTorch Lightning. Шон много работал с машинным обучением, чтобы улучшать, вводить новшества и масштабировать подходы к глубокому обучению для голосовой аналитики и обработки естественного языка, особенно в финансовой сфере. Шон также поддерживает и участвует в различных проектах PyTorch с открытым исходным кодом, таких как DeepSpeech, PyTorch, NeMo и других.