Как контейнеризовать модель HuggingFace Transformers с помощью Docker и Flask?

HuggingFace оказал огромное влияние на область обработки естественного языка, сделав множество моделей трансформеров доступными в Интернете. Одна проблема, с которой я столкнулся во время процесса MLOPS, заключается в развертывании одной из этих моделей HuggingFace для анализа настроений. В этом посте я кратко подытожу, что я сделал для развертывания модели HuggingFace с помощью Docker и Flask.

Я предполагаю, что читатель имеет базовые знания о библиотеках Docker, TensorFlow, Transformers, Flask и PyTorch. Исходный код можно найти в моем репозитории github.

Необходимые библиотеки: Flask, трансформеры, TensorFlow. (пип или конда, как хотите, я использовал пип). Если вы используете TensorFlow, как и я, вам понадобится PyTorch, только если вы используете модель HuggingFace, обученную на PyTorch, с флагом from_pt=true. Но для перезагрузки и повторного использования модели из локального вам снова не понадобится PyTorch, поэтому он не понадобится в вашем контейнере.

Шаг 1. Загрузите и сохраните модель трансформатора в локальном каталоге с помощью файла save_hf_model.py.

Ваш сохраненный каталог моделей/трансформеров должен выглядеть так:

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

 

Шаг 2: Создайте минимальное приложение flask, на самом деле вы можете использовать его в моем репозитории github, ничего не меняя. Просто замените свою модель на ту, что находится в папке models/transformers. Рекомендую еще раз протестировать приложение на этом уровне, запустив flask.

Шаг 3. Контейнеризируйте приложение с помощью Dockerfile:

сборка докера — тэг mlapp .

docker run -i -p 9000:5000 mlapp

(добавьте флаг -d для запуска в режиме отсоединения в фоновом режиме, вы можете изменить 9000 по мере необходимости)

  • Проверьте, запущен ли ваш докер docker ps
  • Проверьте, отвечает ли контейнер
См. также:  Воссоздайте график вклада GitHub с помощью Flask и Google Sheets

завиток 127.0.0.1:9000 -v

Шаг 4. Протестируйте свою модель с помощью make_req.py. Обратите внимание, что ваши данные должны быть в правильном формате, например, как вы тестировали свою модель в save_hf_model.py.

Шаг 5. Чтобы остановить контейнер Docker

остановка докера 1fbcac69069c

Теперь ваша модель работает в вашем контейнере и готова к развертыванию в любом месте.

Удачного машинного обучения!

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: