ML.NET (MLQNET)

Перейти к навигации Перейти к поиску
ML.NET
Логотип программы ML.NET
Тип Библиотека
Автор Microsoft
Разработчик .NET Foundation[en]
Написана на C#, C++
Операционные системы Windows, Linux, macOS
Первый выпуск 7 мая 2018; 5 лет назад (2018-05-07)
Последняя версия 3.0.0 (28 ноября 2023; 5 месяцев назад (2023-11-28))
Репозиторий github.com/dotnet/machin…
Лицензия MIT
Сайт dot.net/ml

ML.NET — бесплатная открытая библиотека со средствами машинного обучения для языков программирования C# и F#.[1][2][3] Она также поддерживает модели на Python при использовании совместно с NimbusML. Предварительный выпуск ML.NET включал в себя решения для конструирования признаков (например, создания N-грамм), двоичной и мультиклассовой классификаций, регрессионного анализа. Позже были добавлены дополнительные задачи машинного обучения: выявление аномалий и рекомендательные системы. Глубокое обучение и прочие подходы ожидаются в предстоящих версиях.[4][5]

История[править | править код]

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 и во многом превосходит своих предшественников» — сообщает Джеймс Маккефри[en], сотрудник 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]

Примечания[править | править код]

  1. By David Ramel, 05/08/2018. Open Source, Cross-Platform ML.NET Simplifies Machine Learning - (амер. англ.). Visual Studio Magazine. Дата обращения: 3 февраля 2022. Архивировано 28 октября 2021 года.
  2. Microsoft debuts ML.NET cross-platform machine learning framework - OnMSFT.com (амер. англ.) (9 мая 2018). Дата обращения: 3 февраля 2022. Архивировано 5 марта 2022 года.
  3. Announcing ML.NET 0.4 (амер. англ.). .NET Blog (7 августа 2018). Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  4. Microsoft Releases ML.NET Open Source Machine Learning Framework Preview (амер. англ.). Fossbytes (9 мая 2018). Дата обращения: 3 февраля 2022. Архивировано 27 октября 2021 года.
  5. luisquintanilla. Machine learning tasks - ML.NET (амер. англ.). docs.microsoft.com. Дата обращения: 3 февраля 2022. Архивировано 3 декабря 2021 года.
  6. kexugit. Machine Learning - ML.NET: The Machine Learning Framework for .NET Developers (амер. англ.). docs.microsoft.com. Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  7. Machine Learning for .NET. — 2022-02-02. Архивировано 3 февраля 2022 года.
  8. 1 2 Announcing ML.NET 0.7 (Machine Learning .NET) (амер. англ.). .NET Blog (8 ноября 2018). Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  9. Machine Learning for .NET. — 2022-02-02. Архивировано 3 февраля 2022 года.
  10. 1 2 Announcing ML.NET 1.0 (амер. англ.). .NET Blog (6 мая 2019). Дата обращения: 3 февраля 2022. Архивировано 27 октября 2021 года.
  11. SciSharp/TensorFlow.NET. — 2022-02-01. Архивировано 12 июля 2019 года.
  12. Release ML.NET 1.4.0-preview2 · dotnet/machinelearning (англ.). GitHub. Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  13. Machine Learning at Microsoft with ML .NET // Microsoft & Yandex. — 2019. — doi:10.1145/3292500.3330667. — arXiv:1905.05715.
  14. Legal Notices. — 2022-01-27. Архивировано 28 октября 2021 года.
  15. Paul Teich. Artificial Intelligence Can Reinforce Bias, Cloud Giants Announce Tools For AI Fairness (англ.). Forbes. Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  16. Announcing ML.NET 0.8 - Machine Learning for .NET (амер. англ.). .NET Blog (4 декабря 2018). Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  17. Richard Speed. Microsoft open-sources Infer.NET AI code just in time for the weekend (англ.). www.theregister.com. Дата обращения: 3 февраля 2022. Архивировано 31 октября 2021 года.
  18. Melisha Dsouza. Microsoft open sources Infer.NET, it’s popular model-based machine learning framework (амер. англ.). Packt Hub (8 октября 2018). Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  19. Will Badr. ONNX.js: Universal Deep Learning Models in The Browser (англ.). Medium (26 января 2019). Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  20. AI School: Classes & Learning Paths (амер. англ.). Microsoft AI. Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  21. natke. ML.NET Documentation - Tutorials, API Reference (амер. англ.). docs.microsoft.com. Дата обращения: 3 февраля 2022. Архивировано 3 февраля 2022 года.
  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.

Ссылки[править | править код]