Previsão em escala: muitos modelos e treinamento distribuído

Este artigo trata do treinamento de modelos de previsão sobre grandes quantidades de dados históricos. Instruções e exemplos de modelos de previsão de treinamento em AutoML podem ser encontrados em nosso artigo configurar o AutoML para previsão de série temporal.

Os dados de série temporal podem ser grandes devido ao número de séries nos dados, ao número de observações históricas ou a ambos. Muitos modelos e séries temporais hierárquicas, ou HTS, são soluções de escala para o cenário anterior, em que os dados consistem em um grande número de séries temporais. Nesses casos, pode ser benéfico para a precisão e escalabilidade do modelo particionar os dados em grupos e treinar um grande número de modelos independentes em paralelo nos grupos. Por outro lado, há cenários em que um modelo ou um pequeno número de modelos de alta capacidade é melhor. O treinamento de DNN distribuído visa esse caso. Analisamos os conceitos em torno desses cenários no restante do artigo.

Muitos modelos

Os muitos componentes de modelos no AutoML permitem treinar e gerenciar milhões de modelos em paralelo. Por exemplo, suponha que você tenha dados históricos de vendas para um grande número de lojas. Você pode usar muitos modelos para iniciar trabalhos de treinamento do AutoML paralelos para cada loja, como no diagrama a seguir:

Diagrama mostrando o fluxo de trabalho de muitos modelos do AutoML.

O componente de treinamento muitos modelos aplica a limpeza e a seleção de modelos do AutoML de forma independente a cada loja neste exemplo. Essa independência de modelo ajuda na escalabilidade e pode beneficiar a precisão do modelo, especialmente quando as lojas têm dinâmicas de vendas divergentes. No entanto, uma única abordagem de modelo pode produzir previsões mais precisas quando há uma dinâmica de vendas comum. Consulte a seção de treinamento de DNN distribuído para obter mais detalhes sobre esse caso.

Você pode definir o particionamento de dados, as configurações do AutoML para os modelos e o grau de paralelismo para trabalhos de treinamento de muitos modelos. Para obter exemplos, consulte nossa seção do guia sobre componentes de muitos modelos.

Previsão de série temporal hierárquica

É comum que séries temporais em aplicativos de negócios tenham atributos aninhados que formam uma hierarquia. Atributos de catálogo de produtos e geografia geralmente são aninhados, por exemplo. Considere um exemplo em que a hierarquia tem dois atributos geográficos, o estado e a ID da loja, e dois atributos de produto, categoria e SKU:

Exemplo de tabela de dados de série temporal hierárquica.

Essa hierarquia é ilustrada no diagrama a seguir:

Diagrama da hierarquia de dados para os dados de exemplo.

É importante ressaltar que as quantidades de vendas no nível folha (SKU) somam-se às quantidades de vendas agregadas no estado e nos níveis totais de vendas. Os métodos de previsão hierárquica preservam essas propriedades de agregação ao prever a quantidade vendida em qualquer nível da hierarquia. As previsões com essa propriedade são coerentes em relação à hierarquia.

O AutoML dá suporte aos seguintes recursos para HTS (série temporal hierárquica):

  • Treinamento em qualquer nível da hierarquia. Em alguns casos, os dados de nível folha podem ser ruidosos, mas as agregações podem ser mais passíveis de previsão.
  • Recuperando previsões de ponto em qualquer nível da hierarquia. Se o nível de previsão estiver "abaixo" do nível de treinamento, as previsões do nível de treinamento serão desagregadas por meio de proporções históricas médias ou proporções de médias históricas. As previsões de nível de treinamento são somadas de acordo com a estrutura de agregação quando o nível de previsão está "acima" do nível de treinamento.
  • Recuperando previsões probabilísticas/de quantil para níveis em ou "abaixo" do nível de treinamento. Os recursos de modelagem atuais dão suporte à desagregação de previsões probabilísticas.

Os componentes de HTS no AutoML são criados com base em muitos modelos, portanto, a HTS compartilha as propriedades escalonáveis de muitos modelos. Para obter exemplos, consulte nossa seção do guia sobre componentes de HTS.

Treinamento DNN distribuído (versão prévia)

Importante

Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Cenários de dados com grandes quantidades de observações históricas e/ou um grande número de séries temporais relacionadas podem se beneficiar de uma abordagem escalonável de modelo único. Assim, o AutoML dá suporte ao treinamento distribuído e à pesquisa de modelos em modelos de TCN (rede convolucional temporal), que são um tipo de DNN (rede neural profunda) para dados de série temporal. Para obter mais informações sobre a classe de modelo de TCN do AutoML, consulte nosso artigo sobre DNN.

O treinamento de DNN distribuído obtém escalabilidade usando um algoritmo de particionamento de dados que respeita os limites da série temporal. O diagrama a seguir ilustra um exemplo simples com duas partições:

Diagrama de exemplo de uma partição de dados de treinamento distribuído.

Durante o treinamento, os carregadores de dados de DNN em cada computação carregam somente o que precisam para concluir uma iteração de retropropagação; o conjunto de dados inteiro nunca é lido na memória. As partições são distribuídas ainda mais entre vários núcleos de computação (geralmente GPUs) em possivelmente vários nós para acelerar o treinamento. A coordenação entre computações é fornecida pela estrutura Horovod .

Próximas etapas