Read this article in your language IT | EN | DE | ES
Уже сегодня, выходит новый ML.NET 1.0. ML.NET - это кросс-платформенная система машинного обучения с открытым исходным кодом для использования возможностей машинного обучения (ML) в .NET приложениях.
https://github.com/dotnet/machinelearning
Начните работу @ http://dot.net/ml
ML.NET позволяет обучать, создавать и поставлять пользовательские модели машинного обучения с использованием C# или F# для таких сценариев, как анализ мнений, классификация проблем, прогнозирование, рекомендации и многое другое. Вы можете изучить эти сценарии и задачи в ML.NET репозитории.
Изначально ML.NET разрабатывался в рамках Microsoft Research и превратился в важную среду, используемую многими Microsoft продуктами, такими как Windows Defender, Microsoft Office (Проектирование идей для PowerPoint презентаций, Построение диаграмм в Microsoft Excel), Azure Machine Learning, Ключевые факторы влияния PowerBI и многие другие!
После первого выпуска ML.NET, он стал использоваться многими организациями, такими как SigParser (обнаружение спама в электронной почте), William Mullens (классификация юридических вопросов) и Evolution Software (определение уровня влажности лесных орехов). Вы можете ознакомиться с этими и многими другими организациями, которые используют ML.NET, на витрине ML.NET клиентов. Эти пользователи говорят нам, что простота использования ML.NET, возможность повторно использовать .NET навыки и полное сохранение технического стека в .NET являются основными причинами использования ML.NET.
Наряду с выпуском ML.NET 1.0 также были добавлены новые функции preview-версии, такие как автоматизированное машинное обучение (AutoML) и новые инструменты, такие как ML.NET CLI и ML.NET Model Builder, что позволит Вам добавлять модели машинного обучения в Ваши приложения в один клик!
Остальная часть этого поста посвящена новому функционалу.
Основные компоненты ML.NET
ML.NET нацелен на обеспечение конечного рабочего процесса для использования машинного обучения в .NET приложениях на различных этапах машинного обучения (первые наброски, разработка функций, моделирование, оценка и эксплуатация). ML.NET 1.0 предоставляет следующие ключевые компоненты:
1. Представление данных
- Фундаментальные типы данных конвейера ML данных, такие как IDataView - основной тип конвейера данных
- Читалки для поддержки чтения данных из текстовых файлов с разделителями или IEnumerable объектов
2. Поддержка задач машинного обучения:
- Бинарная классификация
- Мультиклассовая классификация
- Регрессия
- Ранжирование
- Обнаружение аномалий
- Кластеризация
- Рекомендация (preview)
3. Преобразование данных и индивидуализация
- Текст
- Категории
- Выбор функций
- Нормализация и обработка пропущенных значений
- Подделка образов
- Временные циклы (preview)
- Поддержка интеграции ONNX и TensorFlow моделей (preview-версия)
4. Другое
- Модель понимания и объяснимости
- Пользовательские преобразования
- Схема операций
- Поддержка манипулирования наборами данных и перекрестной проверки
Automated Machine Learning (Preview-версия)
На данный момент, начало работы с машинным обучением включает в себя невероятный путь. При создании пользовательских моделей машинного обучения Вы должны выяснить, какую задачу машинного обучения необходимо выбрать для Вашего сценария (например, классификацию или регрессию?), преобразовать Ваши данные в формат, понятный ML алгоритмам (например, текстовые данные -> числовые векторы), и настроить эти ML алгоритмы, чтобы получить лучшую производительность. Если Вы новичок в ML, каждый из этих шагов может быть довольно сложным!
Automated Machine Learning упрощает Ваше начало в работе с ML, автоматически выясняя, как преобразовать входные данные, и выбирая для Вас наилучший ML алгоритм с правильными настройками, позволяющими легко создавать лучшие в своем классе пользовательские ML модели.
AutoML поддержка в ML.NET еще находится в режиме предварительного просмотра, и в настоящее время поддерживаются ML задачи (регрессия (используется для сценариев, таких как прогнозирование цен)) и классификация (используется для сценариев, таких как анализ настроений, классификация документов, обнаружение спама и т. д.).
Вы можете попробовать AutoML в ML.NET в трех форм-факторах, используя ML.NET Model Builder, ML.NET CLI или прямо через API AutoML (
примеры смотрите здесь).
Для пользователей, которые не знакомы с машинным обучением, рекомендуется начать с ML.NET Model Builder в Visual Studio и ML.NET CLI на любой поддерживаемой платформе. AutoML API также очень удобен для сценариев, в которых можно создавать модели на лету.
Model Builder (Preview-версия)
Чтобы упростить .NET разработчикам путь по созданию ML моделей, был выпущен ML.NET Model Builder. С помощью ML.NET Model Builder внедрение машинного обучения в Ваши приложения бует доступно в один клик!
Model Builder - это простой инструмент пользовательского интерфейса для разработчиков, который использует AutoML для создания лучших в своем классе ML моделей с использованием предоставленного Вами набора данных. В дополнение к этому, Model Builder также генерирует обучение модели и код потребления модели для наиболее эффективной модели, позволяющей быстро добавлять ML в Ваши приложения.
Узнайте больше о ML.NET Model Builder
На данный момент, Model Builder находится в режиме предварительного просмотра, и Ваши отзывы и замечания будут очень полезными для его будущего развития!
ML.NET CLI (Preview-версия)
ML.NET CLI (интерфейс командной строки) - это еще один новый инструмент, который был недавно выпущен!
ML.NET CLI - это dotnet инструмент, который позволяет создавать ML.NET модели с помощью AutoML и ML.NET. ML.NET CLI быстро выполняет итерацию по Вашему набору данных для конкретной ML задачи (в настоящее время поддерживает регрессию и классификацию) и создает лучшую модель.
CLI в дополнение к созданию лучшей модели также позволяет пользователям генерировать модели обучения и код модели потребления для наиболее эффективной модели.
ML.NET CLI - это кросс-платформенная система, которая представляет собой простое дополнение к .NET CLI. Расширение Model Builder Visual Studio также использует ML.NET CLI для предоставления возможностей построителя моделей.
Вы можете установить ML.NET CLI, используя эту команду.
dotnet tool install -g mlnet
На следующем рисунке показан интерфейс командной строки ML.NET CLI, создающий набор данных для анализа настроений.
Узнайте больше о ML.NET CLI
На данный момент ML.NET CLI тоже находится в режиме предварительного просмотра, и Ваш фидбэк будет очень полезным для его дальнейшего развития!
Начните уже сейчас!
Если Вы еще этого не сделали, начать работу с ML.NET легко, и Вы можете сделать это в несколько простых шагов, которые описаны ниже. В приведенном ниже примере показано, как можно выполнить анализ настроений с помощью ML.NET.
//Step 1. Create a ML Context
var ctx = new MLContext();
//Step 2. Read in the input data for model training
IDataView dataReader = ctx.Data
.LoadFromTextFile(dataPath, hasHeader: true);
//Step 3. Build your estimator
IEstimator est = ctx.Transforms.Text
.FeaturizeText("Features", nameof(SentimentIssue.Text))
.Append(ctx.BinaryClassification.Trainers
.LbfgsLogisticRegression("Label", "Features"));
//Step 4. Train your Model
ITransformer trainedModel = est.Fit(dataReader);
//Step 5. Make predictions using your model
var predictionEngine = ctx.Model
.CreatePredictionEngine(trainedModel);
var sampleStatement = new MyInput { Text = "This is a horrible movie" };
var prediction = predictionEngine.Predict(sampleStatement);
Вы также можете изучить другие ресурсы, такие как туториалы и ресурсы для ML.NET, а также ML.NET примеры, которые показывают популярные сценарии, такие как рекомендации по продукту, обнаружение аномалий и многое другое.
Что будет дальше в ML.NET?
Не смотря на то, что недавно был выпущен ML.NET 1.0, команда продолжает усердно работать, чтобы как можно скорее добавить функции, описанные в этом блог посте, в следующий выпуск.
- AutoML для дополнительных ML сценариев
- Улучшенная поддержка сценариев глубокого обучения
- Поддержка других источников, таких как SQL Server, CosmosDB, хранилище Azure Blob и других.
- Масштабирование в Azure для модели обучения и потребления
- Поддержка дополнительных сценариев и ML функций при использовании Model Builder и CLI
- Встроенная интеграция для машинного обучения в масштабе с .NET для Apache Spark и ML.NET
- Новые ML типы в .NET, например DataFrame
Вклад участников
Выражена специальная благодарность этим замечательным участникам, которые помогали при разработке, чтобы сделать машинное обучение доступным для .NET разработчиков с ML.NET.
amiteshenoy,
beneyal,
bojanmisic,
Caraul,
dan-drews,
DAXaholic,
dhilmathy,
dzban2137,
elbruno,
endintiers,
f1x3d,
feiyun0112,
forki,
harshsaver,
helloguo,
hvitved,
Jongkeun,
JorgeAndd,
JoshuaLight,
jwood803,
kant2002,
kilick,
Ky7m,
llRandom,
malik97160,
MarcinJuraszek,
mareklinka,
Matei13,
mfaticaearnin,
mnboos,
nandaleite,
Nepomuceno,
nihitb06,
Niladri24dutta,
PaulTFreedman,
Pielgrin,
pkulikov,
Potapy4,
Racing5372,
rantri,
rantri,
rauhs,
robosek,
ross-p-smith,
SolyarA,
Sorrien,
suhailsinghbains,
terop,
ThePiranha,
Thomas-S-B,
timitoc,
tincann,
v-tsymbalistyi,
van-tienhoang,
veikkoeeva, и
yamachu
Ваше мнение очень важно для ML.NET улучшения и вскоре .NET будет лучшей платформой для машинного обучения.
Exception: Stack empty.