Perguntas frequentes sobre previsão no AutoML
APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)
Este artigo responde perguntas comuns sobre previsão no AutoML (machine learning automatizado). Para obter informações gerais sobre a metodologia de previsão no AutoML, confira o artigo Visão geral dos métodos de previsão no AutoML.
Como começar a criar modelos de previsão no AutoML?
Você pode começar lendo o artigo Configurar o AutoML para treinar um modelo de previsão de série temporal. Você também pode encontrar exemplos práticos em vários notebooks Jupyter:
- Exemplo de compartilhamento de bicicleta
- Previsão usando aprendizado profundo
- Solução Many Models
- Receitas de previsão
- Cenários avançados de previsão
Por que o AutoML está lento nos meus dados?
Estamos sempre trabalhando para tornar o AutoML mais rápido e escalonável. Para funcionar como uma plataforma de previsão geral, o AutoML faz amplas validações de dados, engenharia de recursos complexos e pesquisas em um grande espaço de modelo. Essa complexidade pode exigir muito tempo, dependendo dos dados e da configuração.
Uma fonte comum de runtime lento é treinar o AutoML com configurações padrão em dados que contêm várias séries temporais. O custo de muitos métodos de previsão é dimensionado com o número de séries. Por exemplo, métodos como Suavização Exponencial e Prophet treinam um modelo para cada série temporal nos dados de treinamento.
O recurso Many Models do AutoML é dimensionado para esses cenários distribuindo trabalhos de treinamento em um cluster de cálculo. Ele foi aplicado com êxito a dados com milhões de séries temporais. Para obter mais informações, veja a seção de artigos muitos modelos. Você também pode ler sobre o sucesso de Many Models em um conjunto de dados de concorrência de alto perfil.
Como posso tornar o AutoML mais rápido?
Confira a resposta para Por que o AutoML está lento em meus dados? para entender por que ele pode estar lento no seu caso.
Considere as seguintes alterações de configuração que podem acelerar seu trabalho:
- Bloquear modelos de série temporal como ARIMA e Prophet.
- Desativar recursos de retrospectiva, como atrasos e janelas sem interrupção.
- Reduzir:
- O número de avaliações/iterações.
- O tempo limite de avaliação/iteração.
- O tempo limite do experimento.
- O número de dobras de validação cruzada.
- Verifique se a terminação antecipada está habilitada.
Qual configuração de modelagem devo usar?
A previsão do AutoML dá suporte a quatro configurações básicas:
Configuração | Cenário | Vantagens | Desvantagens |
---|---|---|---|
AutoML padrão | Recomendado se o conjunto de dados tiver um pequeno número de séries temporais com comportamento histórico aproximadamente semelhante. | - Fácil de configurar a partir do código/SDK ou do estúdio do Azure Machine Learning. - O AutoML pode aprender em diferentes séries temporais, pois os modelos de regressão agrupam todas as séries durante o treinamento. Para obter mais informações, confira Agrupamento do modelo. |
- Os modelos de regressão podem ser menos precisos se a série temporal nos dados de treinamento tiver um comportamento divergente. - Os modelos de série temporal podem levar muito tempo para serem treinados se os dados de treinamento tiverem um grande número de séries. Para obter mais informações, confira a resposta Por que o AutoML está lento em meus dados?. |
AutoML com aprendizado profundo | Recomendado para conjuntos de dados com mais de 1.000 observações e, potencialmente, inúmeras séries temporais que exibem padrões complexos. Quando habilitado, o AutoML varrerá os modelos de TCN (rede neural convolucional temporal) durante o treinamento. Para obter mais informações, confira Habilitar o aprendizado profundo. | - Fácil de configurar a partir do código/SDK ou do estúdio do Azure Machine Learning. - Oportunidades de aprendizado cruzado, já que o TCN agrupa dados em todas as séries. - Precisão potencialmente maior devido à grande capacidade dos modelos DNN (rede neural profunda). Para obter mais informações, confira Modelos de previsão no AutoML. |
- O treinamento pode levar muito mais tempo devido à complexidade dos modelos DNN. – É improvável que séries com pequenas quantidades de histórico se beneficiem desses modelos. |
Muitos modelos | Recomendado se você precisar treinar e gerenciar um grande número de modelos de previsão de maneira escalonável. Para obter mais informações, veja a seção de artigos muitos modelos. | - Escalonável. – Precisão potencialmente maior quando as séries temporais têm um comportamento divergente um do outro. |
- Sem aprendizado entre séries temporais. Você não pode configurar ou executar trabalhos de Many Models do estúdio do Azure Machine Learning. Somente a experiência de código/SDK está disponível no momento. |
HTS (série temporal hierárquica) | Recomendada se a série em seus dados tiver uma estrutura aninhada e hierárquica e você precisar treinar ou fazer previsões em níveis agregados da hierarquia. Para obter mais informações, veja a seção do artigo previsão de séries temporais hierárquicas. | - O treinamento em níveis agregados pode reduzir o ruído na série temporal do nó folha e levar a modelos de maior precisão. - É possível recuperar previsões para qualquer nível da hierarquia agregando ou desagregando previsões do nível de treinamento. |
– Você precisa fornecer o nível de agregação para treinamento. No momento, o AutoML não tem um algoritmo para encontrar um nível ideal. |
Observação
É recomendável usar nós de computação com GPUs quando o aprendizado profundo estiver habilitado para aproveitar melhor a alta capacidade de DNN. O tempo de treinamento pode ser muito mais rápido em comparação com nós com apenas CPUs. Para obter mais informações, confira o artigo Tamanhos de máquinas virtuais otimizados para GPU.
Observação
O HTS foi projetado para tarefas em que o treinamento ou a previsão são necessários em níveis agregados na hierarquia. Para dados hierárquicos que requerem apenas treinamento e previsão de nó folha, use muitos modelos em vez disso.
Como posso evitar o sobreajuste e o vazamento de dados?
O AutoML usa melhores práticas de aprendizado de máquina, como seleção de modelo com validação cruzada, que atenuam vários problemas de sobreajuste. No entanto, há outras fontes potenciais de sobreajuste:
Os dados de entrada contêm colunas de recurso derivadas do destino com uma fórmula simples. Por exemplo, um recurso que é um múltiplo exato do destino pode resultar em uma pontuação de treinamento quase perfeita. No entanto, o modelo provavelmente não será generalizado para dados fora do exemplo. Recomendamos que você explore os dados antes do treinamento do modelo e remova as colunas que "vazam" as informações de destino.
Os dados de treinamento usam recursos que não são conhecidos no futuro, até o horizonte de previsão. Atualmente, os modelos de regressão do AutoML pressupõem que todos os recursos são conhecidos pelo horizonte de previsão. Recomendamos que você explore seus dados antes do treinamento e remova todas as colunas de recursos que sejam conhecidas apenas historicamente.
Há diferenças estruturais significativas (alterações de regime) entre as partes de treinamento, validação ou teste dos dados. Por exemplo, considere o efeito da pandemia de COVID-19 na demanda de quase todos os bens durante 2020 e 2021. Esse é um exemplo clássico de uma alteração de regime. O sobreajuste devido a alterações de regime é o problema mais desafiador a ser resolvido, pois ele é altamente dependente do cenário e pode exigir um conhecimento profundo para ser identificado.
Como primeira linha de defesa, tente reservar de 10 a 20 por cento do histórico total para validação ou validação cruzada de dados. Nem sempre é possível reservar essa quantidade de dados de validação se o histórico de treinamento for curto, mas essa é uma prática recomendada. Para obter mais informações, confira Dados de treinamento e validação.
O que significa se o meu trabalho de treinamento obtiver pontuações de validação perfeitas?
É possível ver pontuações perfeitas ao exibir as métricas de validação de um trabalho de treinamento. Uma pontuação perfeita significa que a previsão e os valores reais no conjunto de validação são iguais ou quase o mesmo. Por exemplo, você tem uma raiz do erro quadrático médio igual a 0,0 ou uma pontuação R2 de 1,0.
Uma pontuação de validação perfeita geralmente indica que o modelo foi profundamente super adaptado, provavelmente devido a um vazamento de dados. O melhor curso de ação é inspecionar os dados em busca de vazamentos e remover as colunas que estão causando o vazamento.
E se meus dados de série temporal não tiverem observações espaçadas regularmente?
Todos os modelos de previsão do AutoML exigem que os dados de treinamento tenham observações espaçadas regularmente em relação ao calendário. Esse requisito inclui casos como observações mensais ou anuais em que o número de dias entre observações pode variar. Os dados dependentes de tempo podem não atender a esse requisito em dois casos:
Os dados têm uma frequência bem definida, mas há observações ausentes que criam lacunas na série. Nesse caso, o AutoML tentará detectar a frequência, preencher novas observações para as lacunas e imputar valores de destino e recurso ausentes. Opcionalmente, o usuário pode configurar os métodos de imputação por meio das configurações do SDK ou por meio da interface do usuário da Web. Para obter mais informações, confira Definição de recursos personalizada.
Os dados não têm uma frequência bem definida. Ou seja, a duração entre as observações não tem um padrão perceptível. Dados transacionais, como de um sistema de ponto de vendas, são um exemplo. Nesse caso, você pode definir o AutoML para agregar seus dados a uma frequência escolhida. Escolha uma frequência regular que melhor inclua os dados e os objetivos de modelagem. Para obter mais informações, confira Agregação de dados.
Como escolher a métrica primária?
A métrica primária é importante, pois seu valor nos dados de validação determina o melhor modelo durante a varredura e seleção. O NRMSE (raiz do erro quadrático médio normalizado) ou o NMAE (erro médio absoluto normalizado) geralmente são as melhores opções para a métrica primária em tarefas de previsão.
Para escolher entre eles, observe que o NRMSE penaliza as exceções nos dados de treinamento mais do que o NMAE, pois ele usa o quadrado do erro. O NMAE pode ser uma opção melhor se você quiser que o modelo seja menos sensível a exceções. Para obter mais informações, confira Métricas de regressão e previsão.
Observação
Não recomendamos o uso da pontuação R2, ou R2, como uma métrica primária para previsão.
Observação
O AutoML não dá suporte a funções personalizadas ou fornecidas pelo usuário para a métrica primária. É necessário escolher uma das métricas primárias predefinidas compatíveis com o AutoML.
Como posso melhorar a precisão do meu modelo?
- Verifique se você está configurando o AutoML da melhor maneira para seus dados. Para obter mais informações, confira a resposta Qual configuração de modelagem devo usar?.
- Confira o Notebook de receitas de previsão para obter guias passo a passo sobre como criar e melhorar modelos de previsão.
- Avalie o modelo usando back-tests em vários ciclos de previsão. Este procedimento fornece uma estimativa mais robusta do erro de previsão e fornece uma linha de base para medir melhorias. Para obter um exemplo, confira o notebook de back-testing.
- Se os dados forem ruidosos, considere agregá-los a uma frequência mais grosseira para aumentar a taxa de sinal para ruído. Para obter mais informações, confira Agregação de dados de frequência e de destino.
- Adicione novos recursos que possam ajudar a prever o destino. A experiência no assunto pode ajudar muito ao selecionar dados de treinamento.
- Compare os valores de validação e métrica do teste e determine se o modelo selecionado está sofrendo de subajuste ou sobreajuste aos dados. Esse conhecimento pode guiá-lo para uma melhor configuração de treinamento. Por exemplo, você pode determinar que precisa usar mais dobras de validação cruzada em resposta ao sobreajuste.
O AutoML sempre selecionará o mesmo melhor modelo a partir dos mesmos dados de treinamento e configuração?
O processo de pesquisa de modelo do AutoML não é determinístico, então nem sempre seleciona o mesmo modelo a partir dos mesmos dados e configuração.
Como corrigir um erro de memória insuficiente?
Há dois tipos de erros de memória:
- Memória insuficiente de RAM
- Memória insuficiente de disco
Primeiro, verifique se você está configurando o AutoML da melhor maneira para seus dados. Para obter mais informações, confira a resposta Qual configuração de modelagem devo usar?.
Para as configurações padrão do AutoML, você pode corrigir erros de memória insuficiente de RAM utilizando nós de computação com mais RAM. Uma regra geral é que a quantidade de RAM livre deve ser pelo menos 10 vezes maior que o tamanho dos dados brutos para executar o AutoML com as configurações padrão.
Você pode resolver erros de falta de memória em disco excluindo o cluster de cálculo e criando um novo.
Quais cenários avançados de previsão o AutoML dá suporte?
O AutoML oferece suporte aos cenários avançados de previsão a seguir:
- Previsões do Quantile
- Avaliação robusta de modelo por meio de previsões sem interrupção
- Previsão além do horizonte de previsão
- Previsão quando há uma lacuna de tempo entre os períodos de treinamento e previsão
Para obter exemplos e detalhes, confira o notebook para cenários de previsão avançados.
Como exibir métricas dos trabalhos de treinamento de previsão?
Para localizar valores de métrica de treinamento e validação, consulte Exibir informações sobre trabalhos ou execuções no estúdio. Você pode exibir métricas para qualquer modelo de previsão treinado no AutoML acessando um modelo da interface do usuário do trabalho do AutoML no estúdio e selecionando a guia Métricas.
Como depurar falhas com trabalhos de treinamento de previsão?
Se sua tarefa de previsão do AutoML falhar, uma mensagem de erro na interface do usuário do estúdio pode ajudar a diagnosticar e corrigir o problema. A melhor fonte de informações sobre a falha além da mensagem de erro é o log de driver do trabalho. Para obter instruções sobre como localizar logs de driver, confira Exibir informações de trabalhos/execuções com o MLflow.
Observação
Para um trabalho de Many Models ou de HTS, o treinamento geralmente é feito em clusters de cálculo de vários nós. Os logs desses trabalhos estão presentes para cada endereço IP do nó. Nesse caso, você precisa pesquisar logs de erro em cada nó. Os logs de erro, junto com os logs de driver, estão na pasta user_logs para cada IP de nó.
Como fazer para implantar um modelo dos trabalhos de treinamento de previsão?
Você pode implantar um modelo a partir dos trabalhos de treinamento de previsão de duas maneiras:
- Ponto de extremidade online: verifique o arquivo de pontuação usado na implantação ou selecione a guia Testar na página do ponto de extremidade no estúdio para entender a estrutura da entrada esperada pela implantação. Confira este notebook para obter um exemplo. Para obter mais informações sobre a implantação online, confira Implantar um modelo de AutoML em um ponto de extremidade online.
- Ponto de extremidade em lote: esse método de implantação exige que você desenvolva um script de pontuação personalizado. Consulte este notebook para obter um exemplo. Para obter mais informações sobre a implantação em lote, confira Usar pontos de extremidade em lote para pontuação em lote.
Para implantações na interface do usuário, recomendamos o uso de uma destas opções:
- Ponto de extremidade em tempo real
- Ponto de extremidade do lote
Não use a primeira opção, Ponto de extremidade em tempo real (rápido).
Observação
Atualmente, não há suporte à implantação do modelo MLflow de trabalhos de treinamento de previsão por meio do SDK, CLI ou UI. Você receberá erros se tentar.
O que é um espaço de trabalho, ambiente, experimento, instância de computação ou destino de computação?
Se você não estiver familiarizado com os conceitos do Azure Machine Learning, comece com os artigos O que é o Azure Machine Learning e O que é um workspace do Azure Machine Learning.
Próximas etapas
- Saiba mais sobre como configurar o AutoML para treinar um modelo de previsão de série temporal.
- Saiba sobre os recursos de calendário para previsão de série temporal no AutoML.
- Saiba mais sobre como o AutoML usa o aprendizado de máquina para compilar modelos de previsão.
- Saiba sobre previsão do AutoML para recursos atrasados.