ML.NET предоставляет разработчикам на платформе .NET возможности аналитики и прогнозирования при помощи модельного машинного обучения. Фреймворк создан на базе .NET Core и .NET Standard, поэтому запускается кроссплатформенно на системах Linux, Windows и macOS. Хотя фреймворк ML.NET появился относительно недавно, его начало было положено в 2002 году проектом Microsoft Research под названием TMSN (Text mining search and navigation), созданным для внутреннего использования в продуктах Microsoft. Позже в 2011 название этого проекта сменили на TLC (The learning code). «ML.NET был получен из библиотеки TLC и во многом превосходит своих предшественников» — сообщает Джеймс Маккефри[англ.], сотрудник Microsoft Research.[6]
В версии 0.3 была представлена поддержка формата ONNX, а помимо этого — машины факторизации, LightGBM, ансамблевое обучение, LightLDA-преобразование, классификация OVA.[7] Интеграция с TensorFlow возможна, начиная с версии 0.5. Поддержка 32- и 64-разрядных приложений была добавлена в версию 0.7, вдобавок имеющую улучшенную рекомендательную систему с матричной факторизацией.[8] Полная информация о запланированных функциях доступна на странице официального GitHub-репозитория библиотеки.[9]
Первый стабильный релиз фреймворка 1.0 был анонсирован на конференции Build в 2019 году. В нём были реализованы инструмент построения моделей (Model Builder) и автоматизированное машинное обучение (AutoML).[10] В версии 1.3.1 предварительно показано обучение глубокой нейронной сети для TensorFlow, используя привязку данных в C#,[11] и Database Loader, позволяющий обучать модель с помощью баз данных. Предварительная версия 1.4.0 позволила производить оценку моделей на ARM-процессорах и обучать глубокую нейронную сеть средствами графического процессора на Windows и Linux.[12]
Характеристики
Разработчики могут сами тренировать модель машинного обучения или повторно использовать уже существующую и запускать её на любой среде без подключения к интернету. Это означает, что им не требуется опыт в области науки о данных, чтобы работать с фреймворком.
Производительность
Статья Microsoft о машинном обучение на ML.NET продемонстрировала способность библиотеки анализировать тональность текста, используя большие наборы данных и достигая при этом высокой точности. Результаты показали 95 % точности на наборе данных из обзоров Amazon объёмом в 9 гигабайт.[13]
Построитель моделей
ML.NET CLI — интерфейс командной строки, который использует ML.NET AutoML для выполнения обучения моделей и выбора наилучшего алгоритма для данных. ML.NET Model Builder Preview[14] — расширение для Visual Studio, использующее ML.NET CLI и ML.NET AutoML для графического вывода лучшей ML.NET-модели.[10]
Объяснимость моделей
Темы справедливости и объяснимости искусственного интеллекта в последние годы стали предметами разногласий.[15] Основная проблема приложений машинного обучения — эффект чёрного ящика, при котором конечным пользователям и разработчикам не известно, как алгоритм пришёл к тому или иному решению и есть ли предвзятость в наборе данных. В сборку версии 0.8 был включён API для анализа объяснимости моделей, прежде использовавшийся внутри компании Micrososft. Добавлены обобщённые аддитивные модели и функция определения важности признаков.
Когда присутствуют несколько переменных, влияющих на итоговый результат, можно увидеть разбивку каждой из них, а также признаки, оказавшие наибольшее влияние в конечном счёте. Официальная документация показывает, что метрики оценки могут быть выведены в целях отладки. Во время обучения и отладки модели разработчики могут просматривать и изучать фильтруемые данные в реальном времени. Один из инструментов, располагающих описанными функциями, — Visual Studio DataView.[16]
Infer.NET
Компания Microsoft Research анонсировала, что популярный фреймворк машинного обучения Infer.NET, применяемый для исследований в академических учреждениях с 2008 года, был выпущен с открытым исходным кодом и теперь является частью ML.NET.[17] Infer.NET применяет вероятностное программирование, чтобы описывать вероятностные модели, что даёт преимущество интерпретируемости. Позже пространство имён «Infer.NET» было изменено на «Microsoft.ML.Probabilistic».[18]
Поддержка Python
Microsoft известно, что язык программирования Python популярен среди представителей Data Science, поэтому был создан экспериментальный модуль NimbusML. Он позволяет пользователям обучать и эксплуатировать модели машинного обучения в Python. Как и в случае с Infer.NET, исходный код модуля доступен всем.[8]
Машинное обучение в браузере
ML.NET даёт пользователям возможность экспортировать обученные модели в формат ONNX. Это в свою очередь позволяет интегрировать их в различные среды, которые не поддерживают ML.NET. Стало возможным запускать такие модели на клиентской стороне браузера благодаря ONNX.js, клиентскому фреймворку на JavaScript для глубоких моделей обучения в формате ONNX.[19]
Школа изучения ИИ и машинного обучения
Параллельно с выходом предварительной версии ML.NET Microsoft опубликовала бесплатные уроки и курсы на тему искусственного интеллекта, чтобы помочь разработчикам освоить техники, необходимые для взаимодействия с фреймворком.[20][21][22]
↑Infer.NET(англ.). dotnet.github.io. Дата обращения: 3 февраля 2022. Архивировано 23 января 2022 года.
Литература
Jarred Capellman. Hands-On Machine Learning with ML.NET: Getting started with Microsoft ML.NET to implement popular machine learning algorithms in C#. — Packt Publishing, 2020. — ISBN 978-1789801781.
Sudipta, Mukherjee. ML.NET Revealed: Simple Tools for Applying Machine Learning to Your Applications. — Apress, 2020. — ISBN 978-1484265420.