Aprendizagem automática de máquina (AutoML)?
APLICA-SE A: Python SDK azureml v1
O aprendizado de máquina automatizado, também conhecido como ML automatizado ou AutoML, é o processo de automatizar as tarefas iterativas e demoradas do desenvolvimento de modelos de aprendizado de máquina. Ele permite que cientistas de dados, analistas e desenvolvedores criem modelos de ML com alta escala, eficiência e produtividade, ao mesmo tempo em que sustentam a qualidade do modelo. O ML automatizado no Azure Machine Learning baseia-se num avanço da nossa divisão Microsoft Research.
O desenvolvimento de modelos tradicionais de aprendizado de máquina consome muitos recursos, exigindo conhecimento de domínio significativo e tempo para produzir e comparar dezenas de modelos. Com o aprendizado de máquina automatizado, você acelerará o tempo necessário para obter modelos de ML prontos para produção com grande facilidade e eficiência.
Maneiras de usar o AutoML no Aprendizado de Máquina do Azure
O Azure Machine Learning oferece as duas experiências a seguir para trabalhar com ML automatizado. Consulte as seções a seguir para entender a disponibilidade de recursos em cada experiência (v1).
Para clientes experientes em código, Azure Machine Learning Python SDK. Introdução ao Tutorial: Use o aprendizado de máquina automatizado para prever as tarifas de táxi (v1).
Para clientes com experiência limitada/sem código, o estúdio do Azure Machine Learning em https://ml.azure.com. Comece com estes tutoriais:
Configurações do experimento
As configurações a seguir permitem que você configure seu experimento de ML automatizado.
O SDK do Python | A experiência web do estúdio | |
---|---|---|
Dividir os dados em conjuntos de comboios/validação | ✓ | ✓ |
Suporta tarefas de ML: classificação, regressão, previsão de & | ✓ | ✓ |
Suporta tarefas de visão computacional: classificação de imagem, deteção de objetos e segmentação de instâncias | ✓ | |
Otimiza com base na métrica principal | ✓ | ✓ |
Suporta computação do Azure Machine Learning como destino de computação | ✓ | ✓ |
Configurar horizonte de previsão, atraso de destino ou janela de rolagem | ✓ | ✓ |
Definir critérios de saída | ✓ | ✓ |
Definir iterações simultâneas | ✓ | ✓ |
Soltar colunas | ✓ | ✓ |
Bloquear algoritmos | ✓ | ✓ |
Validação cruzada | ✓ | ✓ |
Dá suporte ao treinamento em clusters do Azure Databricks | ✓ | |
Exibir nomes de recursos projetados | ✓ | |
Resumo da featurização | ✓ | |
Featurização para férias | ✓ | |
Níveis de verbosidade do arquivo de log | ✓ |
Configurações do modelo
Essas configurações podem ser aplicadas ao melhor modelo como resultado de seu experimento automatizado de ML.
O SDK do Python | A experiência web do estúdio | |
---|---|---|
Melhor registro de modelo, implantação, explicabilidade | ✓ | ✓ |
Ativar modelos de conjunto de votação ou conjunto de pilha | ✓ | ✓ |
Mostrar o melhor modelo com base em métricas não primárias | ✓ | |
Ativar/desativar a compatibilidade do modelo ONNX | ✓ | |
Testar o modelo | ✓ | ✓ (pré-visualização) |
Configurações de controle de trabalho
Essas configurações permitem que você revise e controle seus trabalhos experimentais e seus trabalhos filhos.
O SDK do Python | A experiência web do estúdio | |
---|---|---|
Tabela de resumo de trabalho | ✓ | ✓ |
Cancelar trabalhos ou trabalhos filhos | ✓ | ✓ |
Obtenha guarda-corpos | ✓ | ✓ |
Pausar e retomar trabalhos | ✓ |
Quando usar o AutoML: classificação, regressão, previsão, visão computacional e PNL
Aplique ML automatizado quando quiser que o Aprendizado de Máquina do Azure treine e ajuste um modelo para você usando a métrica de destino especificada. O ML automatizado democratiza o processo de desenvolvimento do modelo de aprendizado de máquina e capacita seus usuários, independentemente de sua experiência em ciência de dados, a identificar um pipeline de aprendizado de máquina de ponta a ponta para qualquer problema.
Profissionais e desenvolvedores de ML em todos os setores podem usar ML automatizado para:
- Implemente soluções de ML sem amplo conhecimento de programação
- Poupe tempo e recursos
- Aproveite as práticas recomendadas de ciência de dados
- Proporcionar uma resolução ágil de problemas
Classificação
A classificação é uma tarefa comum de machine learning. A classificação é um tipo de aprendizagem supervisionada, na qual os modelos aprendem mediante a utilização de dados de preparação e aplicam essas aprendizagens a dados novos. O Azure Machine Learning oferece caracterizações especificamente para estas tarefas, tais como "featurizers" de texto de rede neural profunda para classificação. Saiba mais sobre as opções de featurização (v1).
O principal objetivo dos modelos de classificação é prever em que categorias os novos dados recaem com base nas aprendizagens dos dados de preparação. Alguns exemplos comuns de classificação incluem deteção de fraude, reconhecimento de caligrafia e deteção de objetos. Saiba mais e veja um exemplo em Criar um modelo de classificação com ML automatizado (v1).
Veja exemplos de classificação e aprendizado de máquina automatizado nestes notebooks Python: Deteção de fraude, Previsão de marketing e Classificação de dados de grupos de notícias
Regressão
À semelhança da classificação, as tarefas de regressão são também uma tarefa comum de aprendizagem supervisionada.
Diferente da classificação em que os valores de saída previstos são categóricos, os modelos de regressão predizem valores numéricos de saída com base em preditores independentes. Na regressão, o objetivo é ajudar a estabelecer a relação entre essas variáveis de preditor independente ao calcular como uma variável afeta as outras. Por exemplo, o preço de um automóvel com base em características como a eficiência do combustível, classificação de segurança, etc. Saiba mais e veja um exemplo de regressão com aprendizado de máquina automatizado (v1).
Veja exemplos de regressão e aprendizado de máquina automatizado para previsões nestes notebooks Python: CPU Performance Prediction,
Previsão da série temporal
A criação de previsões faz parte de qualquer negócio, seja receita, inventário, vendas ou procura de clientes. Pode utilizar ML automatizado para combinar técnicas e abordagens, e obter uma previsão recomendada de série temporal de alta qualidade. Saiba mais com este tutorial: aprendizado de máquina automatizado para previsão de séries temporais (v1).
Um experimento automatizado de séries temporais é tratado como um problema de regressão multivariada. Os valores de séries temporais passadas são "pivotados" para se tornarem dimensões adicionais para o regressor juntamente com outros preditores. Esta abordagem, ao contrário dos métodos clássicos de séries temporais, tem a vantagem de incorporar naturalmente múltiplas variáveis contextuais e a sua relação entre si durante o treino. O ML automatizado aprende um modelo único, mas muitas vezes ramificado internamente para todos os itens no conjunto de dados e horizontes de previsão. Mais dados estão, portanto, disponíveis para estimar os parâmetros do modelo e a generalização para séries invisíveis torna-se possível.
A configuração avançada de previsão inclui:
- Deteção e caracterização de feriados
- Alunos de séries cronológicas e DNN (Auto-ARIMA, Prophet, ForecastTCN)
- muitos modelos suportam através de agrupamento
- Validação entre origens de implementação
- Atrasos configuráveis
- Funcionalidades agregadas de janelas de implementação
Veja exemplos de regressão e aprendizado de máquina automatizado para previsões nestes notebooks Python: Previsão de vendas, Previsão de demanda e Previsão de usuários ativos diários do GitHub.
Imagem digitalizada
O suporte para tarefas de visão computacional permite gerar facilmente modelos treinados em dados de imagem para cenários como classificação de imagens e deteção de objetos.
Com essa capacidade, você pode:
- Integre-se perfeitamente com o recurso de rotulagem de dados do Azure Machine Learning
- Usar dados rotulados para gerar modelos de imagem
- Otimize o desempenho do modelo especificando o algoritmo do modelo e ajustando os hiperparâmetros.
- Transfira ou implemente o modelo resultante como um serviço Web no Azure Machine Learning.
- Operacionalize em escala, aproveitando os recursos de MLOps e ML Pipelines (v1) do Azure Machine Learning.
A criação de modelos AutoML para tarefas de visão é suportada por meio do SDK Python do Azure Machine Learning. Os trabalhos, modelos e saídas de experimentação resultantes podem ser acessados na interface do usuário do estúdio de Aprendizado de Máquina do Azure.
Saiba como configurar o treinamento AutoML para modelos de visão computacional.
O ML Automatizado para imagens suporta as seguintes tarefas de imagens digitalizadas:
Tarefa | Descrição |
---|---|
Classificação de imagens multiclasse | Tarefas nas quais uma imagem é classificada com uma única etiqueta a partir de um conjunto de classes – por exemplo, cada imagem é classificada como uma imagem de um “gato”, um “cão”ou um “pato” |
Classificação de imagens de várias etiquetas | Tarefas nas quais uma imagem pode ter uma ou mais etiquetas a partir de um conjunto de etiquetas – por exemplo, uma imagem pode ser etiquetada com “gato” e “cão” |
Deteção de objetos | Tarefas para identificar objetos numa imagem e localizar cada objeto com uma caixa delimitadora, por exemplo, localizar todos os cães e gatos numa imagem e desenhar uma caixa delimitadora em torno de cada um. |
Segmentação de instâncias | Tarefas para identificar objetos numa imagem ao nível dos pixels, ao desenhar um polígono à volta de cada objeto na imagem. |
Processamento de linguagem natural: PNL
O suporte para tarefas de processamento de linguagem natural (NLP) em ML automatizado permite gerar facilmente modelos treinados em dados de texto para cenários de classificação de texto e reconhecimento de entidade nomeada. A criação de modelos de PNL treinados em ML automatizados é suportada por meio do SDK Python do Azure Machine Learning. Os trabalhos, modelos e saídas de experimentação resultantes podem ser acessados na interface do usuário do estúdio de Aprendizado de Máquina do Azure.
O recurso de PNL suporta:
- Treinamento completo de PNL em redes neurais profundas com os mais recentes modelos BERT pré-treinados
- Integração perfeita com a rotulagem de dados do Azure Machine Learning
- Usar dados rotulados para gerar modelos de PNL
- Suporte multilingue com 104 idiomas
- Formação distribuída com o Horovod
Saiba como configurar o treinamento AutoML para modelos de PNL (v1).
Como funciona o ML automatizado
Durante o treinamento, o Aprendizado de Máquina do Azure cria vários pipelines em paralelo que tentam algoritmos e parâmetros diferentes para você. O serviço itera através de algoritmos de ML emparelhados com seleções de recursos, onde cada iteração produz um modelo com uma pontuação de treinamento. Quanto maior a pontuação, melhor o modelo é considerado para "ajustar" seus dados. Ele vai parar assim que atingir os critérios de saída definidos no experimento.
Usando o Azure Machine Learning, você pode projetar e executar seus experimentos de treinamento automatizados de ML com estas etapas:
Identificar o problema de ML a resolver: classificação, previsão, regressão ou visão computacional.
Escolha se deseja usar o SDK do Python ou a experiência da Web do estúdio: Saiba mais sobre a paridade entre o SDK do Python e a experiência da Web do estúdio.
- Para uma experiência limitada ou sem código, experimente a experiência Web do estúdio de Aprendizagem de Máquina do Azure em https://ml.azure.com
- Para desenvolvedores Python, confira o SDK Python do Azure Machine Learning (v1)
Especifique a origem e o formato dos dados de treinamento rotulados: matrizes Numpy ou dataframe Pandas
Configure o destino de computação para treinamento de modelo, como seu computador local, Azure Machine Learning Computes, VMs remotas ou Azure Databricks com SDK v1.
Configure os parâmetros de aprendizado de máquina automatizados que determinam quantas iterações em diferentes modelos, configurações de hiperparâmetros, pré-processamento/featurização avançados e quais métricas observar ao determinar o melhor modelo.
Apresentar o trabalho de formação.
Rever os resultados
O diagrama a seguir ilustra esse processo.
Você também pode inspecionar as informações de trabalho registradas, que contêm métricas coletadas durante o trabalho. O trabalho de treinamento produz um objeto serializado Python (.pkl
arquivo) que contém o modelo e o pré-processamento de dados.
Embora a construção de modelos seja automatizada, você também pode aprender como os recursos são importantes ou relevantes para os modelos gerados.
Orientação sobre destinos de computação de ML gerenciados local versus remoto
A interface da Web para ML automatizado sempre usa um destino de computação remoto. Mas ao usar o SDK do Python, você escolherá um destino de computação local ou remoto para treinamento automatizado de ML.
- Computação local: o treinamento ocorre em seu laptop local ou computação de VM.
- Computação remota: o treinamento ocorre em clusters de computação de Machine Learning.
Escolha o destino de computação
Considere estes fatores ao escolher seu destino de computação:
- Escolha uma computação local: Se o seu cenário for sobre explorações iniciais ou demonstrações usando pequenos dados e trens curtos (ou seja, segundos ou alguns minutos por trabalho infantil), o treinamento em seu computador local pode ser uma escolha melhor. Não há tempo de configuração, os recursos de infraestrutura (seu PC ou VM) estão diretamente disponíveis.
- Escolha um cluster de computação de ML remoto: Se você estiver treinando com conjuntos de dados maiores, como no treinamento de produção, criando modelos que precisam de trens mais longos, a computação remota fornecerá um desempenho de tempo de ponta a ponta muito melhor porque
AutoML
paralelizará os trens entre os nós do cluster. Em uma computação remota, o tempo de inicialização da infraestrutura interna adicionará cerca de 1,5 minutos por trabalho filho, além de minutos adicionais para a infraestrutura de cluster se as VMs ainda não estiverem em funcionamento.
Prós e contras
Considere esses prós e contras ao escolher usar local versus remoto.
Prós (Vantagens) | Contras (Handicaps) | |
---|---|---|
Destino de computação local | ||
Clusters de computação de ML remoto |
Disponibilidade de caraterísticas
Mais recursos estão disponíveis quando você usa a computação remota, conforme mostrado na tabela abaixo.
Caraterística | Comunicação Remota | Local |
---|---|---|
Streaming de dados (suporte a dados grandes, até 100 GB) | ✓ | |
Visualização e formação de textos baseados em DNN-BERT | ✓ | |
Suporte imediato a GPU (treinamento e inferência) | ✓ | |
Suporte para classificação e rotulagem de imagens | ✓ | |
Modelos Auto-ARIMA, Prophet e ForecastTCN para previsão | ✓ | |
Vários trabalhos/iterações em paralelo | ✓ | |
Crie modelos com interpretabilidade na interface do usuário da experiência na Web do estúdio AutoML | ✓ | |
Personalização de engenharia de recursos na interface do usuário da experiência web do estúdio | ✓ | |
Ajuste de hiperparâmetro do Azure Machine Learning | ✓ | |
Suporte ao fluxo de trabalho do Pipeline do Azure Machine Learning | ✓ | |
Continuar um trabalho | ✓ | |
Previsão | ✓ | ✓ |
Criar e executar experimentações em blocos de notas | ✓ | ✓ |
Registre e visualize as informações e métricas do experimento na interface do usuário | ✓ | ✓ |
Guardrails de dados | ✓ | ✓ |
Dados de formação, validação e teste
Com o ML automatizado, você fornece os dados de treinamento para treinar modelos de ML e pode especificar que tipo de validação de modelo executar. O ML automatizado executa a validação do modelo como parte do treinamento. Ou seja, o ML automatizado usa dados de validação para ajustar os hiperparâmetros do modelo com base no algoritmo aplicado para encontrar a melhor combinação que melhor se adapta aos dados de treinamento. No entanto, os mesmos dados de validação são usados para cada iteração de ajuste, o que introduz viés de avaliação do modelo, uma vez que o modelo continua a melhorar e se ajustar aos dados de validação.
Para ajudar a confirmar que esse viés não é aplicado ao modelo final recomendado, o ML automatizado suporta o uso de dados de teste para avaliar o modelo final que o ML automatizado recomenda no final do experimento. Quando você fornece dados de teste como parte da configuração do experimento AutoML, esse modelo recomendado é testado por padrão no final do experimento (visualização).
Importante
Testar seus modelos com um conjunto de dados de teste para avaliar os modelos gerados é um recurso de visualização. Esse recurso é um recurso de visualização experimental e pode ser alterado a qualquer momento.
Saiba como configurar experimentos de AutoML para usar dados de teste (visualização) com o SDK (v1) ou com o estúdio do Azure Machine Learning.
Você também pode testar qualquer modelo de ML automatizado existente (visualização) (v1)), incluindo modelos de trabalhos infantis, fornecendo seus próprios dados de teste ou reservando uma parte de seus dados de treinamento.
Desenvolvimento de funcionalidades
A engenharia de recursos é o processo de usar o conhecimento de domínio dos dados para criar recursos que ajudam os algoritmos de ML a aprender melhor. No Azure Machine Learning, as técnicas de dimensionamento e normalização são aplicadas para facilitar a engenharia de recursos. Coletivamente, essas técnicas e engenharia de recursos são chamadas de featurização.
Para experimentos automatizados de aprendizado de máquina, a featurização é aplicada automaticamente, mas também pode ser personalizada com base em seus dados. Saiba mais sobre o que a featurização está incluída (v1) e como o AutoML ajuda a evitar o ajuste excessivo e dados desequilibrados em seus modelos.
Nota
Etapas automatizadas de featurização de aprendizado de máquina (normalização de recursos, manipulação de dados ausentes, conversão de texto em numérico, etc.) tornam-se parte do modelo subjacente. Ao usar o modelo para previsões, as mesmas etapas de featurização aplicadas durante o treinamento são aplicadas aos seus dados de entrada automaticamente.
Personalizar featurização
Técnicas adicionais de engenharia de recursos, como codificação e transformações, também estão disponíveis.
Habilite essa configuração com:
Estúdio do Azure Machine Learning: habilite a featurização automática na seção Exibir configuração adicional com estas etapas (v1).
Python SDK: especifique
"feauturization": 'auto' / 'off' / 'FeaturizationConfig'
em seu objeto AutoMLConfig . Saiba mais sobre como ativar a featurização (v1).
Modelos Ensemble
O aprendizado de máquina automatizado suporta modelos de conjunto, que são habilitados por padrão. O Ensemble Learning melhora os resultados do aprendizado de máquina e o desempenho preditivo combinando vários modelos em vez de usar modelos únicos. As iterações de conjunto aparecem como as iterações finais do seu trabalho. O aprendizado de máquina automatizado usa métodos de votação e conjunto de empilhamento para combinar modelos:
- Votação: prevê com base na média ponderada das probabilidades de classe previstas (para tarefas de classificação) ou metas de regressão previstas (para tarefas de regressão).
- Empilhamento: empilhamento combina modelos heterogêneos e treina um metamodelo com base na saída dos modelos individuais. Os metamodelos padrão atuais são LogisticRegression para tarefas de classificação e ElasticNet para tarefas de regressão/previsão.
O algoritmo de seleção do conjunto Caruana com inicialização do conjunto classificado é usado para decidir quais modelos usar dentro do conjunto. Em um nível alto, este algoritmo inicializa o conjunto com até cinco modelos com as melhores pontuações individuais, e verifica se esses modelos estão dentro do limiar de 5% da melhor pontuação para evitar um conjunto inicial ruim. Em seguida, para cada iteração de conjunto, um novo modelo é adicionado ao conjunto existente e a pontuação resultante é calculada. Se um novo modelo melhorou a pontuação do conjunto existente, o conjunto é atualizado para incluir o novo modelo.
Consulte o tutorial (v1) para alterar as configurações padrão do conjunto no aprendizado de máquina automatizado.
AutoML & ONNX
Com o Azure Machine Learning, você pode usar ML automatizado para criar um modelo Python e convertê-lo para o formato ONNX. Uma vez que os modelos estão no formato ONNX, eles podem ser executados em uma variedade de plataformas e dispositivos. Saiba mais sobre como acelerar modelos de ML com ONNX.
Veja como converter para o formato ONNX neste exemplo de bloco de anotações Jupyter. Saiba quais algoritmos são suportados no ONNX (v1).
O tempo de execução ONNX também suporta C#, para que você possa usar o modelo criado automaticamente em seus aplicativos C# sem qualquer necessidade de recodificação ou qualquer uma das latências de rede que os pontos de extremidade REST introduzem. Saiba mais sobre como usar um modelo ONNX AutoML em um aplicativo .NET com ML.NET e inferir modelos ONNX com a API C# de tempo de execução ONNX.
Próximos passos
Há vários recursos para você começar a trabalhar com o AutoML.
Tutoriais / instruções
Os tutoriais são exemplos introdutórios completos de cenários de AutoML.
Para uma primeira experiência de código, siga o Tutorial: Treinar um modelo de regressão com AutoML e Python (v1).
Para obter uma experiência de baixo ou nenhum código, consulte o Tutorial: Treinar um modelo de classificação com AutoML sem código no estúdio de Aprendizado de Máquina do Azure.
Para usar o AutoML para treinar modelos de visão computacional, consulte o Tutorial: Treinar um modelo de deteção de objetos com AutoML e Python (v1).
Os artigos de instruções fornecem detalhes adicionais sobre a funcionalidade que o ML automatizado oferece. Por exemplo,
Definir as configurações para experimentos de treinamento automático
- Sem código no estúdio do Azure Machine Learning.
- Com o Python SDK v1.
Saiba como treinar modelos de previsão com dados de séries temporais (v1).
Aprenda a treinar modelos de visão computacional com Python (v1).
Saiba como visualizar o código gerado a partir dos seus modelos de ML automatizados.
Amostras de cadernos Jupyter
Analise os exemplos de código e casos de utilização detalhados no Repositório do bloco de notas do GitHub para amostras de machine learning automatizado.
Referência SDK Python
Aprofunde sua experiência em padrões de design SDK e especificações de classe com a documentação de referência de classe AutoML.
Nota
Os recursos de aprendizado de máquina automatizado também estão disponíveis em outras soluções da Microsoft, como ML.NET, HDInsight, Power BI e SQL Server