«Возможности из облака»

15 декабря 2020 года компания Data Science Milan организовала веб-встречу с Джанмарио Спаканья и Люком Миулетом, на которой они рассказали о сквозной системной платформе Helixa Machine Learning.

«Архитектура бессерверного машинного обучения и методы разработки в Helixa», Джанмарио Спаканья, главный научный сотрудник Helixa, и Люк Миулет, инженер по машинному обучению в Helixa

Выступление было разделено на три части: 1) бессерверные сервисы, доступные в AWS; 2) платформа машинного обучения Helixa; 3) Сопоставить/уменьшить бессерверную архитектуру.

Джанмарио начал знакомить с концепцией безсерверных услуг и обзором бессерверных сервисов, доступных в AWS.

Традиционно, когда мы хотим создать и развернуть веб-приложение, мы отвечаем за код и за управление ресурсами сервера, на котором оно работает. При бессерверных вычислениях код отправляется облачному провайдеру (AWS, Azure или Google Cloud), который отвечает за выполнение кода путем динамического распределения ресурсов. Бессерверная архитектура — это архитектура облачных систем, которая включает серверы в работающее приложение, но их присутствие абстрагируется от специалиста по данным или инженера по машинному обучению, поскольку ими управляет поставщик облачных услуг.

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

Примером бессерверных вычислений является AWS lambda, который позволяет запускать код без необходимости выделять серверы или управлять ими. Другие сервисы, доступные в облаке AWS, — это AWS Fargate, бессерверный вычислительный движок для контейнеров, Amazon Athena, сервис запросов с SQL, функции AWS Step, бессерверный оркестратор функций, который упрощает включение функций AWS Lambda и нескольких сервисов AWS в бизнес-приложения. , и много других.

Итак, по какой причине Helixa решила использовать AWS для своей платформы?

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

Джанмарио рассказал об архитектуре Helixa, начиная с приема данных для запуска нескольких наборов данных и заполнения озера данных. Существуют конвейеры машинного обучения, которые взаимодействуют с озером данных и облачными службами машинного обучения. В Helixa используются предварительно обученные модели, внешние API для отображения геолокации и библиотеки ML, в основном на Python. Модели, созданные в конвейерах, хранятся в репозитории, реализуемом потоком машинного обучения, и развертываются либо в пакетных заданиях, либо в микросервисах. Результатом этих конвейеров являются базы данных, основанные на аналитических приложениях.

Люк рассказал о том, как машинное обучение интегрируется в широкую платформу Helixa, начиная с хранилища данных, а точнее об озере данных (House), новой парадигме обработки больших данных с целью унифицировать озера данных и бизнес-аналитику, чтобы удовлетворить каждого. Пользователь. На этом этапе работа, выполняемая Hadoop, дорогостоящим и всегда работающим, заменяется Amazon S3, более дешевым, эластичным, всегда доступным и производительным с единственным ограничением на максимальное хранилище файлов. Amazon S3 связан с AWS Glue — бессерверной службой подготовки данных, которая упрощает извлечение, очистку, обогащение, нормализацию и загрузку данных. Он использует AWS Glue Crawlers, которые исследуют разделы в данных, и каждый новый раздел затем добавляется в каталог данных AWS Glue, таким образом, функция может использоваться Amazon Athena, который представляет собой интерактивный сервис запросов, который упрощает анализ данных с помощью стандартных выражений SQL. .

Что касается исследований и разработок, все начинается локально, разработка кода с помощью профессиональных IDE, таких как PyCharm, с использованием Gitflow в качестве модели ветвления, очень хорошо подходящей для совместной разработки, затем локальный код передается на GitHub, а затем через SSH устанавливается соединение с Amazon. Экземпляр EC2, который находится в облаке. Из облака будет извлечен код GitHub, а затем можно будет начать разработку на Jupyter Notebook. Основная идея заключается в том, чтобы программировать локально, не тратя время на копирование кода в блокнот Jupyter и обнаруживая, например, что некоторые общие переменные были затенены.

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

Люк объяснил несколько технологий, доступных для развертывания, например сине-зеленое развертывание с использованием Terraform. Идея заключается в том, чтобы иметь доступные рабочие API и выбрать зеленое развертывание для нового выпуска, а не синее развертывание для чего-то уже работающего, требующего только изменения указателя. Существуют архитектуры, доступные для различных типов прогнозирования: от обслуживания пакетной модели до обслуживания моделей с помощью микросервисов, предлагаемых Amazon, ECS или Kubernetes. AWS Lambda предлагает еще одно интересное приложение для обслуживания бессерверных моделей в реальном времени. Важной частью всех этих микросервисов является то, что вы хотите их оркестровать, и у Amazon есть AWS Step Functions, оркестратор, который поддерживает большинство технологий рабочих процессов AWS.

В конце было дано исследование нескольких архитектур MapReduce, используемых для Biga Data в Helixa, MapReduce используется в приложениях реального времени вместо использования Spark.

Запись и слайды:

"видео"

слайды

Автор Клаудио Г. Джанкатерино