Выпущен PyTorch 1.5 в партнерстве с AWS TorchServe

PyTorch

Недавно PyTorch выпустил обновление до версии 1.5. Как все более популярная среда машинного обучения, PyTorch на этот раз также принесла серьезное функциональное обновление. Кроме того, Facebook и AWS совместно работали над двумя важными библиотеками PyTorch.

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

Недавно был выпущен PyTorch 1.5,Обновлены основные библиотеки torchvision, torchtext и torchaudio, а также введены такие функции, как преобразование моделей из API Python в API C++.

Кроме,Facebook также заключил партнерское соглашение с Amazon для запуска двух инструментов-блокбастеров: платформы обслуживания модели TorchServe и контроллера TorchElastic Kubernetes.

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

С другой стороны, контроллер TorchElastic Kubernetes позволяет разработчикам быстро использовать кластеры Kubernetes для создания отказоустойчивых распределенных учебных заданий в PyTorch.

Похоже, это шаг Facebook и Amazon, чтобы объявить войну TensorFlow на основе крупномасштабных моделей искусственного интеллекта.

TorchServe: для задач логического вывода

Развертывание моделей машинного обучения для логического вывода в масштабе — непростая задача. Разработчики должны собирать и упаковывать артефакты модели, создавать защищенные стеки сервисов, устанавливать и настраивать программные библиотеки для прогнозирования, создавать и использовать API и конечные точки, создавать журналы и метрики для мониторинга и управлять несколькими версиями модели.

Каждая из вышеперечисленных задач занимает значительное время и может замедлить развертывание модели на недели или даже месяцы. Кроме того, оптимизация сервисов для онлайн-приложений с малой задержкой является обязательной.

Разработчики, которые ранее использовали PyTorch, не имеют официально поддерживаемого способа развертывания моделей PyTorch. Выпуск TorchServe, среды обслуживания производственных моделей, изменит это, упростив запуск моделей в производство.

В следующем примере я покажу, как извлечь обученную модель из Torchvision и развернуть ее с помощью TorchServe.

Доступна бета-версия TorchServe,Особенности включают в себя:

  • Собственный API: поддерживает API вывода для прогнозирования и API управления для управления сервером моделей.
  • Безопасное развертывание: включает поддержку HTTPS для безопасного развертывания.
  • Мощная функция управления моделью: позволяет выполнять полную настройку моделей, версий и отдельных рабочих процессов через интерфейс командной строки, файлы конфигурации или API среды выполнения.
  • архив моделей: Предоставляет инструменты для выполнения «архивации моделей» — процесса упаковки моделей, параметров и вспомогательных файлов в единый постоянный артефакт. Используя простой интерфейс командной строки, его можно упаковать и экспортировать в виде одного файла «.mar», содержащего все необходимое для предоставления модели PyTorch. Файл .mar можно использовать совместно и повторно.
  • Встроенные обработчики моделей: поддерживает обработчики моделей, охватывающие наиболее распространенные варианты использования, такие как классификация изображений, обнаружение объектов, классификация текста, сегментация изображений. TorchServe также поддерживает пользовательские обработчики.
  • Ведение журнала и метрики: поддерживает надежное ведение журналов и метрики в реальном времени для мониторинга служб логического вывода и конечных точек, производительности, использования ресурсов и ошибок. Также можно создавать пользовательские журналы и определять пользовательские метрики.
  • Управление моделями: поддерживает одновременное управление несколькими моделями или несколькими версиями одной и той же модели. Вы можете использовать версию модели, чтобы вернуться к более ранней версии или направить трафик на другую версию для A/B-тестирования.
  • готовые образы: По готовности TorchServe Dockerfile и образ Docker можно развернуть в средах на основе ЦП и NVIDIA GPU. Последние Dockerfiles и образы можно найти здесь.

Пользователи также могут получить инструкции по установке, учебные пособия и документацию на сайте pytorch.org/serve.

TorchElastic: встроенный контроллер K8S

Текущие модели обучения машинному обучению, такие как RoBERTa и TuringNLG, становятся все больше и больше, и необходимость их масштабирования до распределенных кластеров также становится все более важной. Для удовлетворения этой потребности часто используются вытесняемые инстансы (например, спотовые инстансы Amazon EC2).

Но эти вытесняемые экземпляры по своей сути непредсказуемы, и для этого появился второй инструмент, TorchElastic.

Интеграция Kubernetes и TorchElastic, позволяющая разработчикам PyTorch обучать модели машинного обучения на наборе вычислительных узлов,Эти узлы можно изменять динамически, не нарушая процесс обучения модели.

Даже в случае сбоя узла встроенная отказоустойчивость TorchElastic может приостановить обучение на уровне узла и возобновить обучение, когда узел снова станет работоспособным.

Встроенная отказоустойчивость TorchElastic поддерживает возобновляемую загрузку.

Кроме того, используя контроллер Kubernetes с TorchElastic, можно выполнять критические задачи распределенного обучения в кластере замененных узлов в случае проблем с перезапуском оборудования или узлов.

Учебные задачи можно запускать с использованием некоторых запрошенных ресурсов и динамически масштабировать по мере доступности ресурсов без остановки или перезапуска.

Чтобы воспользоваться этими возможностями, пользователи просто указывают параметры обучения в простом определении задания, а пакет Kubernetes-TorchElastic управляет жизненным циклом задания.

Ниже приведен простой пример конфигурации TorchElastic для учебного задания Imagenet:

Microsoft, Google, просто спросите, если вы паникуете?

Операция сотрудничества двух по запуску новой библиотеки PyTorch может иметь за собой более глубокий смысл, ведь рутина «игра без тебя» происходит не впервые в истории разработки фреймворков.

В декабре 2017 года AWS, Facebook и Microsoft объявили о совместной разработке ONNX для производственных сред.Это сделано для борьбы с монополией Google на использование TensorFlow в промышленности.

Впоследствии основные платформы глубокого обучения, такие как Apache MXNet, Caffe2 и PyTorch, реализовали различные уровни поддержки ONNX, что облегчает миграцию алгоритмов и моделей между разными платформами.

AWS, Facebook и Microsoft хотели использовать ONNX для унификации фреймворка рек и озер

Однако видение ONNX соединения научных кругов и промышленности на самом деле не оправдало первоначальных ожиданий.Каждый фреймворк по-прежнему использует свою собственную сервисную систему.По сути, только MXNet и PyTorch проникли в ONNX.

И сейчас,PyTorch запустил собственную сервисную систему, а ONNX почти потерял смысл (MXNet заявил, что перегружен).

С другой стороны, PyTorch постоянно обновляется, совместимость и простота использования фреймворка,Он приближается или даже превосходит сильнейшего конкурента TensorFlow.

Хотя у Google есть свои облачные сервисы и фреймворки, сочетание облачных ресурсов AWS и системы фреймворков Facebook, боюсь, что Google будет сложно устоять.

И Microsoft была выгнана из группового чата двумя друзьями, которые раньше были трио ONNX.Что делать дальше?

-- Заканчивать --