Эффективный MLOps с TAO Toolkit от NVIDIA

MLOps конвейер примеры курсы обучение, курсы дата-инженеров ML, Machine Learning для инженеров и архитекторов примеры курсы обучение, архитектура и инфраструктура MLOps, Школа Больших Данных Учебный Центр Коммерсант

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

Что такое TAO Toolkit от NVIDIA

Набор инструментов NVIDIA TAO Toolkit позволяет комбинировать предварительно обученные модели NVIDIA с пользовательскими данными для создания моделей компьютерного зрения и диалогового ИИ. TAO Toolkit использует простой CLI-интерфейс, который абстрагируется от сложности инфраструктуры ИИ, позволяя создавать модели ИИ производственного качества, используя только файл спецификации и одну из предварительно обученных моделей NVIDIA.

Так реализуется принцип трансферного обучения — переноса обученных моделей из одного приложения в другое, когда модель, обученная одной задаче, переобучается для использования в другой задаче. Это отлично работает, поскольку многие первые слои нейросети одинаковы для схожих задач. Например, ранние слои сверточной нейронной сети для задач компьютерного зрения используются для определения контуров, кривых и других особенностей изображения. Фичи из этих слоев могут быть применены к аналогичным задачам, выполняющим ту же идентификацию в других доменах. Таким образом, при трансферном обучении для точного обучения модели требуется намного меньше данных и времени по сравнению с обучением той же модели с нуля.

TAO Toolkit представляет собой Python-пакет, который взаимодействует с Docker-контейнерами более низкого уровня, доступными из Реестра ускоренных контейнеров NVIDIA GPU; Контейнеры TAO поставляются со всеми предустановленными зависимостями, необходимыми для обучения. Интерфейс командной строки запускается из блокнотов Jupyter, упакованных внутри каждого контейнера докера, и состоит из нескольких простых команд, таких как обучение, оценка, вывод, сокращение, экспорт и увеличение (т. е. увеличение данных). Результатом рабочего процесса TAO является обученная модель, которую можно развернуть для получения логических выводов на устройствах NVIDIA с использованием DeepStream , TensorRT и Riva . Прикладной уровень TAO построен поверх CUDA-X, который содержит все низкоуровневые библиотеки NVIDIA, в том числе NVIDIA Container Runtime для ускорения GPU, CUDA и cuDNN для операций глубокого обучения (DL) и TensorRT (оптимизация выводов NVIDIA и runtime engine) для оптимизации моделей. Модели, созданные с помощью TAO Toolkit, полностью совместимы с TensorRT и ускорены для него, что обеспечивает максимальную производительность логического вывода без каких-либо дополнительных усилий.

В общем виде использования TAO Toolkit для трансферного Machine Learning выглядит так:

  • Формирование датасета – сперва следует загрузить свой набор данных в преобразователь, чтобы обогатить их и создать датасет для обучения модели;
  • Обучение модели с использованием файла спецификации для выбора гиперпараметров;
  • Оценка — после первого этапа обучения модели следует оценить ее на тестовом датасете, чтобы увидеть, как модель работает с данными, которые она никогда раньше не видела. Если точность модели недостаточна, надо настроить некоторые гиперпараметры и повторно обучить модель. Обучение — это итеративный процесс, который занимает несколько циклов.
  • Сокращение модели, когда TAO будет алгоритмически удалять нейроны из нейросети, которые не вносят существенного вклада в общую точность. Также сокращение модели уменьшает ее общий размер, дает значительное уменьшение объема потребляемой памяти и увеличение пропускной способности логических выводов, что очень важно для периферийного развертывания. Это необходимо только для моделей компьютерного зрения, но не требуется для разговорного ИИ. Сокращение модели снизит точность модели, поэтому придется повторно обучить модель на том же наборе данных, чтобы восстановить потерянную точность. После повторного обучения необходимо снова оценить модель на том же тестовом наборе данных.
  • Экспорт модели будет в формате .etlt, который можно развернуть непосредственно на любом графическом процессоре NVIDIA с помощью DeepStream и TensorRT. На этапе экспорта можно дополнительно сгенерировать калибровочный кэш INT8, который квантует веса с плавающей запятой до целочисленных значений. Вывод с точностью INT8 может более чем удвоить производительность по сравнению с точностью FP16 или FP32 без ущерба для точности модели. После экспорта любую модель компьютерного зрения в TAO можно развернуть в оптимизированном для TensorRT движке с помощью преобразователя TAO.

Познакомившись с возможностями и вариантами использования NVIDIA TAO Toolkit, рассмотрим, как применять этот набор инструментов со средствами MLOps – концепции, которая направлена на устранение организационных и технических разрывов между этапами и участниками процессов создания и развертывания систем Machine Learning.

Интеграция с MLOps

