Недавно мы анонсировали выпуск ML.NET 1.0. ML.NET — это бесплатный, кроссплатформенный и открытый фреймворк машинного обучения, предназначенный для использования возможностей машинного обучения (ML) в приложениях .NET.

github.com/dotnet/machinelearning
Начать: dot.net/ml
ML.NET позволяет обучать, создавать и поставлять пользовательские модели машинного обучения, использующие C# или F# для таких сценариев, как sentiment analysis, issue classification, forecasting, recommendations и многих других. Вы можете проверить эти часто встречающиеся сценарии и задачи в нашем репозитории образцов ML.NET.
ML.NET изначально разрабатывался в рамках Microsoft Research, но в дальнейшем превратился в значительный фреймворк, используемый многими продуктами Microsoft, такими как Windows Defender, Microsoft Office (идеи для оформления в PowerPoint, рекомендуемые диаграммы в Excel), Azure Machine Learning, визуализация ключевых факторов влияния в PowerBI и так далее!
С момента своего запуска ML.NET используется многими организациями, такими как SigParser (обнаружение спама в электронной почте), William Mullens (классификация правовых вопросов) и Evolution Software (определение уровня влажности фундука). Вы можете проследить путь этих и многих других организаций, использующих ML.NET, в нашем ML.NET Customer Showcas. Представленные клиенты говорят нам, что простота использования ML.NET, возможность повторного использования своих навыков .NET и полное сохранение своего технического стека в .NET являются основными драйверами для их использования ML.NET.
Вместе с выпуском ML.NET 1.0 мы также добавляем новые превью-фичи, такие как Automated machine learning (AutoML), и новые инструменты, такие как ML.NET CLI и ML.NET Model Builder, что означает, что добавление моделей машинного обучения в ваши приложения теперь осуществляется только кликом правой кнопкой мыши!

Оставшаяся часть данного поста посвящена этому новому экспириенсу.
ML.NET нацелен на обеспечение конечного рабочего процесса для использования ML в .NET- приложениях на различных этапах машинного обучения (предварительная обработка, проектирование признаков, моделирование, оценка и ввод в эксплуатацию). ML.NET 1.0 предоставляет следующие ключевые компоненты:
Начало работы с машинным обучением сегодня включает в себя крутую кривую обучения. При построении пользовательских моделей машинного обучения вам нужно выяснить, какую задачу машинного обучения выбрать для вашего сценария (например, классификацию или регрессию?), как преобразовать данные в формат, который могут понять алгоритмы ML (например, текстовые данные -> числовые векторы), и настроить эти алгоритмы ML для обеспечения наилучшей производительности. Если вы новичок в ML, каждый из этих шагов может оказаться довольно сложным!
Automated Machine Learning упрощает ваше путешествие с ML, автоматически выясняя, как преобразовать входные данные, и выбирая наилучший алгоритм ML с правильными настройками, позволяющими легко создавать лучшие в своем классе пользовательские модели ML.
Поддержка AutoML в ML.NET сейчас находится в превью-режиме, и в настоящее время мы поддерживаем только основные задачи ML — регрессию (используется для сценариев, таких как Price Prediction) и классификацию (используется для сценариев, таких как Sentiment Analysis, Document Classification, Spam Detection и т. д.).
Вы можете попробовать AutoML в ML.NET в трех форм-факторах: используя ML.NET Model Builder, ML.NET CLI или используя напрямую API AutoML (примеры можно найти здесь).
Для новичков в машинном обучении мы рекомендуем начать с ML.NET Model Builder в Visual Studio и ML.NET CLI на любой платформе. API AutoML также очень удобен для сценариев, в которых вы хотите создавать модели «на лету».
Чтобы упростить путь разработчиков .NET к созданию моделей ML, мы также рады представить ML.NET Model Builder. С ML.NET Model Builder добавление машинного обучения в ваши приложения теперь осуществляется только кликом правой кнопкой мыши!
Model Builder — это простой UI-инструмент для разработчиков, которые используют AutoML для создания лучших в своем классе моделей ML с использованием предоставленного датасета. В дополнение к этому Model Builder также генерирует код model training и model consumption для наиболее эффективной модели, позволяющей быстро добавить ML в существующее приложение.

Узнайте больше о ML.NET Model Builder
Model Builder в настоящее время находится в первью-режиме, и мы хотели бы, чтобы вы опробовали его и поделились с нами своим мнением!
ML.NET CLI (command-line interface) — еще один новый инструмент, который мы представляем!
ML.NET CLI — это dotnet-инструмент, позволяющий генерировать модели ML.NET, используя AutoML и ML.NET. Также ML.NET CLI быстро выполняет итерацию по вашему датасету для конкретной задачи ML (в настоящее время поддерживает регрессию и классификацию) и создает наилучшую модель.
CLI, в дополнение к созданию наилучшей модели, также позволяет пользователям генерировать код model training и model consumption для создания наиболее эффективной модели.
ML.NET CLI — это кроссплатформенный и простой аддон к .NET CLI. Кстати, для обеспечения возможностей расширение Model Builder для Visual Studio также использует ML.NET CLI.
Вы можете установить ML.NET CLI через эту команду:
На gif-изображении ниже показан ML.NET CLI, создающий датасет для sentiment analysis.

