Большинству компаний машинное обучение кажется чем-то сверхсложным, дорогим и требующим серьёзных специалистов. И если вы намереваетесь создавать новую систему рекомендаций Netflix, то так и есть. Однако тенденция превращения всего в сервис затронула и эту сложную сферу. Начать с нуля проект ML можно без особых инвестиций, и это будет правильным решением, если ваша компания новичок в data science и хочет начать с решения самых простых задач.
Одна из самых вдохновляющих историй об ML — это рассказ о японском фермере, решившем автоматически сортировать огурцы, чтобы помочь своим родителям в этой утомительной работе. В отличие от крупных корпораций, этот парень не имел ни опыта в машинном обучении, ни большого бюджета. Однако ему удалось освоить TensorFlow и применить глубокое обучение для распознавания разных классов огурцов.
Благодаря облачным сервисам машинного обучения вы можете начать создавать свои первые рабочие модели, делая ценные выводы из прогнозов даже при наличии небольшой команды. Мы уже говорили о стратегии машинного обучения. Теперь давайте рассмотрим лучшие на рынке платформы машинного обучения и поговорим об инфраструктурных решениях, которые нужно принять.
Что такое «машинное обучение как сервис»
Machine learning as a service (MLaaS) — это зонтичный термин, объединяющий различные облачные платформы, решающие большинство инфраструктурных задач, включая предварительную обработку данных, обучение и оценку моделей с дальнейшим созданием прогнозов. Прогнозы можно связать со внутренней ИТ-инфраструктурой компании через REST API.
Сервисы Amazon Machine Learning, Azure Machine Learning, Google AI Platform и IBM Watson Machine Learning — вот четыре ведущих облачных сервиса MLaaS, обеспечивающих возможность быстрого обучения и развёртывания моделей. Если вы собираете собственную команду data science из разработчиков ПО компании, то вам стоит начать с них. Чтобы лучше понять распределение ролей, прочитайте нашу статью о структурах команд data science или посмотрите видео:
Роли в командах data science
В этой статье мы сначала представим краткий обзор основных платформ machine-learning-as-a-service компаний Amazon, Google, Microsoft и IBM, а затем сравним API машинного обучения, которые поддерживают эти компании. Стоит заметить, что в обзоре не будут представлены исчерпывающие инструкции о том, как и когда использовать эти платформы, это скорее информация о том, на что стоит смотреть при изучении их документации.
![](https://static.tildacdn.com/tild3437-3164-4830-a464-363831663638/hlcimkqg2rnpwdvzr2nu.jpeg)
Amazon Machine Learning и SageMaker
У Amazon есть два основных продукта для машинного обучения. Первая платформа называется Amazon Machine Learning, вторая, более новая — SageMaker.
Amazon Machine Learning
Amazon Machine Learning для прогностической аналитики — это одно из самых автоматизированных решений ML на рынке, лучше всего подходящее для операций, в которых очень важно соблюдение дедлайнов. Сервис может загружать данные из нескольких источников, в том числе из Amazon RDS, Amazon Redshift, файлов CSV и так далее. Все операции предварительной обработки данных выполняются автоматически: сервис определяет, какие из полей являются категорическими, а какие числовыми, и не просит пользователя выбрать способы дальнейшей предварительной обработки данных (снижение размерности и отбеливание данных).
Возможности прогнозирования Amazon ML ограничены тремя вариантами: бинарной классификацией, многоклассовой классификацией и регрессией. При этом сервис Amazon ML не поддерживает методики обучения без учителя, и пользователь должен выбирать целевую переменную для её разметки в обучающем массиве данных. Кроме того, пользователь не обязан знать методики машинного обучения, поскольку Amazon выбирает их автоматически после изучения предоставленных данных.
Стоит помнить, что после 2021 года Amazon больше не обновляет ни документацию, ни саму платформу Machine Learning. Сервис по-прежнему работает, но не принимает новых пользователей. Это вызвано тем, что SageMaker и его соответствующие сервисы во всём превосходит AML, и, по сути, предоставляет пользователям ту же функциональность.
Прогностическая аналитика может использоваться в виде данных реального времени или по требованию при помощи двух отдельных API. Единственное, что стоит учесть — в настоящее время Amazon, похоже, делает упор на свои более мощные сервисы ML, например, на описанный ниже SageMaker.
Этот высокий уровень автоматизации является и достоинством, и недостатком при пользовании Amazon ML. Если вам нужно полностью автоматизированное, но ограниченное решение, AML соответствует вашим ожиданиям. В противном случае выберите SageMaker.
SageMaker
SageMaker — среда машинного обучения, предназначенная для упрощения работы дата-саентиста. Она предоставляет инструменты для быстрого создания и развёртывания моделей. Например, у неё есть ноутбук Jupyter для упрощения исследования и анализа данных без возни с управлением сервером.
В 2021 году Amazon запустила SageMaker Studio — первый IDE для машинного обучения. Этот инструмент представляет веб-интерфейс, позволяющий выполнять все тесты обучения моделей ML в единой среде. Все методики и инструменты разработки, в том числе ноутбуки, инструменты отладки, моделирование данных и автоматическое создание доступно в SageMaker Studio.
Также Amazon имеет встроенные алгоритмы, оптимизированные под крупные массивы данных и вычисления в распределённых системах. В том числе:
- Linear learner — методика обучения с учителем для классификации
- Factorization machines для классификации и регрессии; предназначены для разреженных массивов данных.
- XGBoost — это алгоритм бустинга деревьев с учителем, увеличивающий точность прогнозов в задачах классификации, регрессии и ранжирования комбинированием прогнозов более простых алгоритмов.
- Image classification основан на ResNet, которая также может использоваться для трансферного обучения.
- Seq2seq — это алгоритм с учителем для прогнозирования последовательностей (например, для перевода предложений, преобразования строк слов в более короткие в виде резюме, и так далее).
- K-means — это методика обучения без учителя для кластеризации
- Principal component analysis используется для снижения размерности.
- Latent Dirichlet allocation — методика без учителя, используемая для нахождения категорий в документах.
- Neural topic model (NTM) — методика без учителя, исследующая документы; выявляет слова с самым высоким рейтингом и определяет темы (пользователи не могут заранее определять темы, однако способны указывать их ожидаемое количество).
- DeepAR forecasting — это алгоритм обучения с учителем, используемый для прогнозирования временных последовательностей; использует рекуррентные нейронные сети (RNN).
- BlazingText — это алгоритм обработки естественного языка (NLP), созданный на основе Word2vec, позволяющего сопоставлять слова в больших коллекциях текстов с векторными описаниями.
- Random Cut Forest — это алгоритм распознавания аномалий без учителя, способный присваивать каждому примеру данных оценку аномальности.
- Learning to Rank (LTR) — это плагин для Amazon Elasticsearch, позволяющий ранжировать запросы результатов поиска при помощи ML.
- K-nearest neighbor (k-NN) — это алгоритм на основе индексов, который можно применять в комбинации с Neural Topic Model для создания собственных сервисов рекомендаций. Кроме того, существует отдельный движок Amazon Personalize для рекомендаций в реальном времени, используемый самим сайтом Amazon.com itself.
Встроенные методики SageMaker сильно пересекаются с API ML, предлагаемыми Amazon, однако здесь дата-саентисты могут экспериментировать с ними и использовать собственные массивы данных.
Если вы не хотите их использовать, то можно добавить собственные методики и запускать модели при помощи SageMaker, применяя его функции развёртывания. Или же можно интегрировать SageMaker с TensorFlow, Keras, Gluon, Torch, MXNet и другими библиотеками машинного обучения.
В общем случае, сервисы машинного обучения Amazon обеспечивают достаточную свободу как опытным дата-саентистам, так и тем, кому нужно выполнять задачи без углубления в подготовку массивов данных и моделирование. Эти сервисы могут стать надёжным вариантом для компаний, уже использующих облачные сервисы Amazon и не планирующих переходить к другим поставщикам облачных услуг.
Популярность DevOps в сообществе разработчиков ПО породила понятие "MLOps". DevOps — это методика в разработке ПО, предполагающая слияние команд разработки и эксплуатации для оптимизации процессов разработки ПО благодаря системе коротких и быстрых релизов. Она реализуется применением высокого уровня автоматизации к рутинным задачам. MLOps, в свою очередь, применяет те же принципы к машинному обучению, что привело к появлению автоматизированного управления данными, обучения/развёртывания моделей и мониторинга.
Именно поэтому поставщики услуг MLaaS начали предлагать использующим MLOps компаниям инструменты для управления такими конвейерами машинного обучения. Amazon выпустила фреймворк MLOps для создания инфраструктуры MLOps и управления ею. Он имеет шаблонную архитектуру, содержащую стандартные сервисы AWS, что позволяет быстрее начать создание поверх них собственной системы.
Microsoft Azure AI Platform
Azure AI Platform представляет собой единую платформу для машинного обучения с API и инфраструктурными сервисами. Ниже я перечислю все крупные сервисы, предлагаемые Azure для решений машинного обучения.
Azure Machine Learning
Azure Machine Learning — основная среда для управления массивами данных, обучения и развёртывания моделей.
Платформа имеет Machine Learning Studio — веб-среду, устроенную по принципу low code, которая позволяет быстро конфигурировать операции и конвейеры машинного обучения. В целом, Azure Studio имеет средства для исследования, предварительной обработки данных, выбора методик и валидации результатов моделирования. Studio поддерживает примерно сто методик, используемых при классификации (бинарной+многоклассовой), детекции аномалий, регрессии, рекомендациях и анализе текстов. Стоит также заметить, что у платформы есть один алгоритм кластеризации (K-means).
Как и платформа Amazon, Azure предлагает интеграцию с Jupyter для записи и выполнения кода в ML Studio. Также она предоставляет ONNX Runtime для ускорения моделей ML в различных операционных системах, на аппаратных платформах и фреймворках. Runtime также можно использовать для организации взаимодействия между разными фреймворками ML. Azure поддерживает такие популярные фреймворки, как TensorFlow, PyTorch, scikit-learn и другие.
В ML Studio есть множество функций, о которых вам нужно узнать.
- Azure Machine Learning designer — это графический UI в стиле drag-and-drop для ML studio, предоставляющий доступ к функциям платформы и управляющий ими. В нём можно изменять данные, применять методики ML и развёртывать решения на сервере.
- Automated ML — это SDK, обеспечивающий обучение моделей по принципу no code или low code. По сути, Automated ML дополняет ML studio, обеспечивая высокую степень автоматизации рутинных задач и поддержку исследования данных, настройки и развёртывания моделей. Разработчики Azure указывают, что задачи классификации, регрессии и временных рядов применимы для обучения с помощью инструментов Automated ML.
- SDK Azure ML Python и языка R полностью интегрированы в ML Studio.
- Поддержка фреймворков ML наподобие PyTorch, TensorFlow и scikit-learn. Кроме того, Azure обеспечивает взаимодействие между фреймворками при помощи ONNX Runtime.
- В платформу встроены модульные конвейеры, позволяющие команде data science создавать специализированные конвейеры данных под собственный проект машинного обучения.
- Поддержка проектов по разметке данных, в том числе инструменты управления данными и командой, прогресса разметки, отслеживания незавершённой разметки и изучения размеченных данных.
- Настраиваемые целевые вычислительные платформы для развёртывания моделей поддерживают различные облачные сервисы наподобие сервисов Azure Kubernetes, инстансов контейнеров и вычислительных кластеров
- Имеется инструментарий MLOps для управления моделями, их развёртывания и мониторинга в рамках автоматизированных конвейеров.
И ML Designer, и Automated ML предоставляют неопытным пользователям средства для создания решений ML. В свою очередь, Azure Machine learning studio содержит множество функций, которые могут использоваться экспертными дата-саентистами в решениях корпоративного уровня. Однако она не ограничивает эти инструменты, поскольку Azure ML предназначена для использования как единая платформа со всеми её возможностями.
Для освоения машинного обучения на основе Azure требуется обучение. Но в конечном итоге оно приводит к более глубокому пониманию основных технологий в этой сфере. Графический интерфейс Azure ML визуализирует каждый этап рабочего процесса и помогает новичкам. Возможно, основное преимущество применения Azure — разнообразие алгоритмов, с которыми можно экспериментировать.
Azure AI Gallery
Ещё одной большой частью Azure ML является Azure AI Gallery. Это коллекция решений для машинного обучения, предоставленная сообществом; его могут изучать и повторно использовать дата-саентисты. Azure — мощный инструмент для начального освоения машинного обучения и ознакомления новых сотрудников с его возможностями.
Azure Percept
На данный момент у Azure в режиме preview открыт продукт Azure Percept. Основная идея Percept заключается в том, чтобы предоставить SDK для создания моделей, которые можно интегрировать в аппаратные устройства партнёров Microsoft. Благодаря этому можно легко создавать и интегрировать инструменты компьютерного зрения или распознавания речи. Кроме того, к системе можно подключить целый спектр API, о которых мы поговорим ниже.
Обновления платформы за 2019 год в основном сосредоточены на Python Machine Learning SDK и на запуске Azure ML Workspaces (по сути, это UI для платформы ML). Они позволяют разработчикам разворачивать модели, визуализировать данные и работать над подготовкой массива данных в одном месте.