Automatizar o treinamento de modelos com a CLI do ML.NET

A CLI do ML.NET automatiza a geração de modelos para desenvolvedores .NET.

Para usar a API do ML.NET por si só (sem a CLI de AutoML do ML.NET), você precisa escolher um treinador (implementação de um algoritmo de aprendizado de máquina para uma tarefa específica) e o conjunto de transformações de dados (engenharia de recursos) para aplicar aos seus dados. O pipeline ideal variará para cada conjunto de dados e selecionar o algoritmo ideal entre todas as opções aumenta a complexidade. Além disso, cada algoritmo tem um conjunto de hiperparâmetros a serem ajustados. Portanto, você pode passar semanas e até meses em otimização de modelos de machine learning na tentativa de encontrar as combinações de engenharia de recursos, algoritmos de aprendizado e hiperparâmetros.

A CLI do ML.NET simplifica esse processo usando o aprendizado de máquina automatizado (AutoML).

Observação

Esse artigo refere-se ao ML.NET CLI e ao ML.NET AutoML, que estão atualmente em versão prévia, e o material pode estar sujeito a alterações.

O que é a interface de linha de comando (CLI) do ML.NET?

A CLI do ML.NET é uma ferramenta .NET. Uma vez instalado, você dá a ela uma tarefa de aprendizado de máquina e um conjunto de dados de treinamento, e ela gera um modelo ML.NET, bem como o código C# a ser executado para usar o modelo em seu aplicativo.

Conforme mostrado na figura a seguir, é simples gerar um modelo ML.NET de alta qualidade (arquivo .zip de modelo serializado) mais o código C# de exemplo para executar/pontuar esse modelo. Além disso, o código C# para criar/treinar esse modelo também é gerado, de modo que você pode pesquisar e iterar pelo algoritmo e pelas configurações usados para esse "melhor modelo" gerado.

Mecanismo AutoML funcionando dentro da CLI do ML.NET

Você pode gerar esses ativos de seus próprios conjuntos de dados sem codificação por conta própria, portanto, ele também melhorará a sua produtividade, mesmo se você já conhecer o ML.NET.

Atualmente, as tarefas de ML compatíveis com a CLI do ML.NET são:

  • classificação
  • regressão
  • recomendação
  • classificação de imagem
  • previsão
  • treinar

A CLI do ML.NET pode ser instalada com base no sistema operacional e na arquitetura dele com o seguinte comando:

dotnet tool install --global mlnet-<OS>-<ARCH>

Por exemplo, a versão x64 do Windows pode ser instalada com:

dotnet tool install --global mlnet-win-x64

Para saber mais, confira o guia de instruções Instalar a CLI do ML.NET.

Exemplo de uso (cenário de classificação):

mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --train-time 10

Classificação ML.NET a partir da linha de comando

Você pode executá-lo da mesma forma no Windows PowerShell, macOS/Linux bash ou Windows CMD. No entanto, o preenchimento automático de tabela (sugestões de parâmetro) não funcionará no CMD do Windows.

Ativos de saída gerados

Os comandos de tarefa de ML na CLI geram os seguintes ativos na pasta de saída:

  • Um modelo .zip serializado ("melhor modelo") pronto para uso voltado à execução de previsões.
  • Solução em C# com:
    • Código C# para a execução/pontuação que gerou o modelo (para fazer previsões em seus aplicativos do usuário final com esse modelo).
    • Código C# com o código de treinamento usado para gerar esse modelo (para fins de aprendizado ou retreinamento de modelo).
  • Arquivo de log com informações de todas as iterações/varreduras entre vários algoritmos avaliados, incluindo sua configuração/pipeline detalhado.

Os dois primeiros ativos podem ser usados diretamente em seus aplicativos de usuário final (por exemplo, aplicativos Web, serviços e aplicativos de desktop ASP.NET Core) para fazer previsões com esse modelo de ML gerado.

O terceiro ativo, o código de treinamento, mostra a você qual código de API do ML.NET foi usado pela CLI para treinar o modelo gerado, de modo que você pode treinar novamente seu modelo e investigar e iterar em quais hiperparâmetros e treinador/algoritmo específicos foram selecionados pela CLI e AutoML nos bastidores.

Noções básicas sobre a qualidade do modelo

Ao gerar um 'melhor modelo' com a ferramenta CLI, você vê as métricas de qualidade (como precisão e R-quadrado) conforme apropriado para a tarefa de ML que você está direcionando.

Aqui, essas métricas são resumidas agrupadas por tarefa de ML para que você possa entender a qualidade do seu 'melhor modelo' gerado automaticamente.

Métricas para modelos de classificação

A imagem a seguir exibe a lista de métricas de classificação para os cinco principais modelos encontrados pela CLI:

Métricas de classificação para os cinco principais modelos

A precisão é uma métrica popular para problemas de classificação, no entanto, a precisão nem sempre é a melhor métrica para selecionar o melhor modelo, conforme explicado nas referências a seguir. Há casos em que você precisa avaliar a qualidade do seu modelo com métricas adicionais.

Para explorar e entender as métricas geradas pela CLI, consulte Métricas de avaliação para classificação.

Métricas para modelos de regressão e recomendação

Um modelo de regressão se ajustará bem aos dados se as diferenças entre os valores observados e os previstos do modelo forem pequenas e sem desvio. A regressão pode ser avaliada com certas métricas.

Você verá uma lista semelhante de métricas para os cinco principais modelos de qualidade encontrados pela CLI, exceto que, neste caso, os cinco principais estão relacionados a uma tarefa de ML de regressão:

Métricas de regressão para os cinco principais modelos

Para explorar e entender as métricas geradas pela CLI, consulte Métricas de avaliação para regressão.

Confira também