Введение

Для специалиста по данным создание моделей машинного обучения в значительной степени сосредоточено на таких задачах, как разработка функций и алгоритмы моделей - в основном задачи программирования с помощью Python или около того. В действительности для внедрения машинного обучения и искусственного интеллекта требуются сквозные компоненты от источников данных до обслуживания и мониторинга моделей машинного обучения.

Google AI pipeline - это комбинация инфраструктуры Kubeflow Pipeline и Tensorflow Extension (TFX), которая обеспечивает надежное развертывание конвейеров машинного обучения вместе с аудитом и мониторингом. Как часть платформы Google AI, конвейер AI позволяет разработчикам быстро развертывать несколько моделей и конвейеров, используя повторно используемые компоненты конвейера.

Ключевые преимущества GCP AI Pipeline:

  • Установка кнопки для кластера Kubernetes для ML Pipeline
  • Развертывание корпоративного машинного обучения с ведением журнала и мониторингом
  • Автоматическое отслеживание метаданных и артефактов
  • Многоразовые шаблоны трубопроводов и компоненты трубопроводов
  • Интеграция с такими сервисами GCP, как BigQuery, Dataflow, AI Platform и многими другими.
  • AI Pipeline Документация и Вводный блог

Архитектура

AI Platform Pipelines (добавить URL) упрощает начало работы с MLOps, избавляя вас от необходимости настраивать конвейеры Kubeflow с помощью TensorFlow Extended (TFX). Kubeflow Pipelines - это платформа с открытым исходным кодом для запуска, мониторинга, аудита и управления конвейерами машинного обучения в Kubernetes. TFX - это проект с открытым исходным кодом для создания конвейеров машинного обучения, которые организуют сквозные рабочие процессы машинного обучения.

Шаблон AI Pipeline

AI Platform Pipelines избавляет вас от следующих трудностей:

С помощью AI Platform Pipelines вы можете настроить кластер Kubeflow Pipelines за 15 минут, так что вы можете быстро приступить к работе с конвейерами машинного обучения. AI Platform Pipelines также создает корзину Cloud Storage, чтобы упростить запуск обучающих программ по конвейеру и начать работу с шаблонами конвейера TFX.

Давайте развернем шаблоны конвейера AI по умолчанию, которые поставляются с платформой GCP AI, настроив наш кластер Kubernetes и среду ноутбука Jupyter.

Из консоли GCP → AI Platform → Pipelines, страница AI Platform Pipelines.

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

Нажмите "Настроить", чтобы продолжить.

Важно: для нового кластера выберите зону как: us-central1-a, обязательно установите флажок «Разрешить доступ к Cloud API». Щелкните Создать кластер. Дождитесь создания кластера, разверните экземпляр приложения.

Вы можете увидеть свой конвейерный кластер в AI Platform → Pipelines. Вот документация для более подробной информации о настройке конвейеров платформы AI. В настройках кластера будет выделен URL-адрес конечной точки кластера, который вам нужно будет использовать при разработке конвейера в следующем разделе.

Щелкните ОТКРЫТУЮ ПАНЕЛЬ ТРУБОПРОВОДА на странице информации о кластере трубопроводов.

Откройте TF 2.1 Notebook, чтобы увидеть шаблон конвейера.

Вы можете продолжать открывать созданный для вас экземпляр записной книжки. При необходимости вы можете создавать различные среды записной книжки по своему выбору. Откройте JupyterLab.

Использование примера шаблона конвейера AI

Пример блокнота создания конвейера машинного обучения на основе TFX отображается в AI Hub, чтобы вы могли быстро приступить к работе. Вы можете просмотреть инструкции шаблона, чтобы развернуть пример конвейера модели машинного обучения для прогнозирования классификации подсказок такси.

