Modelos e plataformas de IA
O Fiber da Uber é um novo framework de treinamento de modelo de IA distribuído
De acordo com o VentureBeat, pesquisadores de IA da Uber publicaram recentemente um artigo no Arxiv descrevendo uma nova plataforma destinada a ajudar na criação de modelos de IA distribuídos. A plataforma é chamada de Fiber e pode ser usada para impulsionar tanto tarefas de aprendizado por reforço quanto aprendizado baseado em população. O Fiber é projetado para tornar a computação paralela em larga escala mais acessível a não especialistas, permitindo que eles aproveitem o poder dos algoritmos e modelos de IA distribuídos.
O Fiber foi recentemente tornado open-source no GitHub e é compatível com Python 3.6 ou superior, com Kubernetes executando em um sistema Linux e executando em um ambiente de nuvem. De acordo com a equipe de pesquisadores, a plataforma é capaz de facilmente escalar para centenas ou milhares de máquinas individuais.
A equipe de pesquisadores da Uber explica que muitos dos avanços mais recentes e relevantes em inteligência artificial foram impulsionados por modelos maiores e mais algoritmos treinados usando técnicas de treinamento distribuído. No entanto, criar modelos baseados em população e modelos de reforço permanece uma tarefa difícil para esquemas de treinamento distribuído, pois frequentemente têm problemas de eficiência e flexibilidade. O Fiber torna o sistema distribuído mais confiável e flexível combinando software de gerenciamento de cluster com escalabilidade dinâmica e permitindo que os usuários movam seus trabalhos de uma máquina para um grande número de máquinas de forma transparente.
O Fiber é composto por três componentes diferentes: uma API, um backend e uma camada de cluster. A camada de API permite que os usuários criem coisas como filas, gerenciadores e processos. A camada de backend do Fiber permite que o usuário crie e termine trabalhos que são gerenciados por clusters diferentes, e a camada de cluster gerencia os clusters individuais e seus recursos, o que aumenta significativamente o número de itens que o Fiber precisa acompanhar.
O Fiber permite que os trabalhos sejam enfileirados e executados remotamente em uma máquina local ou em muitas máquinas diferentes, utilizando o conceito de processos com suporte a trabalhos. O Fiber também usa contêineres para garantir que coisas como dados de entrada e pacotes dependentes sejam autocontidos. O framework Fiber inclui até mesmo tratamento de erros integrado, para que se um trabalhador falhar, ele possa ser rapidamente revivido. O Fiber é capaz de fazer tudo isso enquanto interage com gerenciadores de cluster, permitindo que os aplicativos Fiber sejam executados como se fossem aplicativos normais executados em um cluster de computadores.
Os resultados experimentais mostraram que, em média, o tempo de resposta do Fiber foi de apenas alguns milissegundos e que ele também escalou melhor do que as técnicas de IA de linha de base quando construído com 2.048 núcleos de processador/trabalhadores. O tempo necessário para concluir os trabalhos diminuiu gradualmente à medida que o número de trabalhadores aumentou. O IPyParallel completou 50 iterações de treinamento em aproximadamente 1.400 segundos, enquanto o Fiber foi capaz de concluir as mesmas 50 iterações de treinamento em aproximadamente 50 segundos com 512 trabalhadores disponíveis.
Os coautores do artigo do Fiber explicam que o Fiber é capaz de alcançar vários objetivos, como escalonar algoritmos dinamicamente e usar grandes volumes de poder de computação:
“[Nosso trabalho mostra] que o Fiber alcança muitos objetivos, incluindo aproveitar eficientemente uma grande quantidade de hardware de computação heterogêneo, escalonar algoritmos dinamicamente para melhorar a eficiência do uso de recursos, reduzir a carga de engenharia necessária para fazer com que [aprendizado por reforço] e algoritmos baseados em população funcionem em clusters de computadores, e adaptar-se rapidamente a diferentes ambientes de computação para melhorar a eficiência da pesquisa. Esperamos que isso permita ainda mais progressos na resolução de problemas difíceis de [aprendizado por reforço] com algoritmos de [aprendizado por reforço] e métodos baseados em população, tornando mais fácil desenvolver esses métodos e treiná-los nas escalas necessárias para realmente vê-los brilhar”












