Depuração Automática em Modelos de Aprendizado de Máquina
Um novo sistema melhora o desempenho do AutoML ao corrigir automaticamente bugs de busca.
― 8 min ler
Índice
Modelos de Deep Learning agora são parte chave de muitos sistemas de software. Pra ajudar a desenhar esses modelos automaticamente, pesquisadores criaram sistemas de AutoML (Aprendizado de Máquina Automatizado). Esses sistemas encontram automaticamente a estrutura e configurações certas do modelo pra tarefas específicas. Mas, como todo software, sistemas de AutoML podem ter bugs. Dois problemas principais que encontramos no AutoML são:
- Bug de Performance: Às vezes, demora muito pro sistema de AutoML encontrar o modelo certo.
- Bug de Busca Ineficiente: O sistema pode não conseguir encontrar um modelo bom o suficiente.
Quando olhamos como os sistemas de AutoML funcionam, percebemos que eles costumam perder oportunidades importantes no processo de busca. Isso leva aos dois principais bugs que mencionamos. Baseado nas nossas descobertas, desenvolvemos um sistema que pode debugar e consertar esses problemas nos sistemas de AutoML automaticamente.
Nosso sistema monitora o processo de AutoML enquanto roda. Ele coleta informações detalhadas sobre a busca do modelo e conserta automaticamente qualquer bug alargando o espaço de busca e usando uma nova forma de encontrar o melhor modelo.
Introdução
No mundo de hoje do Software 2.0, técnicas de Aprendizado de Máquina (ML) têm um papel grande em deixar o software mais esperto. O crescimento do Deep Learning (DL) oferece novas chances pra inteligência de software. Como resultado, modelos de DL estão se tornando partes essenciais dos sistemas de software. O mercado de software de IA na borda deve aumentar significativamente nos próximos anos. A pandemia de COVID-19 também acelerou o uso de técnicas de DL em várias indústrias.
Apesar do crescimento dessas tecnologias, muita gente que trabalha em áreas especializadas não tem uma compreensão profunda de DL. Isso cria desafios pra comunidade de engenharia de software. Pra resolver isso, pesquisadores desenvolveram o AutoML, que visa criar modelos de ML sem precisar de um conhecimento extenso do usuário-só a tarefa em questão. Muitas organizações criaram e compartilharam sistemas de AutoML pra ajudar usuários com pouco ou nenhum conhecimento de DL a construir modelos eficazes.
O processo de AutoML inclui várias etapas:
- Preparação dos Dados: O motor de AutoML coleta e limpa os dados. Pode também melhorar os dados se necessário.
- Geração do Modelo: O sistema busca possíveis modelos e suas configurações com base na tarefa fornecida.
- Treinamento e Avaliação: Os modelos são treinados e avaliados. Se o modelo não atinge um nível de precisão definido, a busca continua pra encontrar um modelo melhor.
Essa abordagem mostrou bons resultados em muitas áreas. Por exemplo, um sistema de AutoML é usado na saúde pra ajudar a diagnosticar condições médicas mais rápido. Ele também melhorou como o conteúdo é classificado online.
No entanto, sistemas de AutoML não estão sem suas falhas. Os dois bugs que mencionamos antes-performance e buscas ineficazes-são problemas comuns que levam a tempo e recursos desperdiçados.
Pra entender melhor esses bugs, examinamos o AutoKeras, um motor de AutoML bem conhecido. Descobrimos que motores de AutoML existentes perdem várias oportunidades de otimização, levando aos dois principais bugs.
Bug de Performance
Primeiro, o espaço de busca em muitos sistemas de AutoML carece de algumas opções valiosas. Muitos parâmetros são fixos nesses motores, dificultando a busca pelos melhores modelos. Mudar alguns desses parâmetros pode melhorar muito a performance do sistema.
Bug de Busca Ineficiente
Segundo, as estratégias de busca existentes usadas pelos motores de AutoML costumam ignorar feedbacks importantes. Essas estratégias geralmente envolvem muito palpite aleatório, o que diminui as chances de encontrar um bom modelo. Elas dependem muito de treinar incontáveis modelos pra refinar seus palpites, o que nem sempre é prático. Como resultado, as chances de descobrir um modelo ótimo e suas configurações podem ser bem baixas.
Necessidade de Melhoria
O processo de AutoML precisa de centenas de tentativas mesmo com conjuntos de dados simples. Além disso, os modelos criados frequentemente têm um desempenho abaixo do esperado. Projetamos um sistema pra identificar e corrigir os Bugs de Performance e os problemas de busca ineficazes no AutoML.
Nosso sistema não só monitora os processos de treinamento e avaliação, mas também sugere melhorias quando encontra problemas. Algumas dessas melhorias incluem expandir o espaço de busca e empregar estratégias eficazes guiadas por feedback. Usamos pesquisas anteriores pra mostrar o impacto positivo dessas mudanças no desempenho do modelo.
Contexto sobre Aprendizado de Máquina Automatizado
Construir modelos de ML pode ser complexo e desafiador. Pra resolver isso, sistemas de AutoML automatizam a criação de modelos de DL pra conjuntos de dados dados, eliminando a necessidade de input humano. No AutoML, cada tentativa de criar um modelo é chamada de busca. Cada busca envolve:
- Preparar os dados e criar características.
- Gerar um modelo.
- Treinar e avaliar esse modelo.
Todo o processo é repetido até que um modelo satisfatório seja encontrado.
Motores de AutoML geralmente avaliam cada modelo treinado usando sua pontuação de precisão. Pra medir quão eficientes são as buscas, olhamos para as horas e dias de GPU necessários.
Etapas do Pipeline de AutoML
O pipeline de AutoML inclui várias etapas:
Preparação dos Dados
Essa etapa prepara os dados de treinamento e pode envolver limpeza, normalização ou melhoria.
Geração do Modelo
Essa parte envolve buscar pelos modelos e configurações certas. O espaço de busca define todas as estruturas de modelo e configurações potenciais. A estratégia de busca determina como o sistema explora esse espaço.
Treinamento e Avaliação
Uma vez que os modelos são gerados, eles são treinados. Após o treinamento, os modelos são avaliados pra determinar sua precisão. Se o modelo atender ao nível de desempenho requerido, a busca para. Se não, o sistema continua buscando por modelos melhores.
Depuração e Reparação de Modelos
Corrigir problemas em modelos é uma parte essencial da engenharia de software. Várias abordagens foram propostas pra debugar e corrigir problemas em modelos de ML. Essas incluem:
- Criar exemplos adversariais pra identificar fraquezas nos modelos.
- Limpar dados de treinamento rotulados incorretamente.
- Analisar dados de entrada pra corrigir problemas de overfitting e underfitting.
- Usar ferramentas específicas projetadas pra automatizar práticas de depuração.
Bugs de Performance em AutoML
Sistemas de AutoML também enfrentam bugs semelhantes a outros sistemas de software, incluindo bugs de performance e bugs de busca ineficazes. Esses bugs podem levar a problemas como tempos de processamento prolongados e baixa precisão.
Examinando o AutoKeras
Pra estudar esses bugs, olhamos de perto o AutoKeras. Definimos uma precisão alvo, e cada uma das três estratégias de busca falhou em atingir a meta em um tempo razoável. Por exemplo, a estratégia de busca bayesiana levou mais de 9 horas pra alcançar uma pontuação de precisão modesta, enquanto outras estratégias não conseguiram atingir a meta mesmo após longos períodos.
Nosso Sistema Proposto
Criamos um novo sistema que visa corrigir automaticamente bugs de performance e de busca ineficaz em pipelines de AutoML. Nosso sistema monitora as buscas por problemas potenciais e sugere alterações necessárias.
Monitoramento e Feedback
Nosso sistema coleta feedback detalhado sobre treinamento e avaliação pra ajudar a identificar bugs. Definimos sintomas específicos tanto para bugs de performance quanto para bugs de busca ineficazes, permitindo que o sistema os identifique rapidamente.
Quando o motor de AutoML demora muito pra atingir um objetivo definido, classificamos como um bug de performance. Se não houver melhoria na pontuação do modelo durante várias tentativas, é rotulado como um bug de busca ineficaz.
Busca Guiada por Feedback
O coração do nosso sistema proposto é a busca guiada por feedback, que usa os dados de feedback pra direcionar o processo de busca. Analisando os dados, podemos encontrar as melhores ações a serem tomadas.
Experimentação e Resultados
Realizamos experimentos usando conjuntos de dados populares pra testar a eficiência e eficácia do nosso sistema de depuração. Os resultados mostram que nosso sistema superou significativamente as estratégias existentes.
Melhoria de Performance
Nosso sistema alcançou melhores pontuações de precisão comparado aos métodos de base, indicando que ele pode corrigir efetivamente os problemas no pipeline de AutoML.
Eficiência do Sistema
O tempo levado pra alcançar pontuações alvo foi muito menor com nosso sistema em comparação com as estratégias tradicionais de AutoML.
Conclusão
Resumindo, nosso sistema automático de depuração e reparação para AutoML foca em corrigir bugs de performance e de busca ineficaz. Coletando feedback detalhado e monitorando os processos de treinamento, nosso sistema pode fazer alterações informadas pra melhorar a busca e o desempenho do modelo. Os resultados da nossa avaliação demonstram que nosso sistema é eficaz e pode melhorar significativamente o desempenho dos motores de AutoML em comparação com os métodos existentes.
Título: DREAM: Debugging and Repairing AutoML Pipelines
Resumo: Deep Learning models have become an integrated component of modern software systems. In response to the challenge of model design, researchers proposed Automated Machine Learning (AutoML) systems, which automatically search for model architecture and hyperparameters for a given task. Like other software systems, existing AutoML systems suffer from bugs. We identify two common and severe bugs in AutoML, performance bug (i.e., searching for the desired model takes an unreasonably long time) and ineffective search bug (i.e., AutoML systems are not able to find an accurate enough model). After analyzing the workflow of AutoML, we observe that existing AutoML systems overlook potential opportunities in search space, search method, and search feedback, which results in performance and ineffective search bugs. Based on our analysis, we design and implement DREAM, an automatic debugging and repairing system for AutoML systems. It monitors the process of AutoML to collect detailed feedback and automatically repairs bugs by expanding search space and leveraging a feedback-driven search strategy. Our evaluation results show that DREAM can effectively and efficiently repair AutoML bugs.
Autores: Xiaoyu Zhang, Juan Zhai, Shiqing Ma, Chao Shen
Última atualização: 2023-12-30 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2401.00379
Fonte PDF: https://arxiv.org/pdf/2401.00379
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.