202.09
Rating
Microsoft
Microsoft — мировой лидер в области ПО и ИТ-услуг
13 May 2019

Анонсирован ML.NET 1.0

Microsoft corporate blog.NETMachine learning
Translation
Original author: Ankit Asthana
Недавно мы анонсировали выпуск ML.NET 1.0. ML.NET — это бесплатный, кроссплатформенный и открытый фреймворк машинного обучения, предназначенный для использования возможностей машинного обучения (ML) в приложениях .NET.

image

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, что означает, что добавление моделей машинного обучения в ваши приложения теперь осуществляется только кликом правой кнопкой мыши!

image

Оставшаяся часть данного поста посвящена этому новому экспириенсу.

  • Ключевые компоненты 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 предоставляет следующие ключевые компоненты:

  1. Представление данных
    • Фундаментальные ML типы данных Data Pipeline, такие как IDataView (является фундаментальным типом Data Pipeline)
    • Считыватели для поддержки чтения данных из текстовых файлов с разделителями или IEnumerable объектов
  2. Поддержка задач машинного обучения:
    • Бинарная классификация
    • Мультиклассовая классификация
    • Регрессия
    • Ранжирование
    • Обнаружение аномалий
    • Кластеризация
    • Рекомендация (preview)
  3. Data Transformation и featurization
    • Текст
    • Категории
    • Feature Selection
    • Нормализация и обработка пропущенных значений
    • Image featurization
    • Time Series (preview)
    • Поддержка интеграции моделей ONNX и TensorFlow (preview)
  4. Прочее
    • Модель понимания и объяснимости
    • 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 в существующее приложение.

image

Узнайте больше о 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.

image

Узнайте больше о 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
Tags:microsoft.netml
Hubs: Microsoft corporate blog .NET Machine learning
+7
6.7k 65
Comments 3
Popular right now