ML. NET загрузить новую модель в пул механизма прогнозирования после запуска - PullRequest
0 голосов
/ 08 мая 2020

У меня 2. NET Основные проекты веб-API настроены как Docker контейнеры, один для обучения, а другой для прогнозов. В службе прогнозирования я создаю PredictionEnginePool масштабируемым способом на основе этого - https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/serve-model-web-api-ml-net

Когда пользователь отправляет запрос в обучающий API для обучения новой модели, модели. zip-файл сохраняется в PersistentVolume, который также доступен для службы прогнозирования. После этого пользователь отправит еще один запрос на прогноз. Как мне загрузить эту недавно обученную модель в пул механизма прогнозирования без перезапуска API прогнозирования?

Кроме того, как я могу проверить, существует ли модель в пуле по имени модели?

Можете ли вы предоставить примеры кодов, которые динамически считывают файлы .zip из папки, проверяют, находятся ли они уже в пуле, а если нет, то добавляют его в пул прогнозов, все это делается за пределами startup.cs, возможно, внутри контроллера или уровня сервиса?

1 Ответ

1 голос
/ 08 мая 2020

А как насчет использования FromUri? Это будет опрашивать местоположение модели, например, хранилище BLOB-объектов на предмет любых изменений. Я не уверен, что изменение заставляет приложение перезапускаться, но я так не думаю.

    builder.Services.AddPredictionEnginePool<SentimentData, SentimentPrediction>()
  .FromUri(
      modelName: "SentimentAnalysisModel",
      uri:"https://github.com/dotnet/samples/raw/master/machine-learning/models/sentimentanalysis/sentiment_model.zip",
      period: TimeSpan.FromMinutes(1));
...