Em 9 de julho, nossa equipe apresentou um webinar ao vivo —aprendizagem profunda escalável de ponta a ponta usando TensorFlow™ e Databricks— com Brooke Wenig, consultora de soluções de ciência de dados na Databricks, e Sid Murching, engenheiro de software na Databricks.
Neste webinar, apresentamos como usar o TensorFlow™ e o Horovod (uma biblioteca de código aberto da Uber para simplificar o treinamento de modelos distribuídos) na Plataforma de Análise Unificada da Databricks para criar um sistema de recomendação mais eficaz em grande escala.
Em particular, abordamos alguns dos recursos recém-lançados para simplificar a aprendizagem profunda distribuída:
Se você perdeu o webinar, pode view agora. Além disso, demonstramos o seguinte notebook:
Se você quiser acesso gratuito à Databricks plataforma de análise unificada e experimentar nossos Notebooks nela, pode acessar um trial grátis aqui.
No final, realizamos uma sessão de perguntas e respostas (Q&A), e abaixo estão todas as perguntas e suas respostas. Você também pode nos dar seu feedback sobre este webinar preenchendo esta pesquisa curta, para que possamos continuar a melhorar sua experiência!
P: É possível realizar o ajuste de hiperparâmetros do modelo no TensorFlow de maneira distribuída?
Há várias maneiras de fazer isso, incluindo, mas não se limitando a:
Em relação ao que o HorovodEstimator suporta, estamos explorando adicionar funcionalidades para que ele funcione com as APIs de ajuste nativas do MLlib, para que você possa iniciar o ajuste de hiperparâmetros por meio de vários Jobs de treinamento distribuído.
Como alternativa, o pipeline de aprendizagem profunda (uma biblioteca OSS da Databricks) permite o ajuste de hiperparâmetros paralelizado de modelos Keras de nó único em dados de imagem.
P: O que significa ALS?
ALS significa Mínimos Quadrados Alternados. É uma técnica usada para Filtragem Colaborativa. Você pode saber mais sobre a implementação no Apache Spark aqui.
P: Na sua demonstração, quantos servidores você usou? Quantos núcleos?
Aqui está nossa configuração para esta demonstração:
P: Os dados foram replicados em cada máquina local? Cada nó worker usa todos os dados durante o treinamento?
Um subconjunto exclusivo dos dados de treinamento é copiado para o disco local de cada máquina, de modo que cada nó worker treine em um subconjunto exclusivo dos dados. Durante um único passo de treinamento, cada worker processa um lote de dados de treinamento, computando gradientes que depois têm sua média calculada usando a funcionalidade ring-allreduce do Horovod e são aplicados ao modelo.
P: Como você compara o dist-keras e o Horovod?
O Dist-keras é outro framework de código aberto para treinar um modelo Keras de forma distribuída em um Spark Dataframe, e é outra ótima solução para treinar modelos Keras. Nós trabalhamos com ambos. Uma das coisas que gostamos no Horovod é que ele vem com benchmarks do Uber e é usado em produção pelo Uber. Por esse motivo, decidimos criar o HorovodEstimator com base no Horovod, pois ele é usado por uma grande empresa do setor e terá um bom suporte no futuro.
P: Quanto tempo leva o treinamento em uma única máquina em comparação com o treinamento distribuído?
Esta é uma boa pergunta. Em geral, há muitos fatores que influenciam o desempenho ao comparar o treinamento em uma única máquina e o treinamento distribuído. O treinamento distribuído gera sobrecarga de comunicação ao comunicar atualizações de gradiente, mas também permite acelerações ao processar lotes de dados de treinamento em paralelo entre as máquinas. Com o HorovodEstimator, também há um custo fixo de startup para gravar o DataFrame de entrada do Spark no formato TFRecord nos discos locais dos nós do nosso cluster. Nossa recomendação é experimentar primeiro o treinamento em máquina única e explorar o treinamento distribuído apenas se o treinamento em máquina única não escalar o suficiente.
P: Ei, obrigado pela palestra. Esse foi um ótimo cenário de notebook, mas em uma equipe com vários cientistas de dados trabalhando em diferentes experimentos em datasets um pouco diferentes, vocês têm alguma funcionalidade para rastrear isso? Quais outros recursos colaborativos vocês oferecem?
Esta é uma ótima pergunta! Recentemente, anunciamos um novo projeto de código aberto chamado MLflow exatamente para isso. Com o MLflow, os praticantes podem empacotar e reutilizar modelos entre frameworks, acompanhar e compartilhar experimentos localmente ou na cloud e implantar modelos em praticamente qualquer lugar. Além disso, o Databricks oferece Notebooks compartilhados para desenvolvimento em Python ou R que também oferecem suporte a controle de alterações e história de versões com o GitHub.
Leia a postagem no blog de Matei Zaharia sobre o lançamento do MLflow 0.2 para obter a atualização mais recente sobre esta iniciativa e participe do nosso próximo webinar em 30 de agosto com Matei Zaharia para saber mais.
P: Não tenho muitos dados e estou usando um modelo LSTM e o TensorFlow. Você ainda me recomendaria o Databricks e o Apache Spark?
O Apache Spark é ótimo para qualquer tipo de treinamento distribuído ou ETL, ele unifica o processamento de dados com o machine learning, mas ainda exige esforço para ser instalado, configurado e mantido. O Databricks oferece uma maneira flexível de executar jobs, desde casos de uso de nó único até vários nós, no Apache Spark. Você pode adicionar mais nós facilmente aos seus clusters com o clique de um botão. A Databricks unifica toda a analítica em um só lugar para que você também possa preparar conjuntos de dados limpos para o treinamento de seus modelos. O Databricks Runtime vem com o TensorFlow pré-instalado e configurado, juntamente com Keras, Horovod, e também XGBoost, scikit-learn etc., oferecendo a você o máximo de escolha e flexibilidade para criar e ensinar modelos de ML. Por último, mas não menos importante, os notebooks da Databricks fornecem um ambiente colaborativo para gerenciar todo o ciclo de vida em um só lugar, desde a preparação de dados até o treinamento e o serviço do modelo.
P: É possível ensinar um modelo binário com o HorovodEstimator?
Sim. A API HorovodEstimator simplesmente fornece uma maneira de executar qualquer código do TensorFlow em um ambiente distribuído com dados em grande escala, incluindo classificação binária, por exemplo.
P: O cluster oferece suporte à multilocação?
Sim, você pode ter vários notebooks anexados ao seu cluster ou vários usuários em seu cluster. Você também pode gerenciar permissões de cluster em vários níveis no Databricks para máxima flexibilidade e segurança.
P: Poderíamos compartilhar os scripts e os slides dos apresentadores após o webinar?
Sim, agora você pode acessar o notebook. Basta adicionar o conjunto de treinamento ao seu Workspace do Databricks para executar este notebook. Inscreva-se para uma avaliação gratuita de 14 dias para começar!
P: Qual é a diferença entre o Apache Spark e o Databricks?
A Plataforma de Análise Unificada da Databricks fornece uma versão hospedada do Apache Spark tanto na AWS quanto no Azure, e muito mais. Fornecemos notebooks e APIs integrados para gerenciar e automatizar a analítica em um só lugar, bem como otimizações adicionais para o Apache Spark, incluindo o Databricks Delta Lake, que é até 100x mais rápido que o Apache Spark em Parquet, o Databricks Runtime for ML e o HorovodEstimator. Também simplificamos significativamente o DevOps com configuração e escalonamento automáticos de clusters e fornecemos recursos de segurança de nível empresarial e conformidade com uma plataforma certificada HIPAA e SOC 2 tipo 2.
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Data Science e ML
October 31, 2023/9 min de leitura