Шаблон TFX организован с набором повторно используемых компонентов, что делает развертывание конвейера модели машинного обучения таким же простым, как и plug-and-play, путем замены источника данных, алгоритма модели или набора функций. Давайте рассмотрим компоненты шаблона. Давайте посмотрим на снимок экрана с иллюстративным рабочим процессом, который был запущен на Kubeflow Pipelines. Это просто иллюстративный рабочий процесс, и пользователи могут создавать и запускать множество различных видов топологии рабочего процесса с различным кодом и инструментами на различных этапах рабочего процесса.

При использовании шаблонов для расширения Tensorflow (TFX) можно быстро обновить / изменить компоненты в соответствии с их вариантом использования и создать новый конвейер.

Конвейер шаблонов предоставляет следующую структуру кода, которую вы можете быстро изменить для своего собственного ML-приложения. Мы будем использовать ту же структуру шаблона для развертывания конвейера Covid-19 ML.

  1. template.jpynb - блокнот описывает шаги по настройке среды и построению конвейера.
  2. kubeflow_dag_runner.py - определение бегунов для каждого механизма оркестрации - kubeflow.
  3. pipeline.py - определяет компоненты TFX и конвейер.
  4. configs.py - определяет общие константы для конвейеров
  5. features.py - Определите здесь константы, общие для всех моделей, включая имена функций, метку и размер словаря.
  6. hparams.py - настройка гиперпараметров для выполнения обучения модели.
  7. model.py - tf.estimator для определения модели с использованием функций и параметров.
  8. preprocessing.py - определите вашу предварительную обработку функций.

В дополнение к указанной выше модульной структуре конвейера, шаблон также предоставляет несколько утилит:

  1. features_test.py - для написания и тестирования ваших функций
  2. model_test.py - протестируйте свою модель и оцените
  3. preprocessing_test.py - написать и протестировать функции предварительной обработки

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

Шаблон Развертывание конвейеров Covid19

Убедитесь, что вы создали кластер конвейера, как описано в предыдущих разделах, и запустили среду jupyterlab.

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

! git clone https://github.com/testpilot0/covid.git

Как только команды скопируют репозиторий git в среду вашего ноутбука, вы увидите папки covid и папку lab в / covid / lab.

Выберите и откройте блокнот lab4, чтобы следовать подробным подробным инструкциям по работе с конвейером прогнозирования пептидов. Более подробные инструкции см. В этой рабочей тетради. Давайте рассмотрим ключевые разделы записной книжки. Откройте только что скопированный демонстрационный конвейер и прочитайте инструкции для каждого шага по мере продвижения:

Шаг 1. Настройте среду

Выполните команды, чтобы установить версии Tensorflow Extension (TFX) и проверить настройку. Поскольку среда ноутбука уже запущена с Python 3, игнорируйте ошибки, как описано в разделе. Ключевые контрольные точки:

  1. Проверить версию TFX
  2. Подтвердите название вашего проекта GCP
  3. Необходимо обновить переменную ENDPOINT кластера kubeflow.

Шаг 2. Скопируйте предопределенный шаблон конвейера для прогнозирования пептидов

На этом этапе создается рабочий каталог и копируются необходимые файлы Python для конвейера. Обязательно создайте папку в / AIHub / и выполните необходимые команды. Ключевые контрольные точки:

  1. Укажите имя конвейера, вы можете оставить имя по умолчанию для демонстрации.
  2. Убедитесь, что вы создали папку с тем же именем, что и название вашего конвейера.
  3. Запустите команду, чтобы перенести файлы шаблонов в вашу демонстрационную папку
  4. Проверьте свой текущий рабочий каталог

Шаг 3. Проверьте файлы шаблонов

Краткое введение в каждый файл и список файлов для проверки, запустите небольшой тестовый файл. Ключевые контрольные точки:

  1. Список файлов

Шаг 4. Запустите демонстрацию конвейера прогнозирования пептидов

Обновите файл конфигурации, чтобы он ссылался на вашу корзину GCS, в которую будут отправляться выходные данные конвейера и экспорт модели. Ключевые контрольные точки:

  1. Необходимо обновить имя сегмента GCS в файле конфигурации.
  2. Проверить другие переменные в файле конфигурации
  3. Запустите и протестируйте свой конвейер
  4. Проверить конвейер на панели инструментов конвейера AI Platform

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

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

