Treinamento e otimização de aprendizado profundo em grande escala com Ray no Uber

Find AI Tools
No difficulty
No complicated process
Find ai tools

Treinamento e otimização de aprendizado profundo em grande escala com Ray no Uber

Tabela de Conteúdos

  1. Introdução
  2. A Evolução da Plataforma de Aprendizado de Máquina do Uber
    1. Primeira geração: Aplicação baseada em Spark
    2. Segunda geração: Integração com o Ray
    3. Terceira geração: Utilização do Ray para treinamento e ajuste de modelos de Aprendizado Profundo em grande escala
  3. Treinamento em Aprendizado Profundo em Grande Escala com o Ray
    1. Configuração do Cluster Ray
    2. Benefícios da Utilização de um Cluster Heterogêneo
  4. Otimização de Hiperparâmetros com o Retune
    1. Desafios na Otimização de Hiperparâmetros
    2. Evolução do Serviço de Otimização no Uber
    3. Incorporação do Retune e os Resultados Obtidos
  5. Considerações Finais
  6. Recursos Adicionais

Introdução

Bom dia a todos! Meu nome é Shuning e sou gerente de engenharia no Uber. Faço parte da equipe de plataforma de aprendizado de máquina do Uber, também conhecida como Michelangelo. Junto comigo estão os engenheiros Du e Michael da equipe de plataforma de aprendizado de máquina. Hoje gostaria de compartilhar com todos vocês nossa jornada na utilização do Ray e algumas das coisas interessantes que desenvolvemos. Nosso tóPico é o treinamento e ajuste de modelos de Aprendizado Profundo em grande escala com o Ray. Primeiro, darei uma breve apresentação sobre nossa jornada ao longo dos anos no desenvolvimento da plataforma de aprendizado de máquina no Uber, o Michelangelo.

A Evolução da Plataforma de Aprendizado de Máquina do Uber

Primeira geração: Aplicação baseada em Spark

No ano de 2016, lançamos nossa primeira geração da plataforma de aprendizado de máquina, baseada em uma aplicação puramente Spark. Nessa primeira geração, utilizamos apenas os algoritmos disponíveis no Spark MLlib.

Segunda geração: Integração com o Ray

A partir de 2018, com o aumento da demanda por Aprendizado Profundo, começamos a integrar as capacidades de Deep Learning no sistema Spark. No entanto, logo percebemos algumas limitações desse sistema, como a necessidade de executar trabalho em CPU e GPU simultaneamente e a dificuldade em lidar com o modelo de mini-batch em Deep Learning. Foi nesse momento que nos voltamos para o Ray, uma estrutura de computação distribuída que nos oferecia poderosas primitivas para computação distribuída, como tarefas remotas e agendamento de tarefas sensível à GPU.

Terceira geração: Utilização do Ray para treinamento e ajuste de modelos de Aprendizado Profundo em grande escala

Chegamos então à nossa terceira geração da plataforma de aprendizado de máquina, em que migramos totalmente para o Ray. Agora, somos capazes de alimentar tanto modelos de Machine Learning quanto de Deep Learning com o Ray. Isso nos permitiu treinar e ajustar modelos de Aprendizado Profundo em grande escala, atendendo às demandas cada vez maiores do Uber.

Treinamento em Aprendizado Profundo em Grande Escala com o Ray

Para executar o treinamento em Aprendizado Profundo em grande escala, utilizamos a tecnologia do Ray para criar um cluster distribuído. Esse cluster é composto por nós de cabeçalho, que gerenciam o cluster, e nós de trabalho, que executam as tarefas de treinamento e ajuste dos modelos. A utilização de um cluster heterogêneo traz diversas vantagens para o nosso processo de treinamento.

Configuração do Cluster Ray

No início, utilizamos uma configuração estática para o provisionamento do cluster Ray. Isso significava que o tamanho do cluster era fixo e a relação entre a carga de trabalho de entrada/saída (I/O) e computacional também era fixa. No entanto, logo percebemos que essa abordagem não era suficientemente flexível para lidar com as demandas variáveis de diferentes modelos. Por isso, evoluímos para um cluster heterogêneo.

Benefícios da Utilização de um Cluster Heterogêneo

Com o cluster heterogêneo, conseguimos isolar as tarefas de I/O das tarefas computacionais, permitindo uma configuração flexível da relação entre elas. Isso nos permite ajustar o cluster para atender às características específicas de cada modelo, equilibrando a necessidade de mais poder computacional ou mais I/O conforme necessário. Além disso, a utilização do armazenamento de objetos do Ray nos possibilita realizar um "shuffle" de dados em escala global de forma bastante eficiente.

Otimização de Hiperparâmetros com o Retune

A otimização de hiperparâmetros é uma parte essencial do nosso processo de treinamento e ajuste de modelos. Para isso, utilizamos o Retune, uma biblioteca open source para otimização de hiperparâmetros.

Desafios na Otimização de Hiperparâmetros

Encontrar os melhores valores para os hiperparâmetros do modelo é uma tarefa complexa e computacionalmente custosa. Por isso, buscamos constantemente melhorias nesse processo, como a implementação de estratégias de parada antecipada mais agressivas e desenvolvimento de métodos de otimização baseados em aprendizado de máquina. No entanto, à medida que os modelos se tornam maiores e mais complexos, surgem novos desafios, como a necessidade de alterar os valores dos hiperparâmetros ao longo do processo de treinamento.

Evolução do Serviço de Otimização no Uber

Para enfrentar esses desafios, evoluímos nosso serviço de otimização de hiperparâmetros, o Autotune. Através da incorporação do Retune e da utilização do Ray como camada de computação, conseguimos aprimorar significativamente o desempenho e a eficiência do processo de otimização.

Incorporação do Retune e os Resultados Obtidos

Com a adoção do Retune, conseguimos melhorar a eficiência do nosso serviço de otimização em 50%, graças às estratégias de parada antecipada mais agressivas e ao uso do Ray como camada de computação. Além disso, a utilização do Ray nos permitiu explorar novas estratégias de otimização, incluindo a otimização de arquiteturas de modelos e transformações de recursos. Os resultados obtidos foram ainda mais promissores do que antes.

Considerações Finais

Ao longo dos anos, a plataforma de aprendizado de máquina do Uber evoluiu para atender às crescentes demandas da empresa. A utilização do Ray como camada de computação e do Retune para otimização de hiperparâmetros nos trouxe excelentes resultados. Estamos animados com o futuro da plataforma e continuaremos a explorar novas maneiras de impulsionar ainda mais o desempenho dos nossos modelos de Aprendizado Profundo.

Recursos Adicionais

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.