Como o Uber usa o sistema de IA Michelangelo para melhorar os serviços

Empresa desenvolve ferramenta interna complexa para implantar uma plataforma de machine learning-as-a-service

Author Photo
3:51 pm - 14 de setembro de 2017
ia7.jpg

Seguindo a estratégia de desenvolver tecnologias que criem experiências contínuas e impactantes para os clientes, o Uber tem investido pesadamente em inteligência artificial (IA) e aprendizagem de máquina. E o resultado disso foi apresentado no blog da Uber Engineering, em um post publicado na semana passada por Jeremy Hermann, chefe da plataforma de aprendizado de máquina, e Mike Del Balso, gerente de produto para aprendizagem de máquinas do laboratório.

Os engenheiros contam como a empresa vem utilizando a Michelangelo, uma plataforma interna de machine learning-as-a-service (MLaaS), cujo objetivo é democratizar o aprendizado de máquina e gerar escala de inteligência artificial para atender às necessidades do negócio. Eles explicam que a plataforma vem atendendo casos de uso em produção no Uber há cerca de um ano e tornou-se o sistema de fato para a aprendizagem de máquina dos engenheiros e cientistas de dados para construção e implantação de modelos. A plataforma foi implantada em vários data centers do Uber para fazer previsões sobre os serviços online da empresa.

Segundo Hermann e Del Balso, a Michelangelo permitiu que o Uber tenha um fluxo de trabalho padronizado para novas soluções de aprendizado de máquina em toda a organização, permitindo que as equipes internas implementem e apliquem soluções de IA em escala no Uber, de forma transparente. Ela foi projetada para cobrir o fluxo de trabalho de machine learning de ponta a ponta, tais como gerenciar dados, treinar, avaliar e implantar modelos, fazer previsões e monitorá-las. O sistema também suporta modelos tradicionais de machine learning, como previsão de séries temporais e aprendizado profundo, explica o post no blog.

O trabalho que vem sendo desenvolvido pelos dois engenheiros é, na verdade, uma continuação do que vinha sendo realizado pelo ex-chefe de aprendizado de máquina do Uber, Danny Lange. “Os resultados obtidos por Jeremy e Mark são uma continuidade e evolução dessa plataforma, que chamamos de Michelangelo”, explicou um porta-voz do Uber.

Antes do Michelangelo, o Uber teve de travar uma luta árdua para dimensionar algoritmos de aprendizagem de máquina em toda a organização. “Enquanto os cientistas de dados usavam uma grande variedade de ferramentas para criar modelos preditivos [R, scikit-learn, algoritmos personalizados, etc.], as equipes de engenharia separadas também estavam construindo sistemas one-off personalizados para usar esses modelos em produção”, contam Hermann e Del Balso.

De acordo com os especialistas, antes da Michelangelo não era possível também treinar modelos maiores do que suportavam os desktops dos cientistas de dados, além de não haver um lugar padrão para armazenar os resultados das experiências de treinamento nem uma maneira fácil de comparar um experimento com o outro. “Mais importante ainda, não havia nenhum caminho estabelecido para a implantação de um modelo em produção. Na maioria dos casos, a equipe de engenharia precisava criar um recipiente de serviço personalizado específico para o projeto em questão.”

Plataforma proprietária

Sob o guarda-chuva da Michelangelo está uma miríade de sistemas e componentes de código aberto, concebidos pelos engenheiros do Uber. Isso inclui os componentes HDFS, Spark, Samza, Cassandra, MLLib, XGBoost e TensorFlow. Eles foram implantados sobre o data lake do Uber e a infraestrutura de TI.

Quando perguntados se a empresa estava considerando abrir o código-fonte da ferramenta de Michelangelo, um porta-voz disse ao Computerworld do Reino Unido: “Não estamos abrindo qualquer coisa relacionada a Michelangelo no momento”. “As plataformas de aprendizagem de máquina de código aberto são difíceis e não produzem o mesmo valor para outras organizações, uma vez que esses sistemas dependem de dados proprietários e sinais personalizados para operar”, justificou.

A plataforma Michelango está sendo utilizada pelo UberEats, serviço de delivery de alimentos da empresa. O serviço utiliza “vários modelos em execução na plataforma, abrangendo desde a previsão do tempo de entrega de refeições, rankings de pesquisa, pesquisa de satisfação até ranking de restaurantes”, explica o post no blog. “No Michelangelo, os cientistas de dados do Uber Eats usam o modelo de árvore de regressão com gradiente para prever o tempo de entrega de ponta a ponta”. O modelo consegue, com base na hora do dia, local de entrega, tempo médio de preparação da refeição durante os últimos sete dias, bem como nos dados de preparação das refeições, fazer uma previsão precisa.

Qual o próximo passo? A equipe de engenharia do Uber diz que está constantemente aperfeiçoando a Michelangelo e atualmente está trabalhando em um recurso chamado AutoML. “Será um sistema para buscar automaticamente e descobrir as configurações do modelo [algoritmo, conjuntos de recursos, valores de hiperparâmetros, etc.] que resultam em modelos de melhor desempenho para determinados problemas de modelagem”, explica o post no blog.

Segundo Hermann e Del Balso, o sistema permitirá que os cientistas de dados especifiquem um conjunto de rótulos e uma função objetiva e, em seguida, tornem o uso dos dados do Uber mais seguro para encontrar o melhor modelo para o problema. “O objetivo é aumentar a produtividade dos cientistas de dados com ferramentas inteligentes que facilitem seu trabalho”, dizem eles.

A equipe também está trabalhando em uma ferramenta de visualização para ajudar a depurar modelos de aprendizado profundo. Os engenheiros também querem construir um portal de aprendizagem online para machine learning, visando democratizar ainda mais o uso da tecnologia em toda a empresa.

Tags:

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.