Щелкните такие компоненты, как statisticgen и оценщик, чтобы просмотреть подробные сведения о распределении данных и производительности модели.

Раздел 5 [необязательно]: управление компонентами конвейера

Вы можете добавлять / удалять компоненты для проверки данных, включая StatisticsGen, SchemaGen и ExampleValidator. Если вас интересует проверка данных, см. Начало работы с проверкой данных Tensorflow.

Раздел 6 [необязательно]: BigQueryExampleGen

Ваш демонстрационный конвейер настроен с использованием образцов данных, представленных в виде файла csv. Фактически вы хотели бы перенести данные из облака хранилища или, тем более, из BigQuery, где у вас могут быть большие наборы данных. Используйте этот раздел, чтобы узнать больше о том, как заменить компоненты csvExampleGen на BigQuery. Обязательно проверьте требования к конфигурации, как описано в этом разделе записной книжки. Вы можете использовать полные наборы данных эпитопа из общедоступного набора данных BigQuery или из собственного проекта. Ключевые контрольные точки:

  1. Обновите файл pipeline.py с помощью BQExampleGen вместо csv
  2. Убедитесь, что в файле конфигурации указаны переменные проекта, данные в котором заданы в BQ.
  3. Обязательно проверьте аргументы запроса BQ в файле конфигурации
  4. Обязательно обновите файл запуска kubeflow, чтобы включить параметры запроса.
  5. Обязательно обновите функции, если вы планируете использовать большее или меньшее количество атрибутов набора данных.

Развернуть модель для обслуживания прогнозов

Раздел 7 [необязательно]: развертывание модели для прогнозирования

В этом разделе представлена ​​конфигурация с использованием платформ искусственного интеллекта для обучения и последующего развертывания модели для обслуживания. При желании вы также можете развернуть модель непосредственно через панель управления модели платформы AI. (Внутреннее примечание: Ошибка в процессе исправления вызова API для построения модели из записной книжки.)

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

По умолчанию ваша модель будет сохранена в вашей корзине GCS → папка tfx_pipeline_output. Давайте развернем версию модели для прогнозирования.

Нажмите Создать модель на странице модели на панели управления AI Platform.

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

Обязательно выберите TF версии 2.1 для платформы и времени выполнения.

Убедитесь, что для выбора сохраненной модели выберите родительский каталог из GCS из каталога выходных данных вашей модели → serv_dir → folder_name, который содержит файл saved_model.pb.

Разверните модель, теперь она готова к работе. Щелкните развернутую версию, вы можете протестировать ее в режиме онлайн или в пакетном режиме. Более подробную информацию о развернутой модели можно найти здесь.

Раздел 8 [необязательно]: внесите свою собственную модель и данные в конвейер

Мы создали конвейер для модели, используя образец набора данных эпитопа. Пришло время поместить ваши данные в конвейер. Ваши данные могут храниться везде, где есть доступ к вашему конвейеру, включая GCS или BigQuery. Вам нужно будет изменить определение конвейера для доступа к вашим данным. Ключевые контрольные точки:

  1. Если ваши данные хранятся в файлах, измените DATA_PATH в kubeflow_dag_runner.py или beam_dag_runner.py и укажите в нем расположение ваших файлов. Если ваши данные хранятся в BigQuery, измените BIG_QUERY_QUERY в configs.py, чтобы правильно запрашивать ваши данные.
  2. Добавьте функции в features.py.
  3. Измените preprocessing.py на преобразование входных данных для обучения.
  4. Измените model.py и hparams.py, чтобы описать вашу модель машинного обучения.

Шаг 9. Очистка ресурсов

Чтобы очистить все ресурсы Google Cloud, используемые в этом демонстрационном проекте, вы можете удалить проект Google Cloud, который вы использовали в учебнике.

Заключение и дальнейшая работа

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

Я не говорю от имени своего работодателя. Это не официальная работа Google. Все оставшиеся ошибки, конечно же, принадлежат мне.