Большинству компаний машинное обучение кажется чем-то сверхсложным, дорогим и требующим серьёзных специалистов. И если вы намереваетесь создавать новую систему рекомендаций 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 машинного обучения, которые поддерживают эти компании. Стоит заметить, что в обзоре не будут представлены исчерпывающие инструкции о том, как и когда использовать эти платформы, это скорее информация о том, на что стоит смотреть при изучении их документации.
Если вам нужен интерфейс drag-and-drop, то сначала попробуйте Microsoft ML Studio. С точки зрения платформ для моделирования все четыре перечисленные выше компании предоставляют схожие продукты
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). Они позволяют разработчикам разворачивать модели, визуализировать данные и работать над подготовкой массива данных в одном месте.
Google AI Platform (Unified)
Google AI Platform (Unified) объединила в себе инструменты ML, ранее существовавшие по отдельности. Платформа состоит из AI Platform (Classic), AutoML, фреймворков и API, находящихся внутри AI Platform Unified. Давайте рассмотрим их по отдельности.
AI Platform (Classic)
Следует понять, что AI Platform Classic — это инструмент, включающий в себя множество функций для специалистов по машинному обучению и дата-саентистов. AI Platform Classic предлагает следующие сервисы для построения собственных моделей:
Training Service предоставляет среду для создания моделей при помощи встроенных алгоритмов (на данный момент находящихся в стадии беты) или собственных алгоритмов. Пользователи могут загружать собственные методики обучения или создавать специализированные контейнеры для установки приложения для обучения.
Predictive Service позволяет интегрировать сгенерированные прогнозы в бизнес-приложения или любой другой сервис.
Data Labeling Service — это инструмент, требующий наличия команды людей для разметки данных. Сервис поддерживает разметку видео, текста и изображений, которые будут обработаны в соответствии с вашими инструкциями.
Deep Learning Image предоставляет образ виртуальной машины для задач глубокого обучения. Образ предварительно сконфигурирован для задач ML и data science, в нём предустановлены популярные фреймворки и инструменты.
В AI Platform Notebooks пользователь может создавать инстансы виртуальных машин и управлять ими, а также конфигурировать типы памяти для обработки данных (CPU или GPU). Также инструменты заранее интегрированы с инстансами TensorFlow и PyTorch, пакетами для глубокого обучения и ноутбуком Jupyter.
Управление моделями, заданиями и конечными точками можно выполнять при помощи специального REST API, командной строки gcloud или Google Cloud Console.
AI Platform Classic предназначена для опытных пользователей.
Google Cloud AutoML
Google Cloud AutoML — это облачная платформа ML, предполагающая создание решений на основе данных по принципу no code. AutoML позволяет создавать специализированные модели как новичкам, так и опытным инженерам машинного обучения. Однако платформа также позволяет использовать набор готовых моделей, доступных через API. Мы рассмотрим их ниже.
Основную концепцию платформы Google можно описать как кирпичики для создания ИИ. По сути, это различные инструменты наподобие AutoML, TensorFlow и API, которые должны совместно использоваться при построении решений ML. Это означает, что можно комбинировать собственную модель и заранее обученные модели в одном продукте.
Кроме того, решения ML можно развёртывать на своём веб-сайте или в специализированной AI Infrastructure, содержащей различные методики обработки данных на GPU или CPU. Разумеется, AutoML полностью интегрирована со всеми сервисами Google и хранит данные в облаке. Обученные модели можно развёртывать при помощи интерфейса REST API.
Если воспринимать платформу как единую сущность, то есть два типа решений, которые могут использоваться разными пользователями. AI Platform (Classic) предоставляет расширенные возможности построения собственных моделей и ручного управления алгоритмами и процессами обучения. Оно больше подходит для опытных разработчиков машинного обучения. AutoML предполагает создание моделей, использование данных и интеграцию прогнозов по принципу no code.
Фреймворк TensorFlow
TensorFlow — ещё один продукт Google, являющийся опенсорсной библиотекой машинного обучения различных инструментов data science, а не ML-as-a-service. Он не имеет визуального интерфейса, а изучение TensorFlow может быть довольно сложным. Однако библиотека также предназначена для разработчиков ПО, планирующих переход в сферу data science. Google TensorFlow довольно мощна, однако в основном нацелена на задачи глубоких нейросетей.
По сути, сочетание TensorFlow и сервиса Google Cloud предполагает решения infrastructure-as-a-service и platform-as-a-service в соответствии с трёхуровневой моделью облачных сервисов. Мы рассказывали об этой концепции в своей технической статье, посвящённой цифровой трансформации.
Решение MLOps компании Google обеспечивает схожие с AWS возможности по созданию конвейеров машинного обучения и управлению ими. Однако поскольку Azure предполагает модульную систему, сконфигурированную для использования в ML Studio, среди всех трёх поставщиков его решение кажется самым совершенным.
IBM Watson Machine Learning Studio
Платформа IBM Machine Learning организована аналогично платформам описанных выше поставщиков. Строго говоря, в системе возможны два подхода: автоматизированный и ручной (для опытных команд).
Watson Studio и AutoAI
Watson Studio содержит AutoAI, обеспечивающую полностью автоматизированную обработку данных и интерфейс для создания моделей, не требующие или почти не требующие обучения для начала обработки данных, подготовки моделей и развёртывания их в продакшене.
Автоматизированная часть может решать три основных типа задач: двоичная классификация, многоклассовая классификация и регрессия. Можно выбрать или полностью автоматизированный подход, или вручную выбирать используемую методику ML. В настоящее время для выполнения этих трёх групп задач у IBM есть десять методик:
- Logistic regression
- Decision tree classifier
- Random forest classifier
- Gradient boosted tree classifier
- Naive Bayes
- Linear regression
- Decision tree regressor
- Random forest regressor
- Gradient boosted tree regressor
- Isotonic regression
Кроме AutoAI, есть ещё два сервиса, которые можно использовать для создания моделей.
SPSS Modeler
SPSS Modeler. SPSS — это программный пакет, используемый для преобразования данных в статистическую бизнес-информацию. Этот продукт без графического интерфейса пользователя, приобретённый IBM в 2009 году и интегрированный как автономный сервис ML, позволяет загружать массив данных, использовать операторы SQL для манипуляций с данными и обучать модели для управления на основе бизнес-информации.
Neural Network and Deep Learning
Сервис Neural network and deep learning немного отличается от SPSS Modeler. Это инструмент для моделирования нейронных сетей при помощи специального GUI. Сервис интегрирован в Watson Studio, что позволяет управлять данными при помощи его встроенного инструмента интеграции данных. Основная область применения сервиса — функции глубокого обучения и обучение на big data. Кроме того, сервисы нейронных сетей интегрированы с набором фреймворков ML наподобие Keras, PyTorch и TensorFlow.
Отдельно IBM предлагает рабочий процесс обучения глубоких нейронных сетей с интерфейсом редактора потока, схожего с используемым в Azure ML Studio.
Если вам нужны расширенные возможности, у IBM ML есть ноутбуки (например, Jupiter) для ручного программирования моделей при помощи популярных фреймворков наподобие TensorFlow, scikit-learn, PyTorch и других.
Подведём итог обзору платформ machine learning as a service (MLaaS): похоже, на данный момент Azure имеет наиболее гибкий набор инструментов на рынке MLaaS. Она позволяет решать большинство связанных с ML задач, предоставляет два продукта для создания собственных моделей и имеет приличный набор API для тех, кто не хочет сражаться с data science голыми руками.
Одно из последних обновлений, внесённое в 2019 году — это отказ от дальнейшего развития старой системы создания моделей (model builder), которую заменила AutoAI. Модели, обученные при помощи model builder, всё ещё могут работать в ML Studio, однако новые модели можно обучать теперь в AutoAI. Прочие обновления касаются поддержки последних версий TensorFlow и Python.
Сравнение API машинного обучения Amazon, Microsoft, Google и IBM
Наряду с полнофункциональными платформами можно использовать и высокоуровневые API. Это сервисы, внутри которых находятся готовые обученные модели; в них можно отправить данные и получить результаты. API не требуют совершенно никакого опыта в машинном обучении. В настоящее время API этих четырёх поставщиков можно в целом разделить на три крупные группы:
1) Распознавание и перевод текстов, текстовый анализ
2) Распознавание изображений + видео, а также соответствующий анализ
3) Прочее — сюда относятся и специфические сервисы, не соответствующие какой-либо категории.
Microsoft предлагает самый богатый список функций. Однако самые важные из них предоставляют все четыре компании
API для обработки речи и текста: Amazon
Amazon предоставляет несколько API, нацеленных на решение распространённых задач в сфере анализа текстов. Кроме того, с точки зрения машинного обучения они имеют высокую автоматизацию и для работы требуют лишь правильной интеграции.
Amazon Lex. Lex API создан для встраивания чат-ботов в приложения, он обладает возможностями автоматического распознавания речи (automatic speech recognition, ASR) и обработки естественных языков (natural language processing, NLP). Они основаны на моделях глубокого обучения. API может распознавать написанный и произносимый текст, а интерфейс Lex позволяет связывать распознанные введённые данные с различными бэкенд-решениями. Разумеется, Amazon поощряет использование своей облачной среды Lambda. Поэтому прежде чем покупать подписку на Lex, познакомьтесь и с Lambda. Наряду с автономными приложениями Lex в настоящее время поддерживает чат-боты для Facebook Messenger, Slack и Twilio.
Amazon Transcribe. Lex — это комплексный инструмент, нацеленный на создание чат-ботов, а Transcribe предназначен исключительно для распознавания произносимого текста. Инструмент может распознавать несколько собеседников и работает с низкокачественным аудио телефонных разговоров. Благодаря этому API удобно использовать для каталогизации аудиоархивов; также он может быть хорошей поддержкой для дальнейшего анализа данных кол-центров.
Amazon Polly. Сервис Polly является своего рода противоположностью Lex. Он превращает текст в речь, что позволяет чат-ботам отвечать голосом. Однако он не может составить сам текст, просто делает его похожим на человеческую речь. Если вы пользовались Alexa, то примерно понимаете, как это звучит. В настоящий момент инструмент поддерживает женский и мужской голос на более чем тридцати языках, в основном западно-европейских и диалектах английского. Некоторые языки имеют несколько мужских и женских голосов. Как и Lex, Polly рекомендуется использовать с Lambda.
Amazon Comprehend. Comprehend — ещё один набор API для NLP, который, в отличие от Lex и Transcribe, нацелен на различные задачи анализа текста. В настоящий момент Comprehend поддерживает следующие функции:
- Извлечение сущностей (распознавание имён, дат, организаций и так далее)
- Распознавание ключевых фраз
- Определение языка
- Анализ эмоционального настроя (положительный, нейтральный или негативный текст)
- Моделирование тем (определение доминантных тем с помощью анализа ключевых слов)
Этот сервис помогает в анализе ответов и комментариев в соцсетях, а также других объёмных текстовых данных, которые невозможно подвергнуть ручному анализу; например, комбинация из Comprehend и Transcribe поможет в анализе эмоционального настроя при общении со службой поддержки по телефону.
Amazon Translate. Как понятно из названия, сервис Translate переводит тексты. Amazon утверждает, что он использует нейросети, которые обеспечивает повышенное качество переводов «по сравнению с системами переводов на основе правил».
API для обработки речи и текста: Microsoft Azure Cognitive Services
Как и Amazon, компания Microsoft предлагает высокоуровневые API под названием Cognitive Services, которые можно интегрировать в вашу инфраструктуру и выполнять задачи, не имея опыта в data science.
Speech. Речевой набор содержит четыре API, применяющих различные типы техник NLP для распознавания естественной речи и других операций:
- Translator Speech API
- Bing Speech API для преобразования текста в речь и речи в текст
- Speaker Recognition API для задач верификации голоса
- Custom Speech Service для применения возможностей Azure NLP при использовании собственных данных и моделей
Language. Языковая группа API фокусируется на текстовом анализе, аналогичном Amazon Comprehend:
- Language Understanding Intelligent Service (LUIS) — это API, анализирующий намерения в тексте, которые должны распознаваться как команды (например, «запусти приложение YouTube» или «включи свет в гостиной»)
- Text Analysis API применяется для анализа эмоционального настроя и определения тем
- Bing Spell Check
- Translator Text API
- Web Language Model API оценивает вероятности сочетаний слов и поддерживает автоматическое завершение слов
- Linguistic Analysis API используется для разбиения предложений, разметки частей речи и разделения текстов на размеченные фразы
API для обработки речи и текста: Google Cloud ML Services/ Cloud AutoML
Хотя этот набор API в основном пересекается с тем, что предлагают Amazon и Microsoft Azure, он имеет интересные и уникальные особенности. Так как платформа AutoML пришла на смену Prediction API, теперь она расширяет возможности Google Cloud ML services. Поэтому любой API Google, относящийся к автоматизированному машинному обучению, является реальным вариантом для обучения собственных моделей.
Dialogflow. Различные чат-боты сейчас на пике популярности, поэтому у Google тоже есть своё предложение. Dialogflow основан на технологиях NLP и предназначен для определения намерений в тексте и интерпретации того, что хочет человек. API можно настраивать под необходимые намерения при помощи Java, Node.js и Python.
Natural language API. Он практически идентичен по своим базовым функциям Comprehend компании Amazon и Language компании Microsoft.
- Определение сущностей в тексте
- Распознавание эмоционального настроя
- Анализ синтаксических структур
- Разбиение тем на категории (например, еда, новости, электроника и так далее)
Speech-to-Text API. Этот сервис распознаёт естественную речь; вероятно, его основное преимущество перед похожими API заключается в большом количестве языков, поддерживаемых Google. В настоящее время его словарь работает более чем с 125 языками мира и их вариантами. Также он имеет дополнительные функции:
- Подсказки слов позволяют настраивать распознавание под конкретный контекст и слова, которые могут произноситься (например, для лучшего понимания местного или профессионального жаргона)
- Фильтрация недопустимого контента
- Обработка шумного аудио
Cloud translation API. По сути, этот API можно использовать, чтобы задействовать в своих продуктах Google Translate. Он содержит более сотни языков и автоматическое определение языка.
AutoML Natural Language API. Он позволяет загружать данные обучения через AutoML UI и обучать собственные модели. У него есть следующие функции:
- Определение контента на английском
- Определение сущностей в тексте
- Анализ синтаксической структуры
AutoML translation API. Translation API на данный момент находится в состоянии беты и содержит только информацию о возможностях специализированного моделирования. Стоит учесть, что в будущем он будет обновляться.
API для обработки речи и текста: IBM Watson
IBM тоже конкурирует за рынок API. Давайте изучим список интерфейсов компании.
Speech to Text. В настоящее время IBM предлагает распознавание речи на девяти языках. API может распознавать несколько говорящих, находить ключевые слова и обрабатывать аудио с потерями. API имеет интересную функцию — он перехватывает альтернативы слов и сообщает о них. Например, если система обнаружила слово «Бостон», то она может предположить, что это может быть альтернативой слову «Остин». После анализа этой гипотезы API присваивает каждой альтернативе показатель уверенности.
Text to Speech. Любопытно, что языки text to speech только частично совпадают с языками в speech to text API. Оба продукта поддерживают западноевропейские языки, однако в Text to speech отсутствует корейский и китайский. В английском, немецком и испанском можно выбирать между женскими и мужскими голосами, в остальных языках можно использовать только женские голоса. Это соответствует тенденциям: в основном для голосовых помощников выбирают женский голос.
Language translator. Этот API поддерживает 48 языков для перевода с английского и на английский. Также можно добавлять собственные модели и расширять список доступных языков. На данный момент Translator API был переписан как отдельный сервис со своей моделью ценообразования.
Natural language classifier. В отличие от большинства упомянутых API, классификатор IBM невозможно использовать без вашего собственного массива данных. По сути, этот инструмент позволяет обучать модели на основе собственных бизнес-данных, а затем классифицировать входящие записи. Среди прочего, он применятся для разметки продуктов в онлайн-торговле, распознавания мошенничества, категоризации сообщений, лент соцсетей и так далее.
Natural language understanding. Набор функций понимания языка компании IBM впечатляет. Наряду со стандартным извлечением информации, например, извлечением ключевых слов и сущностей с синтаксическим анализом, API предлагает множество интересных возможностей, отсутствующих у других поставщиков. В их список входит анализ метаданных и поиск связей между сущностями. Кроме того, IBM предлагает отдельную среду для обучения ваших собственных моделей анализу текста при помощи Knowledge Studio.
Personality insights. Этот довольно необычный API позволяет анализировать тексты и извлекать признаки того, как автор взаимодействует с миром. По сути, это означает, что система возвращает следующие данные:
- Характеристики личности (например, покладистость, добросовестность, экстраверсия, эмоциональный диапазон и открытость)
- Потребности (например, любопытство, восхищение, стремление к преодолению трудностей)
- Ценности (например, помощь другим, достижение успеха, гедонизм).
На основании этих данных API может делать выводы о потребительских предпочтениях (например, музыка, учёба, фильмы). Чаще всего эта система используется для анализа генерируемого пользователями контента с целью точного маркетинга продукта.
Важно отметить, что развитие Personality Insights прекращено и поддержка существующих инстансов завершилась в конце 2021 года.
Tone analyzer. Tone analyzer — это отдельный API, цель которого заключается в анализе эмоционального настроя при исследованиях соцсетей и различной аналитике удержания клиентов. Не стоит обманываться его довольно двусмысленным названием. Tone analyzer изучает только письменный текст, но не речь.
Наряду с работой над тестом и речью, Amazon, Microsoft, Google и IBM предоставляют довольно гибкие API для анализа изображений и видео.
Самый гибкий инструментарий для анализа изображений сейчас доступен в Google Cloud
Хотя анализ изображений во многом пересекается с API для видео, многие инструменты для анализа видео всё ещё находятся в разработке или на уровне бета-версий. Например, Google предоставляет обширную поддержку различных задач обработки изображений, однако компании определённо недостаёт функций анализа видео, уже доступных у Microsoft и Amazon.
Похоже, Microsoft побеждает, однако нам всё равно кажется, что Amazon обладает самыми эффективными API для анализа видео, поскольку они поддерживают потоковые видео. Эта функция существенно расширяет спектр возможных способов применения. IBM не предоставляет API для анализа видео
API для обработки изображений и видео: Amazon Rekognition
Rekognition API используется для задач распознавания изображений, а с недавнего времени и видео. Он имеет следующие функции:
- Распознавание и классификация объектов (поиск и распознавание различных объектов на изображениях и определение того, чем они являются),
- В видео API может распознавать действия, например, «танец» или сложные действия например, «тушение пожара»
- Распознавание лиц (для обнаружения лиц и их сопоставления) и лицевой анализ (эта функция довольно интересна, она распознаёт улыбки, анализирует глаза и даже определяет эмоциональный настрой в видео)
- Распознавание недопустимых видео
- Распознавание знаменитостей на изображениях и в видео.
API для обработки изображений и видео: Microsoft Azure Cognitive Services
Vision package компании Microsoft объединяет шесть API, занимающихся различными типами анализа изображений, видео и текста.
- Computer vision распознаёт объекты, действия (например, ходьбу), рукописный и печатный текст, а также определяет преобладающие цвета на изображениях
- Content moderator распознаёт недопустимый контент на изображениях, в текстах и видео
- Face API распознаёт лица, группирует их, определяет возраст, эмоции, гендеры, позы, улыбки и волосяной покров на лицах
- Emotion API — ещё один инструмент распознавания лиц, описывающий выражения лиц
- Custom Vision Service поддерживает создание моделей распознавания лиц на основе ваших собственных данных
- Video indexer — это инструмент для поиска людей в видео, определения эмоционального настроя речи и разметки ключевых слов.
API для обработки изображений и видео: Google Cloud Services/ Cloud AutoML
Cloud vision AI. Этот инструмент предназначен для задач распознавания изображений; он достаточно мощен для нахождения специфических атрибутов изображений:
- Разметка объектов
- Распознавание лиц и анализ выражений (без распознавания и идентификации конкретных лиц)
- Нахождение опознавательных объектов и описание сцены (например, «отпуск», «свадьба» и так далее)
- Нахождение текстов на изображениях и определение языков
- Преобладающие цвета
Cloud Video AI. Этот API компании Google для распознавания видео находится на ранних этапах разработки, поэтому в нём отсутствуют многие функции, доступные в Amazon Rekognition и Microsoft Cognitive Services. В настоящий момент API предоставляет следующий инструментарий:
- Разметка объектов и определение действий
- Выявление контента с возрастными ограничениями
- Транскрибирование речи
AutoML Vision API. Также AutoML поставляется со множеством продуктов для обучения моделей, первым из которых стал AutoML Vision. Поскольку все API AutoML сейчас находятся в состоянии беты, продукт обеспечивает следующие возможности:
- Разметка объектов и сервис разметки захвата людей
- Регистрация обученных моделей в AutoML
AutoML Video Intelligence Classification API. Это предрелизный API для обработки видео, который способен классифицировать отдельные кадры видео, используя ваши собственные метки данных.
Хотя с точки зрения списка функций сервисам Google AI может недоставать некоторых возможностей, мощь Google API заключается в обширных массивах данных, к которым имеет Google.
API для обработки изображений: IBM Visual Recognition
Visual Recognition API компании IBM в настоящее время не поддерживает анализ видео, который уже есть у других поставщиков (поэтому в заголовке и отсутствует упоминание видео). А движок распознавания изображений предлагает базовый набор функций, довольно ограниченный по сравнению с тем, что предлагают другие поставщики:
- Распознавание объектов
- Распознавание лиц (API возвращает возраст и гендер)
- Распознавание пищи (по какой-то причине IBM разработала отдельную модель для пищи)
- Распознавание недопустимого контента
- Распознавание текста (эта часть API находится в состоянии закрытой беты, поэтому доступ к ней нужно запрашивать отдельно)
Разработка этого API также была прекращена, он поддерживал существующие инстансы до конца 2021. И похоже, что IBM пока не предложила никакой альтернативы. Функции Visual Recognition API частично были интегрированы в сервис Neural Network and Deep Learning.
Специфические API и инструменты
Здесь мы расскажем о специфических API и инструментах Microsoft и Google. Мы не включили в этот раздел Amazon, поскольку наборы API этой компании просто соответствуют вышеупомянутым категориям анализа текста и анализа изображений+видео. Однако часть возможностей этих специфических API также присутствует в продуктах Amazon.
Azure Bot Services. Microsoft приложила много усилий, чтобы предоставить своим пользователям инструментарий для гибкой разработки ботов. По сути, сервис содержит полнофункциональную среду для создания, тестирования и развёртывания ботов при помощи различных языков программирования.
Любопытно, что Bot Service не обязательно требует машинного обучения. Так как Microsoft предоставляет пять шаблонов для ботов (простой, форма, понимание языка, проактивный и Q&A), только тип с пониманием языка требует продвинутых техник ИИ.
В настоящее время можно использовать технологии .NET и Node.js для создания ботов при помощи Azure и развёртывать их на следующих платформах и сервисах:
- Bing
- Cortana
- Skype
- Web Chat
- Office 365 email
- GroupMe
- Facebook Messenger
- Slack
- Kik
- Telegram
- Twilio
AWS ML hardware. Недавно представленные физические продукты Amazon снабжены специальными API для программирования оборудования моделями глубокого/машинного обучения. Линейка продуктов Amazon на основе ML представлена тремя устройствами:
AWS DeepLens — это программируемая камера, которая используется для применения ML в реальном оборудовании. В данном случае вы можете использовать сервисы Amazon ML при помощи этой камеры, которая позволяет заниматься распознаванием визуальных данных и обучать на их основе модели ML.
AWS DeepRacer — ещё одно аппаратное устройство из пакета ML, которое, по сути, является автомобилем на радиоуправлении в масштабе 1/18, использующим обучение с подкреплением.
AWS Inferentia — это чип, разработанный для обработки глубокого обучения, который можно использовать для снижения затрат на вычисления. Он поддерживает TensorFlow, PyTorch и Apache MXNet.
Bing Search from Microsoft. Microsoft предлагает семь API, соединённых с базовыми функциями поиска Bing, в том числе с автозаполнением, поиском новостей, изображений и видео.
Knowledge from Microsoft. Эта группа API сочетает в себе анализ текста с широким спектром уникальных задач:
- API рекомендаций позволяет создавать системы рекомендаций для персонализации покупок
- Knowledge Exploration Service позволяет вводить на естественном языке запросы для извлечения данных из баз данных, визуализации данных и автозаполнения
- Entity Linking Intelligence API предназначен для выделения имён и фраз, обозначающих реальные сущности (например, «Великие географические открытия»), и для устранения неоднозначностей
- Academic Knowledge API выполняет автозаполнение слов, находит сходства в документах по словам и концепциям, а также ищет в документах паттерны графиков
- QnA Maker API можно использовать для сопоставления вариаций вопросов с ответами с целью создания чат-ботов и приложений служб поддержки
- Custom Decision Service — это инструмент обучения с подкреплением для персонализации и ранжирования различных типов контента (например, ссылок, рекламы и так далее) в зависимости от предпочтений пользователя
Google Cloud Talent Solution. В отличие от традиционных движков для поиска работы, использующих точные совпадения ключевых слов, Google применяет машинное обучение для нахождения релевантных связей среди сильно различающихся описаний вакансий и устранения двусмысленностей. Например, движок стремится уменьшить количество нерелевантных или слишком обширного возврата вакансий, например, всех вакансий с ключевым словом «assistant» для запроса «sales assistant». Основные функции API таковы:
- Исправление орфографических ошибок в запросах поиска работы
- Сопоставление желаемого уровня опыта
- Нахождение релевантных вакансий, содержащих варьирующиеся выражения и отраслевой жаргон (например, возврат «barista» по запросу «server» вместо «network specialist»; или «engagement specialist» по запросу «biz dev»)
- Обработка аббревиатур (например, возврат «human resources assistant» по запросу «HR»)
- Сопоставление варьирующихся описаний адресов
Watson Assistant. Платформа чат-ботов Watson (ранее называвшаяся Conversation) довольно известна среди инженеров ИИ, специализирующихся на разговорных интерфейсах. IBM предоставляет полнофункциональную инфраструктуру для создания и развёртывания ботов, способных на живой разговор с использованием анализа сущностей и намерений пользователя в сообщениях.
Инженеры могут использовать встроенную поддержку Facebook Messenger и Slack, или создать клиентское приложение для запуска бота в нём.
Четыре описанные в статье платформы предоставляют исчерпывающую документацию для экспериментов с машинным обучением и развёртывания обученных моделей в корпоративной инфраструктуре. Существует также множество других решений ML-as-a-Service, предлагаемых различными стартапами и нашедших своё признание у дата-саентистов, например, PredicSis и BigML.
Следующий шаг
В разнообразии имеющихся решений легко потеряться. Они различаются с точки зрения алгоритмов, требуемого уровня навыков и задач. Такая ситуация достаточно типична для столь юного рынка, и даже четыре рассмотренных решения не полностью конкурируют друг с другом. Кроме того, впечатляет скорость изменений. Есть большая вероятность того, что вы выберете одного поставщика, но внезапно другой неожиданно выпустит нечто, соответствующее потребностям вашего бизнеса.
Правильно будет как можно раньше сформулировать то, чего вы хотите достичь при помощи машинного обучения. Это непросто. Создать мост между data science и ценностью для бизнеса бывает сложно, если у вас нет опыта в data science или недостаточно знаний в своей предметной области. Наша компания часто сталкивается с этой проблемой при обсуждении применения машинного обучения с нашими клиентами. Обычно её можно решить, упростив всю проблему до одного атрибута. Это может быть прогнозирование цен или другого числового значения, класс объекта или разделение объектов на несколько групп. Найдя этот атрибут, вам будет проще выбрать поставщика и нужный продукт.
Сооснователь DCVC Брэдфорд Кросс заявляет, что ML-as-a-service не является жизнеспособной бизнес-моделью. По его мнению, оно заполняет пробел между дата-саентистами, которые будут использовать опенсорсные продукты, и руководством, которое будет покупать инструменты для решения задач на более высоком уровне. Однако, похоже, что отрасль сейчас преодолевает свои проблемы взросления и вскоре мы увидим, что гораздо больше компаний используют ML-as-a-service, чтобы избежать найма дорогостоящих сотрудников, в то же время получив в свои руки универсальные инструменты для работы с данными.
pilipenok
Статья/перевод была бы полезной и наглядной, если была бы актуальной. За два года с момента ее публикации (25.04.2021) многое изменилось, сервисы обновились (в том числе под другими названиями), функционал расширился.