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