Учебное пособие по воздушному потоку TFX

Обзор

Обзор

Это руководство поможет вам научиться создавать собственные конвейеры машинного обучения с использованием TensorFlow Extended (TFX) и Apache Airflow в качестве оркестратора. Он работает на Vertex AI Workbench и демонстрирует интеграцию с TFX и TensorBoard, а также взаимодействие с TFX в среде Jupyter Lab.

Что ты будешь делать?

Вы узнаете, как создать конвейер машинного обучения с помощью TFX.

  • Конвейер TFX — это направленный ациклический граф или «DAG». Мы часто будем называть конвейеры DAG.
  • Конвейеры TFX подходят, когда вы будете развертывать производственное приложение ML.
  • Конвейеры TFX подходят, когда наборы данных большие или могут вырасти до больших размеров.
  • Конвейеры TFX подходят, когда важна согласованность обучения/обслуживания.
  • Конвейеры TFX подходят, когда важно управление версиями для логических выводов.
  • Google использует конвейеры TFX для промышленного машинного обучения

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

Вы будете следовать типичному процессу разработки ML:

  • Прием, понимание и очистка наших данных
  • Разработка функций
  • Подготовка
  • Анализ производительности модели
  • Намыльте, промойте, повторите
  • Готов к производству

Apache Airflow для оркестровки конвейеров

Оркестраторы TFX отвечают за планирование компонентов конвейера TFX на основе зависимостей, определенных конвейером. TFX предназначен для переноса в несколько сред и сред оркестровки. Одним из оркестраторов по умолчанию, поддерживаемых TFX, является Apache Airflow . В этом лабораторном занятии показано использование Apache Airflow для оркестровки конвейера TFX. Apache Airflow — это платформа для программного создания, планирования и мониторинга рабочих процессов. TFX использует Airflow для создания рабочих процессов в виде направленных ациклических графов (DAG) задач. Богатый пользовательский интерфейс позволяет легко визуализировать конвейеры, работающие в производственной среде, отслеживать ход выполнения и при необходимости устранять неполадки. Рабочие процессы Apache Airflow определяются как код. Это делает их более удобными в сопровождении, версиями, тестируемыми и совместными. Apache Airflow подходит для конвейеров пакетной обработки. Он легкий и простой в освоении.

В этом примере мы собираемся запустить конвейер TFX на экземпляре, вручную настроив Airflow.

Другие оркестраторы по умолчанию, поддерживаемые TFX, — это Apache Beam и Kubeflow. Apache Beam может работать на нескольких серверах обработки данных (Beam Ruunners). Cloud Dataflow — это один из таких источников потока, который можно использовать для запуска конвейеров TFX. Apache Beam можно использовать как для потоковых, так и для пакетных конвейеров обработки.
Kubeflow — это платформа машинного обучения с открытым исходным кодом, предназначенная для простого, портативного и масштабируемого развертывания рабочих процессов машинного обучения (ML) в Kubernetes. Kubeflow можно использовать в качестве оркестратора для конвейеров TFFX, когда их необходимо развернуть в кластерах Kubernetes. Кроме того, вы также можете использовать собственный настраиваемый оркестратор для запуска конвейера TFX.

Подробнее о воздушном потоке читайте здесь .

Набор данных такси Чикаго

такси.jpg

Чикаго.png

Вы будете использовать набор данных Taxi Trips , выпущенный городом Чикаго.

Цель модели — бинарная классификация

Будет ли клиент давать чаевые больше или меньше 20%?

Настройте облачный проект Google

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

Это практическое занятие позволяет вам самостоятельно выполнять лабораторные работы в реальной облачной среде, а не в моделирующей или демонстрационной среде. Это делается путем предоставления вам новых временных учетных данных, которые вы используете для входа и доступа к Google Cloud на время проведения лабораторной работы.

Что вам нужно Для выполнения этой лабораторной работы вам необходимо:

  • Доступ к стандартному интернет-браузеру (рекомендуется браузер Chrome).
  • Пора закончить лабораторию.

Как запустить лабораторию и войти в Google Cloud Console 1. Нажмите кнопку « Начать лабораторию ». Если вам нужно заплатить за лабораторную работу, откроется всплывающее окно для выбора способа оплаты. Слева находится панель с временными учетными данными, которые вы должны использовать для этой лаборатории.

