Tutorial de fluxo de ar TFX

Visão geral

Visão geral

Este tutorial foi desenvolvido para ajudar você a aprender a criar seus próprios pipelines de machine learning usando o TensorFlow Extended (TFX) e o Apache Airflow como orquestrador. Ele é executado no Vertex AI Workbench e mostra integração com TFX e TensorBoard, bem como interação com TFX em um ambiente Jupyter Lab.

O que você vai fazer?

Você aprenderá como criar um pipeline de ML usando TFX

  • Um pipeline TFX é um gráfico acíclico direcionado ou "DAG". Freqüentemente nos referiremos aos pipelines como DAGs.
  • Os pipelines TFX são apropriados quando você implantará um aplicativo de ML de produção
  • Os pipelines do TFX são apropriados quando os conjuntos de dados são grandes ou podem crescer muito
  • Os pipelines do TFX são apropriados quando a consistência do treinamento/serviço é importante
  • Os pipelines do TFX são apropriados quando o gerenciamento de versões para inferência é importante
  • O Google usa pipelines TFX para ML de produção

Consulte o Guia do usuário do TFX para saber mais.

Você seguirá um processo típico de desenvolvimento de ML:

  • Ingerindo, compreendendo e limpando nossos dados
  • Engenharia de recursos
  • Treinamento
  • Analisando o desempenho do modelo
  • Ensaboe, enxágue, repita
  • Pronto para produção

Apache Airflow para orquestração de pipeline

Os orquestradores do TFX são responsáveis ​​por agendar componentes do pipeline do TFX com base nas dependências definidas pelo pipeline. O TFX foi projetado para ser portátil para vários ambientes e estruturas de orquestração. Um dos orquestradores padrão suportados pelo TFX é o Apache Airflow . Este laboratório ilustra o uso do Apache Airflow para orquestração de pipeline do TFX. Apache Airflow é uma plataforma para criar, agendar e monitorar fluxos de trabalho de forma programática. O TFX usa o Airflow para criar fluxos de trabalho como gráficos acíclicos direcionados (DAGs) de tarefas. A interface de usuário avançada facilita a visualização de pipelines em execução na produção, o monitoramento do progresso e a solução de problemas quando necessário. Os fluxos de trabalho do Apache Airflow são definidos como código. Isso os torna mais fáceis de manter, versionáveis, testáveis ​​e colaborativos. Apache Airflow é adequado para pipelines de processamento em lote. É leve e fácil de aprender.

Neste exemplo, executaremos um pipeline TFX em uma instância configurando manualmente o Airflow.

Os outros orquestradores padrão suportados pelo TFX são Apache Beam e Kubeflow. O Apache Beam pode ser executado em vários back-ends de processamento de dados (Beam Ruunners). O Cloud Dataflow é um executor de feixe que pode ser usado para executar pipelines do TFX. O Apache Beam pode ser usado para pipelines de streaming e processamento em lote.
Kubeflow é uma plataforma de ML de código aberto dedicada a tornar as implantações de fluxos de trabalho de aprendizado de máquina (ML) no Kubernetes simples, portáteis e escalonáveis. O Kubeflow pode ser usado como orquestrador para pipelines TFFX quando eles precisam ser implantados em clusters Kubernetes. Além disso, você também pode usar seu próprio orquestrador personalizado para executar um pipeline do TFX.

Leia mais sobre o Airflow aqui .

Conjunto de dados de táxi de Chicago

táxi.jpg

chicago.png

Você usará o conjunto de dados Taxi Trips divulgado pela cidade de Chicago.

Objetivo do modelo – Classificação binária

O cliente dará gorjeta maior ou menor que 20%?

Configure o projeto Google Cloud

Antes de clicar no botão Iniciar laboratório Leia estas instruções. Os laboratórios são cronometrados e você não pode pausá-los. O cronômetro, que começa quando você clica em Iniciar laboratório , mostra por quanto tempo os recursos do Google Cloud ficarão disponíveis para você.

Este laboratório prático permite que você mesmo realize as atividades de laboratório em um ambiente de nuvem real, não em um ambiente de simulação ou demonstração. Isso é feito fornecendo credenciais novas e temporárias que você usa para fazer login e acessar o Google Cloud durante o laboratório.

Do que você precisa Para concluir este laboratório, você precisa de:

  • Acesso a um navegador de internet padrão (recomenda-se o navegador Chrome).
  • É hora de concluir o laboratório.

