Do dia 06/05 até o dia 08/05 aconteceu um dos principais eventos da microsoft, o Microsoft Build, onde são anunciadas diversas novidades do mundo microsoft para desenvolvedores.
Foram anunciadas diversas funcionalidades novas no azure, na plataforma .NET, .NET 5 e etc.
Entre elas, foi anunciada a versão 1.0 do ML.NET que estava até então na versão 1.0 preview.
O que é o ML.NET?
ML.NET é um framework para machine learning desenvolvido pela Microsoft para aproximar desenvolvedores .NET de soluções de inteligência artificial.
O foco é não precisar de conhecimentos em linguagens diferentes da plataforma .NET para desenvolver o fluxo de machine learning, como python, R e outras.
Antes do ML.NET já existiam outros frameworks para este tipo de tarefa, como o Accord.NET por exemplo, mas o legal do ML.NET é a facilidade de utilizar algorítimos de IA em nossas Web APIs, Consoles, Functions e etc, sem ter tanto conhecimento de algoritmos de machine learning.
O que há de novo no ML.NET?
As versões anteriores do ML.NET eram bastante limitadas, sendo que não tinham tantos modelos disponíveis e existiam alguns erros no momento de carregar arquivos que continham textos com aspas por exemplo.
Nessa versão, podemos ver que esse problema do carregamento do arquivo foi corrigido e também temos muito mais modelos disponíveis para utilizar.
Nessa versão os principais anúncios foram:
- Modelos de recomendação (preview)
- Séries temporais (preview)
- Suporte para integração de modelos do Tensor Flow e ONNX (preview)
- Auto ML com suporte para regressão e classificação (preview)
- Model builder (preview)
- ML.NET CLI (preview)
Model Builder
Com o Model Builder, podemos fazer machine learning no formato “next, next, finish”. O interessante é que no Visual Studio 2019 podemos baixar a extensão ML.NET Model Builder, clicar com o botão direito em um console por exemplo, adicionar machine learning, seguir os passos do Builder e ele encontra para nós qual o melhor modelo, além de gerar um código de exemplo para utilizarmos em nossas aplicações. Veja o gif abaixo:
Mágico né? Veja que quando você tem que dizer o que quer fazer, ele separa em predição, classificação e cenário customizado de forma que facilita o entendimento do desenvolvedor.
ML.NET CLI
O CLI desenvolvido para o ML.NET atualmente é semelhante ao Model Builder, só que agora é para quem gosta de linha de comando, isso pode ser legal para automatizar tarefas.
Para utilizar o CLI, você deve instalar como uma ferramenta do dotnet:
dotnet tool install -g mlnet
Veja no gif que rodamos o comando direto no console especificando a coluna que queremos que o modelo resolva (sentiment_label), o tipo de tarefa (classificação), o nome do dataset, o tempo máximo de exploração e que queremos o auto-treino.
No fim, o resultado que ele nos dá é semelhante ao model builder, com os dados de qual foi o melhor modelo e um código de exemplo para podermos utilizar em nossas aplicações.
E sobre o futuro?
Segundo o anúncio da microsoft, o que eles estão mirando para o futuro é:
- Cenários adicionais de AutoML;
- Aprimorar o suporte para cenários de deep learning;
- Suporte para outras fontes de dados como SQL Server, CosmosDB, Azure Blob Storage e mais;
- Expansão no azure para treinamento e consumo de modelos;
- Suporte para cenários e funcionalidades adicionais de ML quando estiver usando o Model Builder e o CLI;
- Integração nativa para machine learning em escala com .NET for Spark e ML.NET;
- Novos tipos para ML como por exemplo DataFrame;
Em breve colocarei alguns exemplos que tenho com ML.NET, mas deixarei para outro post.
Sergio Prates