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