Consuma modelos de aprendizado de máquina

Concluído

Depois de treinar um modelo de aprendizado de máquina, é hora de consumi-lo para que você possa fazer previsões.

ML.NET modelos são serializados e salvos em um arquivo. Você pode carregar o arquivo de modelo em qualquer aplicativo .NET e usá-lo para fazer previsões por meio de APIs ML.NET.

O Construtor de Modelos facilita o consumo do modelo em aplicativos existentes usando trechos de código e em novos aplicativos usando modelos.

Trechos de código

Se você tiver um aplicativo existente onde deseja usar seu modelo para fazer previsões, um trecho de código simplifica o processo. Para usar um trecho de código em seu aplicativo:

  1. Adicione uma referência à biblioteca de classes que contém seu modelo do projeto onde você usará o modelo.
  2. Adicione o trecho de código ao seu aplicativo.

O trecho de código cria uma instância da entrada do modelo. Em seguida, ele chama o Predict método no arquivo .consumption.cs para fazer previsões usando os dados de entrada que você forneceu.

Modelos de projeto

Como o código de treinamento e consumo gerado automaticamente durante o processo de treinamento, o Construtor de Modelos fornece os seguintes modelos para gerar automaticamente novos aplicativos .NET para consumir seu modelo.

Aplicação de consola

O modelo de aplicativo de console é um aplicativo C# .NET que usa seu modelo para fazer previsões. Ele contém os seguintes arquivos:

  • Program.cs: O ponto de entrada do seu aplicativo. Semelhante ao trecho de código, esse arquivo cria uma instância da entrada do modelo, usa o Predict método no arquivo .consumption.cs e exibe o resultado no console.
  • <MODEL-NAME.mbconfig>: O arquivo .mbconfig para seu modelo e código de treinamento e consumo gerado. Esses arquivos são copiados do projeto de biblioteca de classes onde você adicionou originalmente o projeto de aprendizado de máquina.

API da Web

O modelo de API da Web é um projeto ASP.NET Core criado por meio do modelo de aplicativo de API ASP.NET Minimal para simplificar a hospedagem de seu modelo como um serviço Web. As APIs da Web oferecem a flexibilidade de fazer previsões com seu modelo sobre solicitações da Web HTTP de vários clientes, como desktop, Web e aplicativos móveis.

O modelo de API da Web contém os seguintes arquivos:

  • Program.cs: O ponto de entrada do seu aplicativo. Nesse arquivo, seu aplicativo configura o serviço usando injeção PredictionEnginePool de dependência, define um único /predict ponto de extremidade e inicia seu aplicativo para escutar solicitações HTTP de entrada.

    Como parte da definição de ponto final predict , um manipulador também é definido. O manipulador usa o PredictionEnginePool serviço para fazer previsões sobre solicitações JSON de entrada que contêm os dados de entrada do modelo. Em seguida, o manipulador retorna os resultados dessas previsões de volta ao cliente.

  • <MODEL-NAME.mbconfig>: O arquivo .mbconfig para seu modelo e código de treinamento e consumo gerado. Esses arquivos são copiados do projeto de biblioteca de classes onde você adicionou originalmente o projeto de aprendizado de máquina.

Importante

O projeto de API da Web não usa o Predict método no arquivo .consumption.cs . Em vez disso, ele se registra PredictionEnginePool como um serviço usando a injeção de dependência. PredictionEngine não é thread-safe. Você também precisa criar uma instância dele em todos os lugares em que for necessário dentro do seu aplicativo. À medida que seu aplicativo cresce, esse processo pode se tornar incontrolável.

Para melhorar o desempenho e a segurança de threads, use uma combinação de injeção de dependência e o serviço, que cria um ObjectPool de PredictionEngine objetos para uso em todo o PredictionEnginePool aplicativo.

Para saber mais sobre a injeção de dependência, consulte Injeção de dependência no ASP.NET Core.

Na próxima unidade, você consumirá o modelo treinado para prever falhas de máquina em um aplicativo de console .NET.