Эта статья является частью серии статей о тенденциях 2019 года в индустрии искусственного интеллекта и машинного обучения. Вы можете прочитать мои полные мысли о прошедшем году в — — этом резюме, которое я написал для блога Helixa, которое также включает ссылки на другие подробные статьи из этой серии.

Корпоративные приложения машинного обучения объединяются в общий технологический стек, как показано на следующем рисунке.

Python доминирует на языковой арене для большинства профессиональных специалистов по данным из-за его обширного набора библиотек машинного обучения, инструментов обработки и визуализации данных, кодирования общего назначения, оболочек известных фреймворков, реализованных на более низкоуровневых и более эффективных языках, а также сложившегося сообщества разработчиков. .

Языки JVM, такие как Scala и Java, остаются популярными среди инженеров данных благодаря собственной экосистеме Map/Reduce и встроенным возможностям многопоточности.

Недавней тенденцией является Golang, который представляет собой правильный выбор для DevOps и инженеров по машинному обучению, которые ищут мало места и высокую масштабируемость, особенно для задач вывода и развертывания.

Jupyter Notebooks и связанные с ним инструменты — лучший выбор для исследовательского анализа и прототипирования. Что касается общедоступных блокнотов, которые используют общедоступные наборы данных, учебные пособия или бумажные демонстрации, Google Colab зарекомендовал себя как система репозитория по умолчанию.

Apache Spark доминирует в обработке данных и распределенных вычислениях для очень больших задач обработки данных (от ТБ до ПБ), которые требуют нескольких машин (от десятков до сотен). Другие альтернативы в настоящее время рассматриваются для тех задач обработки данных среднего размера, которые больше, чем один процессор, но не требуют кластера из десятков рабочих. Популярным выбором является Ray, разработанный RISELab в Калифорнийском университете в Беркли.

При реализации моделей глубокого обучения Tensorflow является де-факто фреймворком и экосистемой для исследовательских и производственных систем. PyTorch — вторая альтернатива фреймворкам глубокого обучения, хотя и используется больше для исследовательских целей.

Как насчет развертываний? Код, модели, задачи и службы часто поставляются внутри контейнеров Docker, которые обеспечивают воспроизводимость, разделение среды и упрощенную масштабируемость. Когда в контейнере Docker запущена служба, которая должна оставаться в рабочем состоянии, оркестратором по умолчанию является Kubernetes.

Еще одно преимущество Kubernetes — абстрагироваться от поставщика облачных услуг и сделать всю систему переносимой и независимой от инфраструктуры.

В этой связи битва облачных провайдеров, похоже, пока не имеет явного победителя. по-прежнему получает самый большой кусок пирога, а Microsoft Azure и Google Cloud не отстают, особенно для проектов машинного обучения. IBM больше подходит как гибридный поставщик услуг ИИ поверх своей облачной среды и внешних. Еще одним игроком, который выходит из Китая и Азии на другие континенты, является Алибаба, но пока мне не удалось собрать отзывы клиентов.

Для конвейеров и жизненного цикла машинного обучения существует множество платформ, упрощающих рабочий процесс и делающих его более готовым к использованию на предприятии. Компании, работающие с облачными вычислениями, обычно выбирают платформы ИИ, изначально предоставляемые этими поставщиками (см. AWS Sagemaker, Google Cloud AI Platform или Azure ML Studio). Что касается альтернатив или расширений с открытым исходным кодом, я обнаружил, что очень популярны следующие варианты: MLFlow, Kubleflow, Tensorflow TFX и HopsWorks.

Наконец, я хочу обратиться к бессерверным архитектурам. Помимо архитекторов решений, работающих на облачных провайдеров, я встречал лишь несколько компаний, внедряющих бессерверные инфраструктуры в производство. Как и любая революционная технология, потребуется некоторое время, чтобы ее приняли и интегрировали с основными устоявшимися технологиями. Миграция существующей системы в другую инфраструктуру часто является дорогостоящей и нецелесообразной в краткосрочной перспективе.

Если мы рассмотрим бессерверные приложения для научных вычислений и машинного обучения, это своего рода неизведанная территория со многими плодотворными наградами. Если вы запускаете новое приложение, я считаю, что бессерверное решение — это удобный компромисс между затратами, простотой развертывания и качеством.

Для любознательных профессионалов, ориентированных на ИИ, которые хотят ответственно внедрять инновации, Helixa извлекает сложные человеческие идеи с помощью этического и преднамеренного машинного обучения. Мы делаем это эффективнее, чем кто-либо другой, объединяя несколько источников данных, отдавая приоритет конфиденциальности потребителей и возвращая результаты за считанные секунды. Посетите www.helixa.ai, чтобы узнать больше.

Первоначально опубликовано на https://datasciencevademecum.com 17 декабря 2019 г.