Много ли надо, чтобы сделать стартап с использованием больших данных и ИИ?
Предположим, вы хотите создать приложение, которое будет что-то предсказывать, рекомендовать, распознавать изображения или голос, понимать текст на естественном языке… Для этого вам понадобятся знания машинного обучения, в том числе его сложных и продвинутых разделов, таких как глубокое обучение, большие обучающие выборки и сложные алгоритмы, серверы для получения и обработки данных от пользователей, средства хранения и обработки больших данных. Звучит слишком сложно? Если у вас нет диплома Стенфордского университета, вы не готовы нанимать команду data scientist’ов и разворачивать кластеры Hadoop, но у вас есть хорошая бизнес-идея, существует более простое и менее затратное решение – использовать API машинного обучения и искусственного интеллекта.
К счастью, многие задачи машинного обучения достаточно стандартны и возникают во многих областях. Например, распознавание эмоций по фотографиям. С помощью распознавания эмоций можно решать множество задач: отслеживать уснувших или отвлекающихся учеников в классе, тестировать рекламные ролики по эмоциональной реакции на них фокус-группы, выявлять подозрительное поведение покупателей в магазине для борьбы с воровством, определять, как лучше общаться с клиентом или кандидатом при приеме на работу, персонализировать внешний вид приложений. Задача распознавания эмоций, как и многие другие, уже решена на достаточно хорошем уровне. Только для одной этой задачи доступно более 20 API-сервисов: Emotient, Affectiva, EmoVu, Nviso, Kairos Emotion Analysis API, Microsoft Project Oxford, Noldus Face Reader API, Sightcorp F.A.C.E., SkyBiometry, Face++ и многие другие. Общее количество API-сервисов машинного обучения и ИИ подсчитать трудно, они появляются как грибы после дождя, при этом очень многие из них обладают высоким качеством распознавания/предсказания. Так что для любой стандартной задачи машинного обучения вы легко сможете найти подходящий API. Вместо того, чтобы каждый раз изобретать велосипед, можно использовать в своих проектах уже готовые сервисы вместе со всей необходимой инфраструктурой.
Существующие API машинного обучения и искусственного можно разделить на основные группы. Первая – это сервисы-гиганты, включающие в себя целые пакеты API для решения различных задач. Такие сервисы также предоставляют инфраструктуру хранения и предобработки данных, постоянно работающие серверы для обработки поступающих данных и формирования ответов режиме онлайн, обладают удобными и интуитивно понятными интерфейсами для построения моделей и оценки их качества, для визуализации данных, структуры моделей и полученных результатов. К этой группе относятся решения от крупнейших компаний: Amazon Machine Learning, Microsoft Azure Machine Learning и Microsoft Cognitive Services, Google Cloud Prediction API и Google Cloud Machine Learning, IBM Watson Cloud и AlchemyAPI, BigML и другие. Безусловными преимуществами таких сервисов являются доступ к высокопроизводительным вычислительным машинам, серверам и инфраструктуре для работы с большими данными, высокое качество документации и наличие готовых библиотек для работы с API из различных языков программирования.
Многие из этих сервисов, например, Amazon Machine Learning, Azure Machine Learning и BigML, делают акцент на простое и интуитивно понятное использование: от пользователя не требуется знания алгоритмов машинного обучения и предобработки данных, он получит все необходимые подсказки и пояснения, визуализации, все будет сделано за него. При этом эти сервисы используют достаточно простые алгоритмы бинарной и мультиклассовой классификации и регрессии, которые можно легко реализовать с помощью библиотек Python и пакетов R и которые не требуют больших вычислительных мощностей. Применяемые алгоритмы часто недостаточно гибкие, однако все равно способны давать очень хорошие результаты, например, при их применении к заданиям Kaggle. Эти сервисы при построении моделей перебирают не все возможные варианты алгоритмов. Например, BigML делает акцент на деревьях решений, а Amazon Machine Learning использует только классификаторы на основе стохастического градиентного спуска, оставляя за рамками рассмотрения случайные леса и другие алгоритмы. Такие решения можно отнести к категории «машинное обучение для чайников» — они полезны для разработчиков и аналитиков, которые хотят получить постоянно работающий сервис и инфраструктуру работы с большими данными и при этом, возможно, не имеют достаточных знаний в области машинного обучения. Сервисы этой группы предоставляют собственные хранилища данных, если данные слишком велики для загрузки, они автоматически строят необходимые статистические агрегаты. Ряд сервисов позволяет подключать сторонние сервисы и источники данных, в том числе Hadoop и Spark, интегрировать скрипты на R и Python (например, Azure Machine Learning), что делает их более гибкими и позволяет использовать их для более широкого круга задач.
Остальная часть крупнейших пакетов API машинного обучения и ИИ позволяет использовать достаточно сложные для самостоятельной реализации модели и алгоритмы, основанные на глубоком обучении, связанные преимущественно с обработкой изображений и естественных языков. Задачи глубокого обучения часто достаточно сложны, требуют продвинутых теоретических знаний и значительных вычислительных мощностей для обучения и использования моделей. В данном случае использование API оказывается особенно целесообразным даже для тех, кто хорошо знаком с машинным обучением. Спектр возможностей таких API-сервисов очень широкий. Например, возможности Microsoft Cognitive Services в области анализа видео и изображений включают: описание изображения (кто или что на нем изображено и что происходит), категоризацию, определение типа (фото или рисунок), выявление контента для взрослых, определение доминирующих цветов, поиск на фотографиях определенных людей, например, знаменитостей, логотипов и предметов, анализ происходящего на видео практически в реальном времени, распознавание текста на изображениях, генерацию миниатюр, выявление и отслеживание движений. Выявление лиц, определение пола, возраста, позы, наличия очков, бороды и других черт внешности для людей на фото и видео, верификацию по фото (сравнение снимка из базы и снимка с камеры), группировку фото одних и тех же людей, стабилизацию нечетких видео, создание миниатюр кадров. Возможности этого сервиса в области анализа речи и естественного языка пока ограничиваются английским языком, однако многие другие сервисы поддерживают русский язык, например, полностью бесплатный wit.ai, приобретённый Facebook, и его российский конкурент api.ai (понимание текстовых и голосовых команд и вопросов на естественных языках, преобразование речи в текст), IBM AlchemyAPI (анализ тональности текста, выявление сущностей и ключевых слов), Google Natural Language API (классификация текстов, графы связей, извлечение информации из текстов, анализ тональности, намерений, извлечение инсайтов; поддерживает русский язык с помощью технологии машинного перевода Google Translate, использует глубокое обучение и word2vec). Список доступных API постоянно пополняется, некоторые сервисы предоставляют очень интересные и не представленные в других пакетах инструменты. Например, IBM Watson предлагает инструмент Personality Insights, позволяющий определять черты личности человека, его потребности и ценности, намерения и другие характеристики по его записям в Твиттере, социальных сетях или по другим текстовым источникам. Русский язык, к сожалению, пока не поддерживается.
Помимо рассмотренных выше крупнейших пакетных API-сервисов существует множество API машинного обучения и искусственного интеллекта, направленных на решение отдельных задач. Например, Diffbot позволяет автоматически сканировать страницы сайтов, извлекать из них нужную информацию: тексты, изображения, видео, информацию о продуктах, комментарии и др., в очищенном в структурированном виде, а также позволяет классифицировать страницы. При этом используются широкий спектр технологий: анализ структуры страниц, машинное обучение, искусственный интеллект, обработка естественных языков и машинное зрение. На сайте сервиса доступно более 35 библиотек для работы с его API из разных языков программирования. Restb предоставляет API для решения широкого класса задач компьютерного зрения, в том числе в области диагностики заболеваний, фильтрации контента, биологических исследований, определения марки, года выпуска и типа отделки салона автомобилей. Сервис clarifai позволяет формировать набор тегов для изображений и видео. Deepomatic умеет классифицировать изображения, а также позволяет создавать чат-ботов с функциями распознавания изображений и визуального поиска. Например, вы можете сфотографироваться в примерочной магазина в одежде, которую вы там выбрали, и чат-бот автоматически подберет другие модели из ассортимента, которые с этой одеждой удачно сочетаются. Решения, основанные на Deepomatic, позволяют находить информацию о фильме по его постеру, информацию о картине или скульптуре на выставке по ее фото, сделанному на камеру телефона, позволяют скачивать музыку, сфотографировав обложку альбома на диске и т.п.
На основе API машинного обучения и искусственного интеллекта было создано множество коммерчески успешных продуктов. Например, Ford использует Google Prediction API для предсказания маршрута, который выберет водитель, ориентируясь на время, скорость, график поездки и историю типичных для данного водителя маршрутов, для оптимизации расхода топлива. Приложение LifeLearn Sofie использует сервисы IBM Watson и помогает ветеринарам определить заболевание и схему лечения, сканируя коллекции медицинской литературы на основе результатов осмотра. Информация передается приложению на естественном языке через распознавание речи. В ветеринарии использование таких приложений особенно важно, так как пациенты не могут выразить свои симптомы, у ветеринаров часто нет времени на изучение медицинских книг и журналов, и иногда приходится работать с породами и видами животных, с которыми ветеринар ранее не сталкивался. Компания vRad успешно применяет глубокое обучение через API сервиса MetaMind, который теперь является частью модуля CRM системы Salesforce Salesforce Einstein, для повышения скорости и точности выявления опасных для жизни пациентов аномалий, прежде всего, кровоизлияний в мозг.
Примеров успешного применения API машинного обучения и ИИ в бизнесе, в разработке приложений и создании стартапов, конечно, значительно больше, так что ничто не мешает вам реализовать свои бизнес идеи, даже если вы пока не владеете всеми необходимыми технологиями, и заработать на их реализации. При небольшом ежемесячном числе запросов (несколько тысяч) большинство рассмотренных сервисов можно использовать бесплатно, так что у вас есть возможность все попробовать на практике и протестировать при разработке. Далее оплата будет зависеть только от реально используемых мощностей (платите только за то, что используете), при этом тарифы за пользование сервисами, особенно на начальных этапах, когда пользователей у вашего приложения еще немного, будут нулевыми или совсем небольшими. Никаких крупных первоначальных вложений не требуется, так что затраты могут быстро окупиться. Так что, если у вас есть бизнес-идея, предполагающая использование машинного обучения и искусственного интеллекта, использование API – отличная возможность ее реализовать!