Узнайте больше о ML.NET CLI
ML.NET CLI также в настоящее время находится в первью-режиме, и мы хотели бы, чтобы вы опробовали и его, а также поделились с нами своим мнением!
Если вы этого еще не сделали, то знайте: начать работу с ML.NET легко, и вы можете сделать это всего в несколько простых шагов, как показано ниже. В приведенном ниже образце показано, как можно выполнить sentiment analysis с помощью ML.NET.
Также вы можете изучить другие различные учебные ресурсы, такие как туториалы, ресурсы для ML.NET, а также образцы ML.NET, демонстрирующие популярные сценарии, такие как product recommendation, anomaly detection и многие другие.
Хотя мы и очень рады выпуску ML.NET 1.0, наша команда уже упорно работает над включением следующих фич после выпуска 1.0:

github.com/dotnet/machinelearning
Начать: dot.net/ml
ML.NET позволяет обучать, создавать и поставлять пользовательские модели машинного обучения, использующие C# или F# для таких сценариев, как sentiment analysis, issue classification, forecasting, recommendations и многих других. Вы можете проверить эти часто встречающиеся сценарии и задачи в нашем репозитории образцов ML.NET.
ML.NET изначально разрабатывался в рамках Microsoft Research, но в дальнейшем превратился в значительный фреймворк, используемый многими продуктами Microsoft, такими как Windows Defender, Microsoft Office (идеи для оформления в PowerPoint, рекомендуемые диаграммы в Excel), Azure Machine Learning, визуализация ключевых факторов влияния в PowerBI и так далее!
С момента своего запуска ML.NET используется многими организациями, такими как SigParser (обнаружение спама в электронной почте), William Mullens (классификация правовых вопросов) и Evolution Software (определение уровня влажности фундука). Вы можете проследить путь этих и многих других организаций, использующих ML.NET, в нашем ML.NET Customer Showcas. Представленные клиенты говорят нам, что простота использования ML.NET, возможность повторного использования своих навыков .NET и полное сохранение своего технического стека в .NET являются основными драйверами для их использования ML.NET.
Вместе с выпуском ML.NET 1.0 мы также добавляем новые превью-фичи, такие как Automated machine learning (AutoML), и новые инструменты, такие как ML.NET CLI и ML.NET Model Builder, что означает, что добавление моделей машинного обучения в ваши приложения теперь осуществляется только кликом правой кнопкой мыши!

Оставшаяся часть данного поста посвящена этому новому экспириенсу.
- Ключевые компоненты ML.NET
- Automated Machine Learning (Preview)
- ML.NET Model Builder (Preview)
- ML.NET CLI (Preview)
- Начало работы с ML.NET
- Дорога вперед
Ключевые компоненты ML.NET
ML.NET нацелен на обеспечение конечного рабочего процесса для использования ML в .NET- приложениях на различных этапах машинного обучения (предварительная обработка, проектирование признаков, моделирование, оценка и ввод в эксплуатацию). ML.NET 1.0 предоставляет следующие ключевые компоненты:
- Представление данных
- Фундаментальные ML типы данных Data Pipeline, такие как IDataView (является фундаментальным типом Data Pipeline)
- Считыватели для поддержки чтения данных из текстовых файлов с разделителями или IEnumerable объектов
- Поддержка задач машинного обучения:
- Бинарная классификация
- Мультиклассовая классификация
- Регрессия
- Ранжирование
- Обнаружение аномалий
- Кластеризация
- Рекомендация (preview)
- Data Transformation и featurization
- Текст
- Категории
- Feature Selection
- Нормализация и обработка пропущенных значений
- Image featurization
- Time Series (preview)
- Поддержка интеграции моделей ONNX и TensorFlow (preview)
- Прочее
- Модель понимания и объяснимости
- User-defined custom transformations
- Схема операций
- Поддержка манипулирования датасета и кросс-валидации
Automated Machine Learning (Preview)
Начало работы с машинным обучением сегодня включает в себя крутую кривую обучения. При построении пользовательских моделей машинного обучения вам нужно выяснить, какую задачу машинного обучения выбрать для вашего сценария (например, классификацию или регрессию?), как преобразовать данные в формат, который могут понять алгоритмы ML (например, текстовые данные -> числовые векторы), и настроить эти алгоритмы ML для обеспечения наилучшей производительности. Если вы новичок в ML, каждый из этих шагов может оказаться довольно сложным!
Automated Machine Learning упрощает ваше путешествие с ML, автоматически выясняя, как преобразовать входные данные, и выбирая наилучший алгоритм ML с правильными настройками, позволяющими легко создавать лучшие в своем классе пользовательские модели ML.
Поддержка AutoML в ML.NET сейчас находится в превью-режиме, и в настоящее время мы поддерживаем только основные задачи ML — регрессию (используется для сценариев, таких как Price Prediction) и классификацию (используется для сценариев, таких как Sentiment Analysis, Document Classification, Spam Detection и т. д.).
Вы можете попробовать AutoML в ML.NET в трех форм-факторах: используя ML.NET Model Builder, ML.NET CLI или используя напрямую API AutoML (примеры можно найти здесь).
Для новичков в машинном обучении мы рекомендуем начать с ML.NET Model Builder в Visual Studio и ML.NET CLI на любой платформе. API AutoML также очень удобен для сценариев, в которых вы хотите создавать модели «на лету».
Model Builder (Preview)
Чтобы упростить путь разработчиков .NET к созданию моделей ML, мы также рады представить ML.NET Model Builder. С ML.NET Model Builder добавление машинного обучения в ваши приложения теперь осуществляется только кликом правой кнопкой мыши!
Model Builder — это простой UI-инструмент для разработчиков, которые используют AutoML для создания лучших в своем классе моделей ML с использованием предоставленного датасета. В дополнение к этому Model Builder также генерирует код model training и model consumption для наиболее эффективной модели, позволяющей быстро добавить ML в существующее приложение.