qwiksetup1.png

  1. Скопируйте имя пользователя и нажмите Открыть консоль Google . Лаборатория запускает ресурсы, а затем открывает другую вкладку со страницей входа .

qwiksetup2.png

Совет: открывайте вкладки в отдельных окнах рядом друг с другом.

qwiksetup3.png

  1. На странице входа вставьте имя пользователя, скопированное с левой панели. Затем скопируйте и вставьте пароль.
  1. Нажмите на следующие страницы:
  2. Примите условия.
  • Не добавляйте параметры восстановления или двухфакторную аутентификацию (потому что это временная учетная запись).

  • Не подписывайтесь на бесплатные пробные версии.

Через несколько секунд на этой вкладке откроется облачная консоль.

qwiksetup4.png

Активировать облачную оболочку

Cloud Shell — это виртуальная машина, на которую загружены инструменты разработки. Он предлагает постоянный домашний каталог размером 5 ГБ и работает в облаке Google. Cloud Shell обеспечивает доступ из командной строки к вашим ресурсам Google Cloud.

В Cloud Console на верхней правой панели инструментов нажмите кнопку Активировать Cloud Shell .

qwiksetup5.png

Нажмите Продолжить .

qwiksetup6.png

Подготовка и подключение к среде занимает несколько минут. Когда вы подключены, вы уже аутентифицированы, и для проекта установлен ваш _PROJECT ID . Например:

qwiksetup7.png

gcloud — это инструмент командной строки для Google Cloud. Он предустановлен в Cloud Shell и поддерживает автодополнение с помощью табуляции.

Вы можете вывести имя активной учетной записи с помощью этой команды:

gcloud auth list

(Выход)

АКТИВНО: * УЧЕТНАЯ ЗАПИСЬ: student-01-xxxxxxxxxxxx@qwiklabs.net Чтобы установить активную учетную запись, запустите: $ gcloud config set account ACCOUNT

Вы можете вывести идентификатор проекта с помощью этой команды: gcloud config list project (Output)

[основной] проект =

(Пример вывода)

[основной] проект = qwiklabs-gcp-44776a13dea667a6

Полную документацию по gcloud см. в обзоре инструмента командной строки gcloud .

Включить облачные сервисы Google

  1. В Cloud Shell используйте gcloud, чтобы включить службы, используемые в лаборатории. gcloud services enable notebooks.googleapis.com

Развертывание экземпляра Vertex Notebook

  1. Щелкните меню навигации и перейдите к Vertex AI , затем к Workbench .

вершина-ai-workbench.png

  1. На странице Экземпляры записной книжки щелкните Создать записную книжку .

  2. В меню Customize instance выберите TensorFlow Enterprise и выберите версию TensorFlow Enterprise 2.x (с LTS) > Без графических процессоров .

вершина-блокнот-создать-2.png

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

  2. В поле Имя экземпляра введите имя своего экземпляра.

  3. В поле « Регион » выберите us-east1 , а в поле « Зона » выберите зону в пределах выбранного региона.

  4. Прокрутите вниз до Конфигурация машины и выберите e2-standard-2 для Типа машины.

  5. В остальных полях оставьте значения по умолчанию и нажмите « Создать» .

Через несколько минут консоль Vertex AI отобразит имя вашего экземпляра, а затем Open Jupyterlab .

  1. Щелкните Открыть JupyterLab . Окно JupyterLab откроется в новой вкладке.

Настройка среды

Клонировать лабораторный репозиторий

Далее вы клонируете репозиторий tfx в свой экземпляр JupyterLab. 1. В JupyterLab щелкните значок терминала , чтобы открыть новый терминал.

Примечание. При появлении запроса нажмите « Cancel » для «Рекомендуемой сборки».

  1. Чтобы клонировать репозиторий tfx Github, введите следующую команду и нажмите Enter .
git clone https://github.com/tensorflow/tfx.git
  1. Чтобы подтвердить, что вы клонировали репозиторий, дважды щелкните каталог tfx и убедитесь, что вы видите его содержимое.

репо-каталог.png

