Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Retreinar redes neurais automaticamente com Renate

Hoje anunciamos a disponibilidade geral de Renate, uma biblioteca Python de software livre para retreinamento automático de modelos. A biblioteca fornece algoritmos de aprendizado contínuo capazes de treinar uma rede neural de forma incremental à medida que mais dados se tornam disponíveis.

Ao abrir o Renate, gostaríamos de criar um local onde profissionais que trabalham em sistemas de aprendizado de máquina do mundo real e pesquisadores interessados ​​em avançar o estado da arte em aprendizado de máquina automático, aprendizado contínuo e aprendizado ao longo da vida se reúnam. Acreditamos que as sinergias entre essas duas comunidades gerarão novas ideias na comunidade de pesquisa de aprendizado de máquina e fornecerão um impacto positivo tangível em aplicativos do mundo real.

Retreinamento de modelo e esquecimento catastrófico

Treinar redes neurais de forma incremental não é uma tarefa simples. Na prática, os dados fornecidos em diferentes pontos no tempo são frequentemente amostrados de diferentes distribuições. Por exemplo, em sistemas de perguntas e respostas, a distribuição dos tópicos nas perguntas pode variar significativamente ao longo do tempo. Em sistemas de classificação, a adição de novas categorias pode ser necessária quando os dados são coletados em diferentes partes do mundo. O ajuste fino dos modelos previamente treinados com novos dados nesses casos levará a um fenômeno chamado “esquecimento catastrófico”. Haverá um bom desempenho nos exemplos mais recentes, mas a qualidade das previsões feitas para os dados coletados no passado será significativamente prejudicada. Além disso, a degradação do desempenho será ainda mais severa quando a operação de retreinamento ocorrer regularmente (por exemplo, diariamente ou semanalmente).

Quando é possível armazenar um pequeno bloco de dados, métodos baseados na reutilização de dados antigos durante o retreinamento podem aliviar parcialmente o problema de esquecimento catastrófico. Vários métodos foram desenvolvidos seguindo essa ideia. Alguns deles armazenam apenas os dados brutos, enquanto os mais avançados também salvam metadados adicionais (por exemplo, a representação intermediária dos pontos de dados na memória). Armazenar uma pequena quantidade de dados (por exemplo, milhares de pontos de dados) e usá-los cuidadosamente levou ao desempenho superior exibido na figura abaixo.

Traga seu próprio modelo e conjunto de dados

Ao treinar modelos de redes neurais, pode ser necessário alterar a estrutura da rede, a transformação de dados e outros detalhes importantes. Embora as alterações de código sejam limitadas, pode se tornar uma tarefa complexa quando esses modelos fazem parte de uma grande biblioteca de software. Para evitar esses inconvenientes, Renate oferece aos clientes a capacidade de definir seus modelos e conjuntos de dados em funções Python predefinidas como parte de um arquivo de configuração. Isso tem a vantagem de manter o código dos clientes claramente separado do resto da biblioteca e permitir que os clientes sem qualquer conhecimento da estrutura interna do Renate usem a biblioteca de forma eficaz.

Além disso, todas as funções, incluindo a definição do modelo, são muito flexíveis. De fato, a função de definição de modelo permite que os usuários criem redes neurais do zero seguindo suas próprias necessidades ou instanciam modelos conhecidos de bibliotecas de código aberto como transformadores or visão da tocha. Requer apenas adicionar as dependências necessárias ao arquivo de requisitos.

Um tutorial sobre como escrever o arquivo de configuração está disponível em Como escrever um arquivo de configuração.

O benefício da otimização de hiperparâmetros

Como costuma acontecer no aprendizado de máquina, os algoritmos de aprendizado contínuo vêm com vários hiperparâmetros. Suas configurações podem fazer uma diferença importante no desempenho geral, e um ajuste cuidadoso pode impactar positivamente o desempenho preditivo. Ao treinar um novo modelo, Renate pode ativar a otimização de hiperparâmetros (HPO) usando algoritmos de última geração, como ASHA, para explorar a capacidade de executar vários trabalhos paralelos no Amazon SageMaker. Um exemplo dos resultados é exibido na figura abaixo.

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Para ativar o HPO, o usuário precisará definir o espaço de pesquisa ou usar um dos espaços de pesquisa padrão fornecidos com a biblioteca. Consulte o exemplo em Executar um trabalho de treinamento com HPO. Os clientes que procuram um reajuste mais rápido também podem aproveitar os resultados de seus trabalhos de ajuste anteriores selecionando algoritmos com funcionalidades de aprendizado de transferência. Dessa forma, os otimizadores serão informados sobre quais hiperparâmetros estão tendo um bom desempenho em diferentes tarefas de ajuste e poderão se concentrar neles, reduzindo o tempo de ajuste.

Execute-o na nuvem

O Renate permite que os usuários façam a transição rápida de modelos de treinamento em uma máquina local para experimentação para treinar redes neurais em larga escala usando o SageMaker. Na verdade, executar trabalhos de treinamento em uma máquina local é bastante incomum, especialmente ao treinar modelos de grande escala. Ao mesmo tempo, poder verificar detalhes e testar o código localmente pode ser extremamente útil. Para atender a essa necessidade, o Renate permite uma troca rápida entre a máquina local e o serviço SageMaker apenas alterando um simples sinalizador no arquivo de configuração.

Por exemplo, ao iniciar um trabalho de ajuste, é possível executar localmente execute_tuning_job(..., backend='local') e mude rapidamente para o SageMaker, alterando o código da seguinte forma:

execute_tuning_job(
...,
backend="sagemaker",
role=get_execution_role(),      # requires importing the function from Syne Tune
instance_type="ml.g4dn.2xlarge" # the desired instance type
job_name="name_prefix_",             # a prefix to be used to identify the job
...
)

Depois de executar o script, será possível ver o trabalho em execução na interface da Web do SageMaker:

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Também será possível monitorar o trabalho de treinamento e ler os logs no CloudWatch:

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Tudo isso sem nenhum código ou esforço adicional.

Um exemplo completo de execução de trabalhos de treinamento na nuvem está disponível em Como executar um trabalho de treinamento.

Conclusão

Neste post, descrevemos os problemas associados ao retreinamento de redes neurais e os principais benefícios da biblioteca Renate no processo. Para saber mais sobre a biblioteca, confira o Repositório GitHub, onde você encontrará uma visão geral de alto nível do biblioteca ea sua algoritmos, instruções para instalação e exemplos que podem ajudá-lo a começar.

Estamos ansiosos para o seu contribuições, feedback e discussão mais aprofundada com todos os interessados, e ver a biblioteca integrada em pipelines de retreinamento do mundo real.


Sobre os autores

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Giovanni Zappella é um cientista aplicado sênior que trabalha em ciência de longo prazo na AWS Sagemaker. Atualmente, ele trabalha com aprendizado contínuo, monitoramento de modelo e AutoML. Antes disso, ele trabalhou em aplicativos de bandidos multi-armados para sistemas de recomendações de grande escala na Amazon Music.

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Martin Wistuba é um cientista aplicado na equipe de ciência de longo prazo da AWS Sagemaker. Sua pesquisa se concentra em aprendizado de máquina automático.

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.  Lucas Balles é cientista aplicado na AWS. Ele trabalha em aprendizado contínuo e tópicos relacionados ao monitoramento de modelos.

Retreine automaticamente redes neurais com Renate PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Cédrico Archambeau é Cientista Aplicado Principal da AWS e Fellow do European Lab for Learning and Intelligent Systems.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS