ML.NET - это кроссплатформенная среда машинного обучения с открытым исходным кодом для разработчиков .NET. Она позволяет интегрировать машинное обучение в ваши .NET-приложения без необходимости покидать экосистему .NET или даже иметь опыт работы в машинном обучении или data science.

Мы рады объявить о выходе новых версий ML.NET и Model Builder!

В этом посте мы рассмотрим следующие вопросы:

  1. Model Builder Preview

  2. ML.NET v1.5.5

  3. Виртуальная конференция сообщества ML.NET

  4. Начало работы и ресурсы

Model Builder Preview

Эта предварительная версия вносит множество значительных изменений в Построитель моделей, и мы будем рады получить ваши отзывы обо всех новых функциях, в том числе:

  • Обучение на основе конфигурации с использованием сгенерированных файлов кода программной части

  • Реструктурированные расширенные параметры данных

  • Измененный этап потребления (Consume step)

Больше подробностей о preview на странице aka.ms/blog-mb-preview.

1. Model Builder Preview

Обновлен интерфейс Model Builder! Теперь, когда вы щелкаете правой кнопкой мыши свой проект в обозревателе решений и переходите Add > Machine Learning, открывается диалоговое окно добавления нового элемента, в котором вы можете добавить модель ML.NET.

После добавления модели откроется пользовательский интерфейс Model Builder, и в обозревателе решений появится новый элемент (файл *.mbconfig).

В любой момент при использовании Построителя моделей (Model Builder), если вы закроете пользовательский интерфейс, вы можете дважды щелкнуть *.mbconfig в обозревателе решений, и он снова откроет пользовательский интерфейс до вашего последнего сохраненного состояния.

После обучения под файлом *.mbconfig генерируются два файла:

  • Model.consuming.cs: этот файл содержит схемы ввода и вывода модели, а также функцию прогнозирования, созданную для использования модели.

  • Model.training.cs: этот файл содержит пайплайн обучения (преобразования данных, алгоритм, гиперпараметры алгоритма), выбранный Построителем моделей для обучения модели. Вы можете использовать этот пайплайн для повторного обучения вашей модели.

  • Model.zip: это сериализованный zip-файл, который представляет вашу обученную модель ML.NET.

Ранее эти файлы были добавлены как два новых проекта (библиотека классов для кода потребления модели и консольное приложение для пайплайна обучения). Новый интерфейс аналогичен добавлению новой формы в приложение Windows Forms, где за формой находятся файлы кода программной части, а двойной щелчок по форме открывает конструктор.

Если вы откроете файл *.mbconfig, вы увидите, что это просто файл JSON с информацией о состоянии:

{
  "TrainingConfigurationVersion": 0,
  "TrainingTime": 10,
  "Scenario": {
    "ScenarioType": "Classification"
  },
  "DataSource": {
    "DataSourceType": "TabularFile",
    "FileName": "C:\Desktop\Datasets\yelp_labelled.txt",
    "Delimiter": "t",
    "DecimalMarker": ".",
    "HasHeader": true,
    "ColumnProperties": [
      {
        "ColumnName": "Comment",
        "ColumnPurpose": "Feature",
        "ColumnDataFormat": "String",
        "IsCategorical": false
      },
      {
        "ColumnName": "Sentiment",
        "ColumnPurpose": "Label",
        "ColumnDataFormat": "String",
        "IsCategorical": true
      }
    ]
  },
  "Environment": {
    "EnvironmentType": "LocalCPU"
  },
  "Artifact": {
    "Type": "LocalArtifact",
    "MLNetModelPath": "C:\source\repos\ConsoleApp8\ConsoleApp8\MLModel1.zip"
  },
  "RunHistory": {
    "Trials": [
      {
        "TrainerName": "AveragedPerceptronOva",
        "Score": 0.8059,
        "RuntimeInSeconds": 4.4
      }
    ],
    "Pipeline": "[{"EstimatorType":"MapValueToKey","Name":null,"Inputs":["Sentiment"],"Outputs":["Sentiment"]},{"EstimatorType":"FeaturizeText","Name":null,"Inputs":["Comment"],"Outputs":["Comment_tf"]},{"EstimatorType":"CopyColumns","Name":null,"Inputs":["Comment_tf"],"Outputs":["Features"]},{"EstimatorType":"NormalizeMinMax","Name":null,"Inputs":["Features"],"Outputs":["Features"]},{"LabelColumnName":"Sentiment","EstimatorType":"AveragedPerceptronOva","Name":null,"Inputs":null,"Outputs":null},{"EstimatorType":"MapKeyToValue","Name":null,"Inputs":["PredictedLabel"],"Outputs":["PredictedLabel"]}]",
    "MetricName": "MicroAccuracy"
  }
}