Установить экспериментальные зависимости

  1. Запустите следующее, чтобы перейти в папку tfx/tfx/examples/airflow_workshop/taxi/setup/ , затем запустите ./setup_demo.sh , чтобы установить экспериментальные зависимости:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

Приведенный выше код будет

  • Установите необходимые пакеты.
  • Создайте папку airflow в домашней папке.
  • Скопируйте папку dags из папки dags tfx/tfx/examples/airflow_workshop/taxi/setup/ в папку ~/airflow/ .
  • Скопируйте файл csv из tfx/tfx/examples/airflow_workshop/taxi/setup/data в ~/airflow/data .

воздушный поток-home.png

Настройка сервера Airflow

Создайте правило брандмауэра для доступа к серверу воздушного потока в браузере

  1. Перейдите на <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> и убедитесь, что название проекта выбрано правильно
  2. Нажмите на CREATE FIREWALL RULE вверху.

брандмауэр-rule.png

В диалоговом окне «Создание брандмауэра» выполните шаги, перечисленные ниже.

  1. В поле Name airflow-tfx .
  2. Для приоритета выберите 1 .
  3. Для Целей выберите All instances in the network .
  4. Для диапазонов исходных IPv4 выберите 0.0.0.0/0
  5. Для протоколов и портов щелкните tcp и введите 7000 в поле рядом с tcp .
  6. Щелкните Create .

создать-брандмауэр-dialog.png

Запустите сервер воздушного потока из вашей оболочки

В окне Jupyter Lab Terminal перейдите в домашний каталог, запустите команду airflow users create чтобы создать пользователя-администратора для Airflow:

cd
airflow users  create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin

Затем запустите команду airflow webserver и airflow scheduler чтобы запустить сервер. Выберите порт 7000 , поскольку он разрешен через брандмауэр.

nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &

Получите свой внешний ip

  1. В Cloud Shell используйте gcloud для получения внешнего IP-адреса.
gcloud compute instances list

gcloud-instance-ip.png

Запуск DAG/конвейера

В браузере

Откройте браузер и перейдите по адресу http:// :7000

  • На странице входа введите имя пользователя ( admin ) и пароль ( admin ), которые вы выбрали при запуске команды airflow users create .

логин.png

Airflow загружает DAG из исходных файлов Python. Он берет каждый файл и выполняет его. Затем он загружает любые объекты DAG из этого файла. Все файлы .py , которые определяют объекты DAG, будут перечислены как конвейеры на домашней странице airflow.

В этом руководстве Airflow сканирует папку ~/airflow/dags/ на наличие объектов DAG.

Если вы откроете ~/airflow/dags/taxi_pipeline.py и прокрутите вниз, вы увидите, что он создает и сохраняет объект DAG в переменной с именем DAG . Следовательно, он будет указан как конвейер на домашней странице airflow, как показано ниже:

Даг-дом-полный.png

Если вы нажмете на такси, вы будете перенаправлены на сетку DAG. Вы можете щелкнуть параметр « Graph » вверху, чтобы получить графическое представление DAG.

воздушный поток-dag-graph.png

Активировать конвейер такси

На главной странице вы можете увидеть кнопки, которые можно использовать для взаимодействия с DAG.

Даг-кнопки.png

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

На странице DAG такси используйте кнопку справа, чтобы обновить состояние графического представления DAG во время работы конвейера. Кроме того, вы можете включить автоматическое обновление , чтобы Airflow автоматически обновлял представление графика при изменении состояния.

даг-кнопка-обновить.png

Вы также можете использовать интерфейс командной строки Airflow в терминале, чтобы включить и активировать группы обеспечения доступности баз данных:

# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>

# trigger
airflow trigger_dag <your DAG name>

Ожидание завершения конвейера

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

даг-step7.png

Понимание компонентов

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

  1. В JupyterLab перейдите в ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/

  2. Откройте блокнот.ipynb. ноутбук-ipynb.png

  3. Продолжите лабораторную работу в записной книжке и запустите каждую ячейку, щелкнув кнопку Выполнить ( кнопка запуска.png ) в верхней части экрана. Кроме того, вы можете выполнить код в ячейке с помощью SHIFT + ENTER .

Прочитайте повествование и убедитесь, что вы понимаете, что происходит в каждой ячейке.