MLOps представляет собой набор методов надежного развертывания и обслуживания моделей машинного обучения в производственных средах. Тренировка моделей глубокого обучения может быть очень утомительным процессом, который включает выполнение нескольких итераций обучения с различными комбинациями гиперпараметров. Это приводит к необходимости проводить несколько экспериментов и отслеживать множество метрик. Чтобы упростить эксперименты и отслеживание показателей, TAO Toolkit интегрируется с несколькими сторонними службами MLOPS: ClearML и Weights & Biases  (WandB).

TAO Toolkit включает множество нейросетей (DetectNet-v2, FasterRCNN, TF2, RetinaNet YOLOv4, YOLOv3, SSD, DSSD, МаскаRCNN, UNet и др.), которые взаимодействуют с ClearML и Weights & Biases, позволяя непрерывно выполнять итерации, визуализировать и отслеживать несколько экспериментов по обучению, а также собирать ценные сведения о прецедентах обучения. В TAO Toolkit 4.0.1 пакеты визуализации ClearML и WandB синхронизируются с данными, отображаемыми в TensorBoard. Поэтому, чтобы увидеть отрендеренные данные поверх сервера ClearML или WandB, нужно включить визуализацию TensorBoard . Интеграция также включает в себя возможность отправлять оповещения через Slack или по электронной почте о неудачных тренировочных прогонах. Хотя включение интеграции MLOps не требует установки tensorboard, чтобы интегрировать TAO Toolkit со сторонней службой MLOps, необходимо настроить в ней учетную запись.

Кроме того, TAO Toolkit также поддерживает AutoML, предоставляя соответствующий сервис API, который автоматически выбирает гиперпараметры глубокого обучения для выбранной модели и датасета. API TAO Toolkit представляет собой сервис Kubernetes, который позволяет создавать сквозные модели ИИ с использованием пользовательских датасетов. Его легко установить в локальный кластер Kubernetes или развернутый на AWS EKS с помощью Helm-диаграмм вместе с минимальными зависимостями. Задания TAO Toolkit можно запускать с использованием графических процессоров, доступных в кластере, и их масштабировать до настройки нескольких узлов. Можно разрабатывать собственные клиентские приложения поверх предоставленного API или использовать CLI-интерфейс удаленного клиента TAO.

TAO Toolkit позволяет инициировать такие действия, как обучение, оценка, сокращение, повторное обучение, экспорт и вывод ML-моделей с помощью простых вызовов API. Для каждого действия пользователь может получить спецификации по умолчанию, используя HTTP-запросы GET и POST, возвращающие спецификации в формате JSON. Также сервис дает возможность объединить задания в цепочку, чтобы, например, запустить обучение и оценку с помощью одного вызова API. Это абстрагирует сложные манипуляции с каталогами и проверки зависимостей. Сервис предоставляет API заданий для их загрузки, мониторинга и отмены, включая отслеживание номера эпохи, точности, значений потерь и другую полезную информации. Удаленный клиент TAO — это простой CLI-интерфейс, который использует вызовы API для предоставления интерфейса, аналогичного CLI-интерфейсу TAO Launcher. Сценарии использования REST API представляют собой сторонние облачные веб-сервисы, а пользовательскими сценариями удаленного клиента будут обучающие фермы, внутренние системы производства моделей, исследовательские проекты и пр. Сервис API может работать на любой платформе Kubernetes, но официально пока поддерживаются только Bare-Metal и AWS EKS.

API TAO Toolkit также предоставляет интерфейс блокнота Jupyter для апробации функции AutoML. Каждый запуск AutoML содержит несколько обучающих экспериментов. В конце запуска AutoML можно получить доступ к конфигурации, содержащей гиперпараметры наиболее эффективной модели среди нескольких экспериментов, а также двоичный файл весов для развертывания модели в конечном приложении.

Рекомендуется одновременно запускать только один блокнот AutoML, поскольку каждый эксперимент в AutoML — это отдельное задание Kubernetes, который выполняет планирование на основе заданий, отправленных в очередь. Запуск нескольких моделей в разных блокнотах заполнит очередь экспериментами AutoML с разными моделями, что увеличит время выполнения для завершения одного эксперимента AutoML.

В заключение отметим, что получить последнюю версию TAO Toolkit можно совершенно бесплатно, установив пакет nvidia-tao из NVIDIA PyIndex с помощью менеджера пакетов pip. Все модели машинного обучения, предоставляемые NVIDIA, также можно использовать и распространять бесплатно.

Узнайте больше про использование MLOps-инструментов в системах аналитики больших данных и машинного обучения на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://docs.nvidia.com/tao/tao-toolkit/text/overview.html
  2. https://docs.nvidia.com/tao/tao-toolkit/text/mlops/overview.html
Поиск по сайту