Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
ML.NET - это кроссплатформенная среда машинного обучения с открытым исходным кодом для разработчиков .NET. Она позволяет интегрировать машинное обучение в ваши .NET-приложения без необходимости покидать экосистему .NET или даже иметь опыт работы в машинном обучении или data science.
Мы рады объявить о выходе новых версий ML.NET и Model Builder!
В этом посте мы рассмотрим следующие вопросы:
Model Builder Preview
ML.NET v1.5.5
Виртуальная конференция сообщества ML.NET
Начало работы и ресурсы
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 по МСК).