фреймворк для машинного обучения
Подборка фреймворков для машинного обучения
В последние годы машинное обучение превратилось в мейнстрим небывалой силы. Эта тенденция подпитывается не только дешевизной облачных сред, но и доступностью мощнейших видеокарт, применяемых для подобных вычислений, — появилась ещё и масса фреймворков для машинного обучения. Почти все из них open source, но куда важнее то, что эти фреймворки проектируются таким образом, чтобы абстрагироваться от самых трудных частей машинного обучения, делая эти технологии более доступными широкому классу разработчиков. Под катом представлена подборка фреймворков для машинного обучения, как недавно созданных, так переработанных в уходящем году. Если у вас все хорошо с английским, то статья в оригинале доступна здесь.
Apache Spark MLlib
Apache Spark больше всего известен благодаря своей причастности к семейству Hadoop. Но этот фреймворк для обработки данных внутри памяти (in-memory) появился вне Hadoop, и до сих пор продолжает зарабатывать себе репутацию за пределами этой экосистемы. Spark превратился в привычный инструмент для машинного обучения благодаря растущей библиотеке алгоритмов, которые можно быстро применять к находящимся в памяти данным.
Spark не застыл в своём развитии, его алгоритмы постоянно расширяются и пересматриваются. В релизе 1.5 добавлено много новых алгоритмов, улучшены существующие, а также в Python усилена поддержка MLlib, основной платформы для решения математических и статистических задач. В Spark 1.6, помимо прочего, благодаря непрерывным конвейерам (persistent pipelines) появилась возможность приостановки и продолжения выполнения задач Spark ML.
Apache Singa
Фреймворки «глубинного обучения» используются для решения тяжёлых задач машинного обучения, вроде обработки естественных языков и распознавания изображений. Недавно в инкубатор Apache был принят open source-фреймворк Singa, предназначенный для облегчения тренировок моделей глубокого обучения на больших объёмах данных.
Singa обеспечивает простую программную модель для тренировки сетей на базе кластера машин, а также поддерживает многие стандартные виды тренировочных заданий: свёрточные нейронные сети, ограниченные машины Больцмана и рекуррентные нейронные сети. Модели можно тренировать синхронно (одну за другой) и асинхронно (совместно), в зависимости от того, что лучше подходит для данной проблемы. Также Singa облегчает процесс настройки кластера с помощью Apache Zookeeper.
Caffe
Caffe — фреймворк глубинного обучения. Он сделан «с расчётом на выразительность, скорость и модульность». Изначально фреймворк создавался для проектов машинного зрения, но с тех пор развился и теперь применяется и для других задач, в том числе для распознавания речи и работы с мультимедиа.
Главное преимущество Caffe — скорость. Фреймворк целиком написан на С++, поддерживает CUDA, и при необходимости умеет переключать поток обработки между процессором и видеокартой. В пакет поставки входит набор бесплатных и open source референсных моделей для стандартных задач по классификации. Также немало моделей создано сообществом пользователей Caffe.
Microsoft Azure ML Studio
Учитывая огромный объём данных и вычислительной мощности, необходимый для машинного обучения, облака являются идеальной средой для ML-приложений. Microsoft оснастила Azure собственным сервисом машинного обучения, за который можно платить только по факту использования — Azure ML Studio. Доступны версии с помесячной и почасовой оплатой, а также бесплатная (free-tier). В частности, с помощью этой системы создан проект HowOldRobot.
Azure ML Studio позволяет создавать и тренировать модели, превращать их в API для предоставления другим сервисам. На один пользовательский аккаунт может выделяться до 10 Гб места ля хранения данных, хотя можно подключить и собственное Azure-хранилище. Доступен широкий спектр алгоритмов, созданных Microsoft и сторонними компаниями. Чтобы попробовать сервис, не надо даже создавать аккаунт, достаточно войти анонимно, и можно гонять Azure ML Studio в течение восьми часов.
Amazon Machine Learning
У Amazon есть свой стандартный подход к предоставлению облачных сервисов: сначала заинтересованной аудитории предоставляется базовая функциональность, эта аудитория что-то из неё лепит, а компания выясняет, что же на самом деле нужно людям.
То же самое можно сказать и про Amazon Machine Learning. Сервис подключается к данным, хранящимся в Amazon S3, Redshift или RDS, он может выполнять двоичную классификацию, многоклассовую категоризацию, а также регрессию по указанным данным для создания модели. Однако этот сервис завязан на Amazon. Мало того, что он использует данные, лежащие в принадлежащих компании хранилищах, так ещё и модели нельзя импортировать или экспортировать, а выборки данных для тренировок не могут быть больше 100 Гб. Но всё же это хороший инструмент для начала, иллюстрирующий, что машинное обучение превращается из роскоши в практический инструмент.
Инструментарий для распределённого машинного обучения Microsoft (Microsoft Distributed Machine Learning Toolkit)
Чем больше компьютеров вы можете задействовать для решения проблемы машинного обучения, тем лучше. Но объединение большого парка машин и создание ML-приложений, которые эффективно на них выполняются, может быть непростой задачей. Фреймворк DMTK (Distributed Machine Learning Toolkit) предназначен для решения проблемы распределения различных ML-операций по кластеру систем.
DMTK считается именно фреймворком, а не полномасштабным коробочным решением, поэтому с ним идёт небольшое количество алгоритмов. Но архитектура DMTK позволяет расширять его, а также выжимать всё возможное из кластеров с ограниченными ресурсами. Например, каждый узел кластера имеет собственный кэш, что уменьшает объём обмена данными с центральным узлом, предоставляющим по запросам параметры для выполнения задач.
Google TensorFlow
Как и Microsoft DMTK, Google TensorFlow — это фреймворк машинного обучения, созданный для распределения вычислений в рамках кластера. Наряду с Google Kubernetes этот фреймворк разрабатывался для решения внутренних проблем Google, но в конце концов компания выпустила его в открытое плавание в виде open source-продукта.
TensorFlow реализует графы потоков данных (data flow graphs), когда порции данных («тензоры») могут обрабатываться серией описанных графом алгоритмов. Перемещение данных по системе называется «потоками». Графы можно собираться с помощью С++ или Python, и обрабатывать процессором или видеокартой. У Google есть долгосрочные планы по развитию TensorFlow силами сторонних разработчиков.
Инструментарий для создания вычислительных сетей Microsoft (Microsoft Computational Network Toolkit)
По горячим следам DMTK Microsoft выпустила ещё один инструментарий для машинного обучения — CNTK.
CNTK аналогичен Google TensorFlow, он позволяет создавать нейронные сети посредством ориентированных графов. Microsoft сравнивает этот фреймворк с такими продуктами, как Caffe, Theano и Torch. Его главное преимущество — скорость, особенно когда речь идёт о параллельном использовании нескольких процессоров и видеокарт. Microsoft утверждает, что использование CNTK в сочетании с GPU-кластерами на базе Azure позволяет на порядок ускорить тренировку по распознаванию речи виртуальным помощником Cortana.
Изначально CNTK разрабатывался как часть исследовательской программы по распознаванию речи и предлагался в виде open source-проекта, но с тех пор компания перевыпустила его на GitHub под гораздо более либеральной лицензией.
Veles (Samsung)
Veles — это распределённая платформа для создания приложения глубокого обучения. Как и TensorFlow и DMTK, она написана на С++, хотя для автоматизации и координации узлов используется Python. Прежде чем скармливаться кластеру выборки данных, их можно анализировать и автоматически нормализовать. REST API позволяет немедленно использовать натренированные модели в рабочих проектах (если у вас достаточно мощное оборудование).
Использование Python в Veles выходит за пределы «склеивающего кода». Например, IPython (теперь Jupyter), инструмент для визуализации и анализа данных, может выводить данные из кластера Veles. Samsung надеется, что статус open source поможет стимулировать дальнейшее развитие продукта, как и портирование под Windows и Mac OS X.
Brainstorm
Проект Brainstorm разработан аспирантами из швейцарского института IDSIA (Institute Dalle Molle for Artificial Intelligence). Он создавался «для того, чтобы сделать нейронные сети глубокого обучения быстрее, гибче и интереснее». Уже есть поддержка различных рекуррентных нейронных сетей, например, LSTM.
В Brainstorm используется Python для реализации двух «обработчиков» — API управления данными: один для процессорных вычислений с помощью библиотеки Numpy, а второй для использования видеокарт с помощью CUDA. Большая часть работы выполняется в Python-скриптах, поэтому не ожидайте роскошного фронтенд-интерфейса, если только не прикрутите что-то своё. Но у авторов есть далеко идущие планы по «извлечению уроков из более ранних open source-проектов» и использованию «новых элементов дизайна, совместимых с различными платформами и вычислительными бэкендами».
mlpack 2
Многие проекты по машинному обучению используют mlpack, написанную на С++ библиотеку, созданную в 2011 году и предназначенную для «масштабирования, ускорения и упрощения использования». Внедрить mlpack для выполнения сделанных на скорую руку операций типа «чёрный ящик» можно с помощью кэша файлов, исполняемых через командную строку, а для более сложных работ — с помощью API C++.
В mlpack 2.0 был проведён большой объём работы по рефакторингу и внедрению новых алгоритмов, переработке, ускорению и избавлению от неэффективных старых алгоритмов. Например, для нативных функций генерирования случайных чисел C++11 была исключён генератор библиотеки Boost.
Одним из давних недостатков mlpack является нехватка биндингов для любых других языков, за исключением С++. Поэтому программисты, пишущие на этих других языках, не могут использовать mlpack, пока кто-то не выкатит соответствующую обёртку. Была добавлена поддержка MATLAB, но подобные проекты больше всего выигрывают в тех случаях, когда они напрямую полезны в основных окружениях, где и используется машинное обучение.
Marvin
Ещё один относительно свежий продукт. Marvin — это фреймворк для нейронных сетей, созданный в Princeton Vision Group. В его основе всего несколько файлов, написанных на С++, и CUDA-фреймворк. Несмотря на минимализм кода, Marvin поставляется с неплохим количеством предварительно натренированных моделей, которые можно использовать с надлежащим цитированием и внедрять с помощью pull request’ов, как и код самого проекта.
Компания Nervana создаёт программно-аппаратную платформу для глубокого обучения. И в качестве open source-проекта предлагает фреймворк Neon. С помощью подключаемых модулей он может выполнять тяжёлые вычисления на процессорах, видеокартах или оборудовании, созданном Nervana.
Neon написан на Python, с несколькими кусками на С++ и ассемблере. Так что если вы делаете научную работу на Python, или используете какой-то иной фреймворк, имеющий Python-биндинги, то можете сразу же использовать Neon.
В заключение хочется сказать, что конечно же это далеко не все популярные фреймворки. Наверняка в ваших закромах водится дюжина любимых инструментов. Не стесняйтесь, делитесь своими находками в комментариях к данной статье.
Сравнение фреймворков для глубокого обучения: TensorFlow, PyTorch, Keras, MXNet, Microsoft Cognitive Toolkit, Caffe, etc
Всем привет. В этот пятничный день делимся с вами первой публикацией посвященной запуску курса «Data Scientist». Приятного прочтения.
Великое множество организаций загорелось идеей использовать в своих решениях искусственный интеллект для расширения масштабов деятельности или развития своего старт-апа, однако нужно понимать одну важную вещь: выбранная технология разработки должна идти вкупе с хорошим фреймворком для глубокого обучения, особенно потому, что каждый фреймворк служит для какой-то своей отдельной цели. Поиск идеального тандема в этом случае – это необходимое условие для плавного и быстрого развития бизнеса и успешного развертывания проектов.
Следующий список фреймворков для глубокого обучения может стать подспорьем в процессе выбора подходящего средства для решения конкретных задач, с которыми вы сталкиваетесь в процессе работы над проектом. Вы сможете сравнить плюсы и минусы различных решений, оценить их пределы возможностей и узнать о лучших вариантах использования для каждого решения!
Созданная Google и написанная на Python и C++, TensorFlow является одной из лучших открытых библиотек для численных вычислений. Она просто обязана быть хорошей, поскольку даже такие гиганты как DeepMind, Uber, AirBnB или Dropbox выбрали этот фреймворк для своих нужд.
TensorFlow хороша для сложных проектов, таких как создание многослойных нейронных сетей. Она используется для распознавания голоса или картинок и приложений для работы с текстом, таких как Google Translate, например.
Конечно же, эксперты назвали множество ее плюсов:
Она проигрывает по скорости работы в эталонных тестах, в сравнении с CNTK и MXNet, например;
Она имеет более высокий входной порог для начинающих, чем PyTorch или Keras. Голая Tensorflow достаточно низкоуровневая и требует много шаблонного кода, и режим «определить и запустить» для Tensorflow значительно усложняет процесс дебага.
Есть и еще одно значительное ограничение: единственный полностью поддерживаемый язык – Python.
PyTorch является преемником Python для библиотеки Torch, написанной на Lua, и большим конкурентом TensorFlow. Он был разработан Facebook и использовался Twitter, Salesforce, Оксфордским Университетом и многими другими компаниями.
PyTorch используется в основном, чтобы обучать модели быстро и эффективно, поэтому это выбор большого количества разработчиков.
У него есть множество важных преимуществ:
Но есть у этого фреймворка и несколько неоспоримых минусов:
Keras – это минималистичная библиотека, основанная на Python, которая может запускаться поверх TensoFlow, Theano или CNTK. Она была разработана инженером компании Google, Франсуа Шолле, в целях ускорения экспериментов. Keras поддерживает широкий спектр слоев нейронных сетей, таких как сверточные слои, рекуррентные или плотные.
Этот фреймворк хорош в кейсах для перевода, распознавании изображений, речи и т.п.
Это фреймворк для глубокого обучения созданный Apache, который поддерживает изобилие языков, например, Python, Julia, C++, R или JavaScript. Он применяется в Microsoft, Intel и веб-сервисах Amazon.
Фреймворк MXNet известен своей высокой масштабируемостью, поэтому он используется большими компаниями в основном для распознавания речи и почерка, NLP и прогнозирования.
У него есть множество преимуществ:
Сейчас этот фреймворк называется Microsoft Cognitive Toolkit. Он представляет из себя открытый фреймворк для глубокого обучения, созданный для работы с действительно большими датасетами с поддержкой Python, C++, C# и Java.
CNTK обеспечивает эффективное обучение моделей для распознавания голоса, рукописного текста и картинок, также поддерживает CNN и RNN. Она используется в Skype, Xbox и Cortana.
Как и всегда эксперты уже оценили его преимущества:
Caffe – это фреймворк, реализованный на C++, который имеет очень годный интерфейс Python. Он поддерживает CNN и сети прямого распространения, а также хорош для тренировки моделей (без написания лишних строк кода), обработке картинок и усовершенствования существующих нейронных сетей. С другой стороны, он не так хорошо задокументирован и его сложно компилировать. Об использовании Caffe какими-либо крупными компаниями сведений пока нет. В 2017 году компания Facebook выпустила Caffe 2, который стал настоящим преемником Caffe, и был создан как для мобильных, так и крупномасштабных разработок в производственной среде.
Этот фреймворк хорош по нескольким причинам:
Если ваш основной язык программирования Java, то вам стоит обязательно взглянуть поближе на DL4J. Это коммерческая платформа с открытым исходным кодом, написанная в основном для Java и Scala, которая предоставляет хорошую поддержку различных типов нейронных сетей (таких как CNN, RNN, RNTN, или LTSM).
Этот фреймворк будет хорошим выбором, поскольку он имеет большой потенциал в области распознавания изображений, обработки естественного языка, поиске уязвимостей и анализе текста.
Еще один фреймворк на Python для глубокого обучения, поддерживаемый такими гигантами, как Intel, IBM, NVIDIA и AWS. Он может с легкостью задействовать несколько GPU.
Chainer используется в основном для распознавания голоса, машинного перевода и анализа тональности. Он поддерживает различные архитектуры сетей, как например CNN, fast-forward, RNN и имеет несколько важных преимуществ перед своими конкурентами:
Выбрать лучший фреймворк для проекта с глубоким обучением может быть крайне сложно. Вам необходимо учитывать следующий факторы:
Пишите комментарии и до встречи на дне открытых дверей, который уже 19 марта проведет Александр Никитин.
7 фреймворков автоматического машинного обучения
Чем интересны системы автоматического машинного обучения? Какие фреймворки годятся для AutoML? В чем пока есть ограничения? Отвечаем в статье.
Концепция автоматического машинного обучения
Пусть имеется набор данных, по которому мы хотим получить предсказательную модель. Традиционный подход машинного обучения требует выполнить такую последовательность действий:
Процесс может оказаться долгим, а значит, дорогим. Ведь для лучшего результата необходимо многократно проверить гипотезу, которая, к тому же, на каждом шаге может уточняться.
Задача автоматического машинного обучения (AutoML) – автоматизировать все или хотя бы некоторые из перечисленных этапов без потери предсказательной точности. Идеальная стратегия AutoML предполагает, что любой пользователь может взять «сырые» данные, построить на них модель, и получить предсказания с лучшей возможной (для имеющейся выборки) точностью.
Но не значит ли это, что наступит день, когда отпадет необходимость в специалистах по анализу данных? Конечно, нет. Технологии AutoML направлены на избавление от рутинной последовательности операций и ручного перебора моделей. Чтобы специалисты могли больше времени уделять творческой стороне вопроса.
Рассмотрим описанный выше «конвейер» машинного обучения. Каждый этап требует своего подхода. Например, для подготовки данных бывает необходимо автоматизировать:
Особое внимание уделяется процессу нахождения лучших гиперпараметров модели. Два наиболее распространенных метода их нахождения:
Очевидно, что популярность этих методов объясняется простотой реализации. Оба метода оправданы лишь для малого числа гиперпараметров. Для оптимизации параметров используются и другие алгоритмы: байесовской оптимизации, имитации отжига, эволюционные алгоритмы и др. Рассмотрим подробнее фреймворки, позволяющие найти подходящую модель и настроить ее параметры.
Фреймворки автоматического машинного обучения
1. MLBox
Фреймворк MLBox успел хорошо зарекомендовать себя на Kaggle. Так, на соревновании Two Sigma Connect: Rental Listing Inquiries применявшие MLBox участники смогли попасть в верхние 5% рейтинга. MLBox решает следующие задачи:
Из недостатков отметим, что на Linux систему установить гораздо проще, чем на Mac или Windows.
2. Auto Sklearn
Как следует из названия, фреймворк Auto Sklearn построен на базе популярной библиотеки машинного обучения scikit-learn. Что умеет Auto Sklearn:
Auto Sklearn хорошо справляется с небольшими наборами данных, но не «переваривает» крупные датасеты.
3. TPOT
TPOT позиционируется как фреймворк, в котором конвейер машинного обучения автоматизирован целиком. Для нахождения оптимальной модели используется генетический алгоритм. Строится множество различных моделей с выбором лучшей по предсказательной точности. Так же, как и Auto Sklearn, этот фреймворк представляет собой надстройку над scikit-learn. Зато у TPOT имеются собственные алгоритмы регрессии и классификации. К недостаткам относится неумение TPOT взаимодействовать с естественным языком и категориальными строками.
4. H2O
H2O AutoML поддерживает работу как с традиционными моделями машинного обучения, так и с нейросетями. Особенно подойдет тем, кто ищет способ автоматизации глубокого обучения.
5. Auto Keras
Auto Keras следует дизайну классического scikit-learn API, но использует мощный нейросетевой поиск параметров модели с помощью Keras.
6. Google Cloud AutoML
Cloud AutoML использует нейросетевую архитектуру. У этого продукта Google простой пользовательский интерфейс для обучения и разворачивания моделей. Однако платформа платна, и в долговременной перспективе ее имеет смысл применять лишь в коммерческих проектах. С другой стороны, в течение года Cloud AutoML с ограничениями доступен бесплатно для исследовательских целей.
7. Uber Ludwig
Цель проекта Uber Ludwig – автоматизировать процесс глубокого обучения с минимальным количеством кода. Этот фреймворк работает только с моделями глубокого обучения, игнорируя прочие модели ML. И, конечно, как это обычно бывает с Deep Learning, существенную роль играет количество данных.
Текущие ограничения автоматического машинного обучения
Итак, AutoML уже довольно хорошо справляется с обучением с учителем, то есть с качественно размеченными данными. Но пока не умеет решать задачи обучения без учителя или с подкреплением. Последнее вызывает сложности для воплощения таких сценариев, как искусственный интеллект робота, находящегося в настоящем мире или соперника в игре.
Редким примером удачной реализации автоматического обучения с подкреплением является AlphaZero, разработанная компанией DeepMind. На ее примере была показана возможность улучшения качества игры в Го при тренировках, в которых искусственный интеллект соревновался с самим собой.
Технологии AutoML также пока имеют трудности в обработке сложных сырых данных и оптимизации процесса конструирования новых признаков (feature engineering). По этой причине выбор значимых признаков остается одним из краеугольных камней процесса обучения модели.
Однако во всех перечисленных областях наблюдается прогресс, который ускоряется с увеличением числа конкурсов по AutoML.
Лучшие фреймворки для ИИ и машинного обучения в веб-разработке
Конкуренция на технологическом рынке чрезвычайно высока, и компании стремятся получить преимущество с помощью веб-дизайна и разработки.
Чтобы веб-приложение для бизнеса было современным и конкурентоспособным, при его создании необходимо правильно оценить конкуренцию и тренды онлайн-коммуникации. Но перед тем как вы начнёте, позвольте мне рассказать о роли, которую играет искусственный интеллект в веб-разработке, а также представить несколько самых популярных в 2020 году фреймворков для ИИ и машинного обучения.
Значение ИИ и машинного обучения в веб-разработке
Искусственный интеллект и машинное обучение — популярные технологии, которые позволяют веб-приложениям обучаться, наблюдая за поведением и предпочтениями пользователей.
Сейчас очень модно делать веб-приложения с ИИ-компонентом. Одна из причин их популярности в том, что ИИ использует генетические алгоритмы и нейросети и встраивает искусственный интеллект в приложения буквально с нуля. Внедрение таких технологий несложное и доступно сейчас большинству компаний.
Зачем включать ИИ и машинное обучение в процесс веб-разработки?
Они радуют службу поддержки
Установка на сайт чат-бота с ИИ в целом улучшит работу клиентской поддержки и позволит обслуживать клиентов гораздо эффективнее.
Речь чат-бота естественная, он распознаёт эмоции и может найти ответы на самые сложные вопросы, даже если они не связаны с вашим продуктом, услугой или индустрией. Если вы хотите обеспечить своему бизнесу рост и перевести его на новый уровень, обязательно внедрите чат-бот.
Примеры чат-ботов:
“Eno” от Capital One. Capital One — это финансовая организация, которая предлагает соответствующие продукты и исследования. Их чат-бот Eno помогает клиентам разбираться с транзакциями, балансом счетов, а также анализировать расходы.
Виртуальный медицинский ассистент от MedWhat. Чат-бот MedWhat задействует машинное обучение: он быстро отвечает на вопросы пользователей, исходя из ранее полученных знаний об их поведении. С помощью этого чат-бота коммуникация между врачом и пациентом, а также постановка диагноза становятся проще, быстрее и прозрачнее.
“Dom” от Domino’s. Этот интерактивный пицца-бот позволяет делать заказы на сайте Domino’s. Чат-бот показывает меню, отслеживает доставку и может предложить заказать что-то вновь на основе анализа предыдущих заказов.
Они помогают кардинально улучшить пользовательский опыт (UX)
ИИ и машинное обучение помогают разобраться в предпочтениях пользователей. С помощью ИИ-компонента на сайте можно анализировать паттерны поведения, историю поиска и даже геолокацию. Благодаря этому можно создать или доработать сайт так, чтобы он отвечал потребностям пользователей. Для этих же целей вы также можете усовершенствовать интерфейс.
Внедрение ИИ в сайт онлайн-магазина сделает его более персонализированным и создаст у покупателей ощущение, будто всё сделано специально для них. ИИ и машинное обучение на сайте имитируют атмосферу реального мира и этим побуждают пользователя совершить покупку.
Возьмём, к примеру, Amazon. Это одна из крупнейших площадок для онлайн-торговли, на которой используется ИИ для составления рекомендаций. ИИ помогает компании анализировать предпочтения пользователей — это также основано на данных, ранее собранных ИИ-движком Amazon.
Они предоставляют быстрый доступ к информации
Поскольку голосовой поиск становится всё более популярным, владельцы бизнеса ищут возможности внедрить такой функционал на свой сайт. Голосовые помощники Google Assistant, Siri, Cortana позволяют пользователям быстро находить информацию.
Представьте, что вы — онлайн-магазин одежды. Внедрив голосовой поиск, вы поможете покупателям искать нужные им товары с полными характеристиками — ценой, типом ткани, размером, цветом, длиной.
Они оптимизируют маркетинговую стратегию
Маркетологи используют ИИ и машинное обучение для принятия важных маркетинговых решений и построения прогнозов, основанных на спросе.
Технологии анализируют поведение пользователя, выясняя, какие товары ему нравятся, и другие его предпочтения. Эти данные помогают маркетологам определить, что следует изменить, чтобы повысить уровень продаж и конверсии.
Потенциал ИИ и машинного обучения в веб-разработке не обошли вниманием и такие гиганты, как Google, Facebook, IBM и Microsoft. Все они разработали ИИ-инструменты и API для внедрения машинного обучения и функций распознавания естественного языка в современные веб-приложения.
Внедрение ИИ в ваш веб-сайт — однозначно осуществимая задача.
ТОП-5 фреймворков ИИ и машинного обучения для веб-разработки
В конечном итоге важно то, насколько эффективно владельцы бизнеса внедряют ИИ в процесс веб-разработки.
Чтобы помочь вам с выбором, я покажу 5 инновационных фреймворков для ИИ и машинного обучения, на которые стоит обратить внимание в 2020 году.
TensorFlow
Краткая справка:
Разработчик: Google Brain Team
Время создания: ноябрь 2015 года
Языки: C++, Python, CUDA
Платформы: Linux, macOS, Microsoft Windows, Android, Node.js
Последняя версия: 2.2.0 / 6 мая 2020 года
Архитектура: гибкая для кросс-платформенной разработки
Ещё со времён своего появления в 2015 году TensorFlow остаётся любимчиком разработчиков среди фреймворков для машинного обучения. Всё потому, что создатели фреймворка, Google Brain Team, спроектировали его таким образом, что он позволяет разработчикам сходу использовать машинное обучение для числовых расчётов в JavaScript или Node.
Также с помощью этого фреймворка можно создавать веб-приложения с использованием JavaScript и его модулей, распознающих ключевые аспекты функциональности различных предметов и взаимодействий реального мира.
TensorFlow привносит во фронтенд технологии ИИ и машинного обучения и имитирует для пользователя взаимодействие с реальностью в реальном времени прямо в браузере.
Крупные и малые компании используют фреймворк для такой трансформации процесса веб-разработки, чтобы конечные пользователи по максимуму могли использовать возможности машинного обучения и прогнозного анализа ИИ.
Построение моделей оказывает огромное влияние на процесс веб-разработки. В TensorFlow используются многочисленные абстракции и мощные библиотеки для построения и обучения моделей и последующего создания многокомпонентных технологий.
В результате получается код более высокого порядка, который проще читать, писать, отлаживать и с которым легче работать. Кроме того, в TensorFlow используется высокоуровневый Keras API, который не только делает код чище, но и позволяет сократить его длину при создании моделей.
Как только модели созданы, можно применить распределённые методы TensorFlow для сокращения времени обучения нейросетей на серверах. Смысл в том, что вы можете проводить множество экспериментов на разных серверах. TensorFlow полностью контролирует сервера и позволяет разработчикам экспериментировать с кодом, появляющимся при любой операции в нейросети.
Такой функционал позволит с лёгкостью начать использовать TensorFlow.
Apache Mahout
Краткая справка:
Разработчик: Apache Software Foundation
Время создания: апрель 2008 года
Языки: Java, Scala
Последняя версия: 0.14.0 / 6 марта 2019 года
Платформы: Apache Hadoop, Apache Spark, Apache Flink, Scala+
Архитектура: гибкая для кросс-платформенной разработки
Apache Software Foundation совместно с группой разработчиков создали Apache Mahout. Это фреймворк для машинного обучения с открытым исходным кодом, позволяющий создавать масштабные веб-приложения. Такие приложения исполняют различные математические алгоритмы для специалистов по статистике и анализу данных.
Профессиональные веб-разработчики рекомендуют фреймворк к использованию в 2020 году, так как он повышает производительность приложений с помощью распределенных структур линейной алгебры и математически выразительного, подобного R доменно-специфичного языка Scala для распределённых алгоритмов. Дополнительные плюсы — масштабируемость, простота и скорость.
Для построения масштабируемых управляемых и неуправляемых облачных систем машинного обучения Mahout использует библиотеку Apache Hadoop. Также Mahout можно использовать при создании движков с рекомендованными функциями для выполнения операций классификации, группировки и анализа больших объёмов данных.
Есть реализации Apache Mahout для кластеризации с алгоритмами K-Means, Canopy, Spectral, Dirichlet, Fuzzy K-Means и Streaming K-Means. Кластеризация позволяет организовывать элементы в отдельные группы на основе сходства между ними.
Поэтому веб-приложения, где используется Mahout, могут разделять пользователей на группы по покупательскому поведению, классификации и группировкам товаров.
Microsoft Cognitive Toolkit
Краткая справка:
Разработчик: Microsoft Research
Время создания: 2016 год
Языки: C++, Python
Последняя версия: 2.7.0 / 26 апреля 2019 года
Платформы: Windows, Linux
Архитектура: поддерживает глубокие нейронные сети с прямыми связями, а также свёрточные и рекуррентные сети
Microsoft Cognitive Toolkit — ещё один фреймворк для глубокого обучения с открытым исходным кодом. Его можно встраивать в веб-приложения через высоко- и низкоуровневые API для создания нейросетей. Он передаёт информацию приложению через API-оптимизаторы и предлагает множество компонентов для измерения производительности нейросетей.
Если стоит задача создать быстрое приложение, то этот фреймворк для глубокого обучения — идеальный вариант. Благодаря его функциональности, масштабируемости и скорости громоздкие решения останутся в прошлом. Приложения на основе CNTK отлично справляются с распознаванием изображения, голоса, рукописного текста.
Фреймворк поддерживает свёрточные (CNN) и рекуррентные (RNN/LSTM) нейронные сети. CNTK — расширяемая библиотека, её можно использовать в программах на Python, C# и C++, а также в качестве инструмента машинного обучения через его собственный язык описания моделей (BrainScript).
Кроме того, фреймворк может похвастаться версиями для 64-битных Windows и Linux, их можно загрузить либо из скомпилированных пакетов бинарных модулей, либо из библиотеки на GitHub.
Поддержка фреймворком формата ONNX (Открытая библиотека ПО для построения нейронных сетей глубокого обучения) оказывает огромное влияние на процесс веб-разработки с использованием ИИ и машинного обучения. Он использует ИИ-модели со множеством фреймворков, инструментов, сред выполнения и компиляторов. Поэтому CNTK — один из лучших фреймворков для распознавания речи, прогнозного анализа и интерпретации больших наборов неструктурированных данных.
Многие крупные технологические компании используют CNTK в разработке из-за его возможностей в указанных областях.
Caffe2
Краткая справка:
Разработчик: Berkeley Vision and Learning Center
Время создания: 2017 год
Языки: C++, Python
Последняя версия: 1.0 / 18 апреля 2017 года
Платформы: Linux, macOS, Windows
Архитектура: выразительная, допускающая инновации в разработке
Это идеальный фреймворк глубокого обучения для тех, кто считает, что большое кроется в малом. На Caffe2 стоит обратить внимание, если нужен гибкий фреймворк. За это, а также за простоту расширения его и любят разработчики.
Фреймворк повышает производительность приложения за счёт расширяемого кода. А самое лучшее здесь то, что разработчикам надо всего лишь знать основы исходника на C++.
У Caffe2 есть привязки к Python и MATLAB. Код приложения не станет более громоздким, ведь фреймворк поддерживает последние стандарты кода и моделей. Для сценариев, предполагающих веб-разработку и исследовательские эксперименты, есть готовые сети Caffe2 Model Zoo.
Одно из главных преимуществ фреймворка — скорость: он может обрабатывать более 60 миллионов изображений в сутки с помощью одной лишь Nvidia K40 GPU.
Различные компании используют Caffe2 для создания приложений с функциями сегментации и классификации изображений. Caffe2 ускоряет процесс разработки главным образом благодаря использованию свёрточных нейросетей.
Кроме того, если использовать Caffe2 Model Zoo с набором готовых моделей, разработка может обойтись и вовсе без кода.
Apache Singa
Краткая справка:
Разработчик: Apache Software Foundation
Время создания: сентябрь 2015 года
Языки: C++, Python, Java
Последняя версия: 3.0.0 / 20 апреля 2020 года
Платформы: Linux, macOS, Windows
Архитектура: логическая система для поддержки фреймворков распределённого обучения
Последний в списке, но не менее важный — популярный в веб-разработке фреймворк для глубокого обучения Apache Singa. Он довольно универсален, поэтому разработчики могут с его помощью создавать приложения для разных сфер бизнеса. У него есть несколько преимуществ, причём не только для разработчиков приложений, но и для их владельцев.
У Apache Singa множество свойств, в том числе гибкая архитектура для распределённого обучения, и три основных компонента:
Сейчас команда Apache Singa работает над версиями SINGA-lite и SINGA-easy, чтобы сделать ИИ и глубокое обучение более доступными и простыми для разработчиков.
Если вы ищете очень популярный, безопасный, быстрый и гибкий фреймворк для создания моделей глубокого обучения, то Apache Singa — то, что нужно в 2020 году.
В настоящее время системы SINGA применяются в здравоохранении для анализа электронных медицинских карт. Компании из других областей также используют SINGA при создании приложений для разных типов данных.
Заключение
Вероятно, вы уже слышали о применении этих фреймворков для ИИ и машинного обучения в веб-разработке. Безусловно, есть и другие, но, по моим подсчётам, эти 5 будут лидерами в 2020-м.
Вы можете использовать эти фреймворки для создания потрясающих веб-приложений, с помощью которых охватите пользователей по всему миру. Это увеличит вашу клиентскую базу и в конечном итоге приведёт ваш бизнес к успеху.
Если вам нужны такие сервисы, но у вас нет ресурсов, чтобы внедрить их самостоятельно, найдите компанию, которая адаптирует разработку под ваши требования.