Como iniciar seu laboratório e fazer login no Console do Google Cloud 1. Clique no botão Iniciar laboratório . Se você precisar pagar pelo laboratório, um pop-up será aberto para você selecionar sua forma de pagamento. À esquerda há um painel preenchido com as credenciais temporárias que você deve usar neste laboratório.

qwiksetup1.png

  1. Copie o nome de usuário e clique em Abrir Google Console . O laboratório gera recursos e abre outra guia que mostra a página Entrar .

qwiksetup2.png

Dica: abra as guias em janelas separadas, lado a lado.

qwiksetup3.png

  1. Na página de login , cole o nome de usuário que você copiou no painel esquerdo. Em seguida, copie e cole a senha.
  1. Clique nas páginas seguintes:
  2. Aceite os termos e condições.
  • Não adicione opções de recuperação ou autenticação de dois fatores (porque esta é uma conta temporária).

  • Não se inscreva para testes gratuitos.

Após alguns instantes, o Cloud Console será aberto nesta guia.

qwiksetup4.png

Ativar Cloud Shell

Cloud Shell é uma máquina virtual carregada com ferramentas de desenvolvimento. Ele oferece um diretório inicial persistente de 5 GB e é executado no Google Cloud. O Cloud Shell fornece acesso de linha de comando aos recursos do Google Cloud.

No Cloud Console, na barra de ferramentas superior direita, clique no botão Ativar Cloud Shell .

qwiksetup5.png

Clique em Continuar .

qwiksetup6.png

Leva alguns minutos para provisionar e conectar-se ao ambiente. Quando estiver conectado, você já estará autenticado e o projeto estará definido como seu _PROJECT ID . Por exemplo:

qwiksetup7.png

gcloud é a ferramenta de linha de comando do Google Cloud. Ele vem pré-instalado no Cloud Shell e oferece suporte ao preenchimento de guias.

Você pode listar o nome da conta ativa com este comando:

gcloud auth list

(Saída)

ATIVA: * CONTA: student-01-xxxxxxxxxxxx@qwiklabs.net Para definir a conta ativa, execute: $ gcloud config set account ACCOUNT

Você pode listar o ID do projeto com este comando: gcloud config list project (Saída)

[principal] projeto =

(Exemplo de saída)

Projeto [núcleo] = qwiklabs-gcp-44776a13dea667a6

Para obter a documentação completa do gcloud, consulte a visão geral da ferramenta de linha de comando gcloud .

Ativar serviços do Google Cloud

  1. No Cloud Shell, use gcloud para ativar os serviços usados ​​no laboratório. gcloud services enable notebooks.googleapis.com

Implantar instância do Vertex Notebook

  1. Clique no menu de navegação e navegue até Vertex AI e depois até Workbench .

vertex-ai-workbench.png

  1. Na página Instâncias de notebook, clique em Novo notebook .

  2. No menu Personalizar instância, selecione TensorFlow Enterprise e escolha a versão do TensorFlow Enterprise 2.x (with LTS) > Without GPUs .

vértice-notebook-create-2.png

  1. Na caixa de diálogo Nova instância de notebook , clique no ícone de lápis para Editar propriedades da instância.

  2. Em Instance name , insira um nome para sua instância.

  3. Para Region , selecione us-east1 e para Zone , selecione uma zona dentro da região selecionada.

  4. Role para baixo até Configuração da máquina e selecione e2-standard-2 para Tipo de máquina.

  5. Deixe os campos restantes com o padrão e clique em Criar .

Após alguns minutos, o console da Vertex AI exibirá o nome da sua instância, seguido por Open Jupyterlab .

  1. Clique em Abrir JupyterLab . Uma janela do JupyterLab será aberta em uma nova guia.

Configure o ambiente

Clonar o repositório do laboratório

Em seguida, você clonará o repositório tfx em sua instância do JupyterLab. 1. No JupyterLab, clique no ícone Terminal para abrir um novo terminal.

Observação: se solicitado, clique em Cancel para Compilação recomendada.

  1. Para clonar o repositório tfx Github, digite o seguinte comando e pressione Enter .
git clone https://github.com/tensorflow/tfx.git
  1. Para confirmar que você clonou o repositório, clique duas vezes no diretório tfx e confirme se você pode ver seu conteúdo.

diretório-repo.png

Instalar dependências de laboratório

  1. Execute o seguinte para ir para a pasta tfx/tfx/examples/airflow_workshop/taxi/setup/ e execute ./setup_demo.sh para instalar as dependências do laboratório:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