Узнайте больше о ML.NET Model Builder
Model Builder в настоящее время находится в первью-режиме, и мы хотели бы, чтобы вы опробовали его и поделились с нами своим мнением!
ML.NET CLI (Preview)
ML.NET CLI (command-line interface) — еще один новый инструмент, который мы представляем!
ML.NET CLI — это dotnet-инструмент, позволяющий генерировать модели ML.NET, используя AutoML и ML.NET. Также ML.NET CLI быстро выполняет итерацию по вашему датасету для конкретной задачи ML (в настоящее время поддерживает регрессию и классификацию) и создает наилучшую модель.
CLI, в дополнение к созданию наилучшей модели, также позволяет пользователям генерировать код model training и model consumption для создания наиболее эффективной модели.
ML.NET CLI — это кроссплатформенный и простой аддон к .NET CLI. Кстати, для обеспечения возможностей расширение Model Builder для Visual Studio также использует ML.NET CLI.
Вы можете установить ML.NET CLI через эту команду:
dotnet tool install -g mlnet
На gif-изображении ниже показан ML.NET CLI, создающий датасет для sentiment analysis.

Узнайте больше о ML.NET CLI
ML.NET CLI также в настоящее время находится в первью-режиме, и мы хотели бы, чтобы вы опробовали и его, а также поделились с нами своим мнением!
Начните сейчас!
Если вы этого еще не сделали, то знайте: начать работу с ML.NET легко, и вы можете сделать это всего в несколько простых шагов, как показано ниже. В приведенном ниже образце показано, как можно выполнить sentiment analysis с помощью ML.NET.
//Шаг 1. Создать ML Context
var ctx = new MLContext();
//Шаг 2. Read в input для обучения модели
IDataView dataReader = ctx.Data
.LoadFromTextFile<MyInput>(dataPath, hasHeader: true);
//Шаг 3. Создать свой оценщик
IEstimator<ITransformer> est = ctx.Transforms.Text
.FeaturizeText("Features", nameof(SentimentIssue.Text))
.Append(ctx.BinaryClassification.Trainers
.LbfgsLogisticRegression("Label", "Features"));
//Шаг 4. Обучить свою модель
ITransformer trainedModel = est.Fit(dataReader);
//Шаг 5. Делать прогнозы, используя вашу модель
var predictionEngine = ctx.Model
.CreatePredictionEngine<MyInput, MyOutput>(trainedModel);
var sampleStatement = new MyInput { Text = "This is a horrible movie" };
var prediction = predictionEngine.Predict(sampleStatement);
Также вы можете изучить другие различные учебные ресурсы, такие как туториалы, ресурсы для ML.NET, а также образцы ML.NET, демонстрирующие популярные сценарии, такие как product recommendation, anomaly detection и многие другие.
Что будет дальше в ML.NET
Хотя мы и очень рады выпуску ML.NET 1.0, наша команда уже упорно работает над включением следующих фич после выпуска 1.0:
- AutoML для дополнительных сценариев ML
- Улучшенная поддержка сценариев Deep Learning
- Поддержка других дополнительных источников, таких как SQL Server, CosmosDB, Azure Blob storage и т.д.
- Масштабирование в Azure для model training и model consumption
- Поддержка дополнительных сценариев и фич ML при использовании Model Builder и CLI
- Нативная интеграция для машинного обучения в масштабе с .NET для Apache Spark и ML.NET
- Новые типы ML в .NET, например, DataFrame
Tantrido
Обучение модели где происходит: локально или на Azure?
KAW
Локально
Tantrido
Тогда круто! C#/.Net становится всё более и более привлекательной платформой!