Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

ML sem código com TensorFlow e AI Platform

By Gad BenramJul 2, 20193 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

0 ryyk3bja967khyim

Os avanços nos frameworks de IA permitem que desenvolvedores criem e implantem modelos de deep learning com poucos cliques na tela. Com uma interface ou uma API baseada em Tensorflow Estimators, dá para construir e servir modelos sem escrever uma única linha de código de machine learning.

0 ryyk3bja967khyimFoto de Adi Goldstein no Unsplash

Há 70 anos, só um punhado de especialistas sabia criar programas de computador, porque programar exigia altíssima especialização teórica e técnica. Com o passar dos anos, criamos níveis cada vez maiores de abstração e encapsulamento na programação, possibilitando que profissionais menos especializados desenvolvessem software com ferramentas bem simples (veja o Wix, por exemplo). O mesmo está acontecendo hoje com machine learning — só que num ritmo muito mais acelerado. Neste post, vamos montar um script simples que gera um pipeline completo de machine learning.

Realmente sem código?

Este post traz dois tipos de código. O primeiro é uma consulta SQL para gerar o dataset — essa parte poderia ser substituída por ferramentas como o Google Cloud Dataprep. O outro tipo envolve chamadas de API com uma biblioteca cliente em Python — todas essas ações também estão disponíveis pela interface do AI Platform. Quando falo em "sem código", quero dizer que em nenhum momento você vai precisar importar o TensorFlow ou outras bibliotecas de ML.

Nesta demonstração, vou usar o dataset aberto Chicago Taxi Trips no Google BigQuery para prever o tempo de viagem de um táxi a partir do local de embarque, do destino desejado e do horário de início da corrida. O modelo será treinado e implantado usando serviços do Google Cloud que encapsulam o Tensorflow.

O exemplo de código completo está disponível neste repositório do GitHub.

Extrair features com o BigQuery

Com base na EDA apresentada neste notebook, criei uma consulta SQL para gerar um dataset de treinamento:

https://gist.github.com/gidutz/86c701c621e48860c8ab135df56a8076

No repositório, você vai ver como executo a consulta com um cliente Python e exporto o resultado para o GCS.

Importante! Para o AI Platform construir um modelo com esses dados, a primeira coluna precisa ser a variável-alvo e o CSV exportado não pode ter cabeçalho.

Enviar o job de tuning de hiperparâmetros e implantar

Com o dataset em mãos, contendo algumas centenas de milhares de corridas, defino uma arquitetura simples de rede neural baseada na API TensorFlow Estimator, com um espaço de parâmetros a explorar. Essa especificação cria uma rede neural de 3 camadas ocultas que resolve uma tarefa de regressão (o tempo esperado da viagem) e dispara 50 trials para encontrar as configurações ótimas de taxa de aprendizado, fatores de regularização e número máximo de passos.

https://gist.github.com/gidutz/5408bb93d0e6ab7fe9fc5cb4a82447cc

Com a especificação acima, posso usar um cliente Python para iniciar um job de treinamento:

https://gist.github.com/gidutz/f166148d84c4d4beb98bc13b831b6284

Uso o cliente da API para acompanhar a execução do job e, quando ele termina, implanto e testo o modelo.

https://gist.github.com/gidutz/70b126b2a7d561e9d5f7f232d8f754eb

Pronto: concluí a implantação de um pipeline de machine learning usando apenas chamadas de API.

Gerar previsões

Para gerar previsões, carrego parte dos registros do conjunto de teste na memória e envio para a versão implantada fazer a inferência:

https://gist.github.com/gidutz/e786c430c5ea767b1bec01bcee03a863

Quer mais conteúdo? Confira nosso blog ou siga o Gad no Twitter.

Obrigado ao Adam Horowitz pela consultoria técnica