O código acima irá

  • Instale os pacotes necessários.
  • Crie uma pasta airflow na pasta inicial.
  • Copie a pasta dags da pasta tfx/tfx/examples/airflow_workshop/taxi/setup/ para a ~/airflow/ .
  • Copie o arquivo csv de tfx/tfx/examples/airflow_workshop/taxi/setup/data para ~/airflow/data .

airflow-home.png

Configurando o servidor Airflow

Crie uma regra de firewall para acessar o servidor Airflow no navegador

  1. Acesse <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> e certifique-se de o nome do projeto é selecionado apropriadamente
  2. Clique na opção CREATE FIREWALL RULE na parte superior

regra de firewall.png

Na caixa de diálogo Criar um firewall , siga as etapas listadas abaixo.

  1. Para Name , coloque airflow-tfx .
  2. Para Prioridade , selecione 1 .
  3. Para Destinos , selecione All instances in the network .
  4. Para intervalos IPv4 de origem , selecione 0.0.0.0/0
  5. Para Protocolos e portas , clique em tcp e digite 7000 na caixa ao lado de tcp
  6. Clique em Create .

criar-firewall-dialog.png

Execute o servidor airflow a partir do seu shell

Na janela do Jupyter Lab Terminal, mude para o diretório inicial e execute o comando airflow users create para criar um usuário administrador para o Airflow:

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

Em seguida, execute o comando airflow webserver e airflow scheduler para executar o servidor. Escolha a porta 7000 , pois é permitida pelo firewall.

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

Obtenha seu ip externo

  1. No Cloud Shell, use gcloud para obter o IP externo.
gcloud compute instances list

gcloud-instance-ip.png

Executando um DAG/Pipeline

Em um navegador

Abra um navegador e acesse http:// :7000

  • Na página de login, insira o nome de usuário ( admin ) e a senha ( admin ) que você escolheu ao executar o comando airflow users create .

airflow-login.png

O Airflow carrega DAGs de arquivos de origem Python. Ele pega cada arquivo e o executa. Em seguida, ele carrega quaisquer objetos DAG desse arquivo. Todos os arquivos .py que definem objetos DAG serão listados como pipelines na página inicial do airflow.

Neste tutorial, o Airflow verifica a pasta ~/airflow/dags/ em busca de objetos DAG.

Se você abrir ~/airflow/dags/taxi_pipeline.py e rolar até o final, verá que ele cria e armazena um objeto DAG em uma variável chamada DAG . Portanto, ele será listado como um pipeline na página inicial do fluxo de ar, conforme mostrado abaixo:

dag-home-full.png

Se você clicar em táxi, será redirecionado para a visualização em grade do DAG. Você pode clicar na opção Graph na parte superior para obter a visualização do gráfico do DAG.

airflow-dag-graph.png

Acione o pipeline de táxi

Na página inicial você pode ver os botões que podem ser usados ​​para interagir com o DAG.

dag-botões.png

No cabeçalho de ações , clique no botão de acionamento para acionar o pipeline.

Na página do DAG de táxi, use o botão à direita para atualizar o estado da visualização do gráfico do DAG à medida que o pipeline é executado. Além disso, você pode ativar a atualização automática para instruir o Airflow a atualizar automaticamente a visualização do gráfico conforme e quando o estado mudar.

dag-button-refresh.png

Você também pode usar a CLI do Airflow no terminal para ativar e acionar seus DAGs:

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

# trigger
airflow trigger_dag <your DAG name>

Aguardando a conclusão do pipeline

Depois de acionar o pipeline, na visualização DAGs, você poderá observar o progresso do pipeline enquanto ele está em execução. À medida que cada componente é executado, a cor do contorno do componente no gráfico DAG muda para mostrar seu estado. Quando um componente terminar de ser processado, o contorno ficará verde escuro para mostrar que foi concluído.

dag-step7.png

Entendendo os componentes

Agora veremos os componentes desse pipeline em detalhes e examinaremos individualmente as saídas produzidas por cada etapa do pipeline.

  1. No JupyterLab, vá para ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/

  2. Abra notebook.ipynb. notebook-ipynb.png

  3. Continue o laboratório no notebook e execute cada célula clicando no botão Executar ( botão de execução.png ) ícone na parte superior da tela. Alternativamente, você pode executar o código em uma célula com SHIFT + ENTER .

Leia a narrativa e certifique-se de entender o que está acontecendo em cada célula.