Vertex AI — это унифицированная платформа машинного обучения в Google Cloud, аналогичная SageMaker в AWS.
Когда я впервые посмотрел на VertexAI, я пропустил быстрое визуальное представление с обзором того, как работает индивидуальное обучение. Например, было непросто понять, что большая часть кода должна выполняться в другом проекте, управляемом Google Cloud, или как передать происхождение/метаданные в VertexAI.
Цель состоит в том, чтобы показать это здесь, дополненное кратким пояснением.
Обзор
Первый день — как мы видим кастомное обучение в VertexAI
Виртуальная машина VertexAI запускается в Compute Engine каждый раз, когда мы открываем новую записную книжку в рабочей среде пользовательского интерфейса. Мы можем обучаться в блокноте Jupyter, работающем на этой виртуальной машине, или использовать ресурсы Google Cloud для обучения модели. В этом пошаговом руководстве предполагается последний сценарий.
Шаги:
- Код в записной книжке создает набор данных VertexAI, который представляет собой оболочку над местоположением GCP или отношением BigQuery.
- Мы используем макрос
%%writefile
Jupyter для создания сценария обученияtrain.py
. Это то, что показывает большинство онлайн-примеров. Но вам лучше использовать GIT на виртуальной машине или загрузить код обучения в облачное хранилище. Более того, здесь лучше использовать дистрибутив исходного кода Python. - Создайте конвейер обучения И
- Запустите его с конкретным
dataset_id
из шага 1. Далее показано, что здесь происходит.
Как архитекторы машинного обучения видят индивидуальное обучение в VertexAI
Пример развертывания блокнота, управляемого пользователем.
На схеме не показаны сетевые особенности:
VertexAI предлагает управляемое обучение. Это делается в другом проекте, управляемом GCP. Как только мы запускаем обучающее задание на шаге 4, задание попадает в очередь заданий в проекте GCP.
GCP запускает задание с помощью кода распространения программного обеспечения train.py
или Python, предоставленного выше на шаге 2. Аргументы команды передаются каждому рабочему процессу, как описано в объекте задания. Локации данных, которые были обернуты объектом набора данных VertexAI, передаются в скрипт обучения на каждом воркере через переменные среды.
После завершения задания результаты обычно записываются в GCS вашего проекта.
В задании может быть указано несколько рабочих пулов с разными машинами/аргументами для каждого из них. CLUSTER_SPEC включает index
воркера. В этом введении мы не будем углубляться в параллельное обучение данных.
Зачем тренироваться в VertexAI
В тех случаях, когда моя модель обучается на небольших данных и не требует GPU, следует ли мне использовать локальный блокнот Jupyter?
Как только мы пойдем по пути VertexAI, мы получим:
- Метаданные, специально для настройки гиперпараметров с Визирем
- Информация о происхождении в метаданных
- MLOps с конвейерами Kubeflow/TFX
- Консолидированное ведение журнала/мониторинг
- Модель реестра
- Объяснимый ИИ
- Задания Разметка данных
- Образы Docker для обучения, обслуживания и блокнотов Jupyter
Кроме того, отделение фактического обучающего кода от самой записной книжки обеспечивает лучшую структуру вашего кода.
Недостатком является цена виртуальной машины VertexAI Workbench.
Вышеупомянутое может не понадобиться для небольших разовых исследовательских проектов. Для больших/больших данных/сложных/требующих ресурсов проектов вам, вероятно, следует использовать VertexAI или аналогичное решение для обучения GCP.
На этом мы завершаем введение в индивидуальное обучение VertexAI.