Этот новый опыт построения моделей дает множество преимуществ. Вы можете:

  • Указывайте название вашей модели и сгенерированного кода

  • Используйте в решении более одной модели, созданной Model Builder

  • Сохраняйте свое состояние и вернитесь к последнему сохраненному состоянию. Если вы потратите час на обучение и завершите работу с Построителем моделей, вам не придется начинать заново, и вы можете просто продолжить с того места, где остановились

  • Предоставляйте общий доступ к файлу *.mbconfig и совместно работайте над одним и тем же экземпляром построителя моделей через систему управления версиями

  • Используйте один и тот же файл *.mbconfig в Model Builder и ML.NET CLI (скоро!)

2. Реструктурированные расширенные параметры данных

В последней версии Построителя моделей мы добавили расширенные параметры для загрузки данных, что дало вам больше контроля над настройками столбцов и форматированием данных.

В этом выпуске мы добавили еще несколько параметров и реорганизовали их, чтобы сделать выбор параметров столбца еще проще:

  • Цель: выбрать, является ли столбец столбцом функций, столбцом метки или столбцом, который следует игнорировать во время обучения.

  • Тип данных: выберите, являются ли данные в столбце строковыми, одиночными или логическими.

  • Категориальный: выберите, является ли столбец категориальным или нет.

3. Измененный этап потребления (Consume step)

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

В пользовательском интерфейсе предоставлен фрагмент кода, который демонстрирует, как настроить ввод модели, а также как использовать сгенерированную функцию Predict для возврата прогнозируемого вывода.

Каждое свойство входных данных модели заполнено образцами данных из первой строки вашего набора данных. Вы можете использовать кнопку копирования в правом верхнем углу поля, чтобы скопировать весь фрагмент кода; затем, вставив этот код в приложение для конечного пользователя, вы можете изменить поля ввода модели, чтобы получить реальные данные для ввода в вашу модель.

Кроме того, есть новый раздел «Пример проекта», который создает приложение, использующее вашу модель, и добавляет проект в ваше решение. В предыдущих версиях Построителя моделей к вашему решению автоматически добавлялся образец консольного приложения; теперь вы можете выбрать, хотите ли вы добавить новый проект для использования вашей модели.

В настоящее время есть только возможность добавить консольное приложение, но в будущем мы планируем добавить поддержку веб-API, функций Azure и т.д.

ML.NET v1.5.5

Этот выпуск ML.NET содержит множество исправлений ошибок и улучшений, а также следующие новые функции:

  • Новый API, который принимает тип double для уровня доверия, что помогает, когда вам нужно иметь более высокую точность, чем позволяет int.

  • Поддержка экспорта оценщика ValueMapping в ONNX.

  • Новый API, позволяющий указать, является ли вывод TensorFlow пакетным или нет (ранее ML.NET всегда предполагал, что это была сумма пакета, которая вызывала ошибки, хотя это было не так).

Ознакомьтесь с примечаниями к выпуску для получения более подробной информации.

Виртуальная конференция сообщества ML.NET

7 мая 2-я ежегодная конференция сообщества Virtual ML.NET начнется с двухдневных сессий по всем вопросам ML.NET, и мы ищем спикеров, чтобы обсудить:

  • MLOps

  • Обсуждение кейсов

  • Интерактивные вычисления с Jupyter

  • ML.NET interop (ONNX)

  • ML.NET и IoT

  • ML.NET в F#

  • Big Data и ML.NET

  • Путь от экспериментов к продакшену

  • Что угодно еще про ML.NET

Это на 100% бесплатное мероприятие от сообщества для сообщества.

Вы можете отправить свое выступление через Sessionize.

Начало работы и ресурсы

Для начала работы с ML.NET изучите это руководство.

Узнайте больше о ML.NET и Model Builder в документации Microsoft Docs.

Присоединяйтесь к шоу Machine Learning .NET Community Standup каждую вторую среду в 10:00 по тихоокеанскому времени (21:00 по МСК).

Комментарии (1)