После получения сертификата AWS Certified Solutions Architect - Professional я задумался: а стоило ли оно того? И дает ли это мне достаточно знаний, чтобы спроектировать платформу?
Итак, я решил проверить это: я попытался создать платформу машинного обучения на AWS.
Результат? Этот сертификат определенно того стоит: его правильная подготовка и сдача дала мне необходимые инструменты, чтобы взглянуть на общую картину, увидеть все маленькие движущиеся части. Но этого недостаточно ... Чтобы добиться этого, я вдохновился тем, что сделали крупные компании с большим опытом в этой области, такие как Uber с их Michelangelo, Netflix, Comcast и многими другими. Примеры использования клиентов Amazon помогли мне получить хорошее представление о том, как они использовали возможности AWS для решения этой проблемы.
Эта статья - первая из нескольких других, в которых я собираюсь описать свой путь к созданию платформы машинного обучения на AWS.
В этой первой статье я собираюсь дать общий обзор платформы, которую я пытаюсь построить.
1 | Почему платформа машинного обучения?
В настоящее время компании начинают более серьезно относиться к моделям машинного обучения. Эти модели рассматриваются как потенциальное, если не лучшее, решение для множества бизнес-вариантов использования. В результате появилось множество специалистов по данным, которые взялись за эти варианты использования: все, что требуется, - это блокнот Jupyter и некоторые данные, и у нас есть работающая модель с низким уровнем ошибок и набором оптимизированных гиперпараметров.
Однако в тот момент, когда компании решают действительно использовать эту модель и внедрять ее в производственную среду, они понимают, что получение работающей модели - это лишь первый шаг. Еще предстоит решить более серьезную проблему: как перенести этот работающий код из ноутбука Jupyter в высокодоступную, масштабируемую и безопасную производственную среду? Чтобы справиться с этой проблемой, создание платформы машинного обучения является обязательным.
2 | Что такое платформа?
Платформа - это набор упорядоченных слоев, которые взаимодействуют друг с другом для получения результата. Каждый уровень имеет одну и только одну специальную роль. Эти роли определяют границы каждого уровня: чем четче и четче эти границы, тем более надежной, масштабируемой и простой в обслуживании платформа является.
Платформу могут составлять четыре слоя:
- Уровень инфраструктуры: уровень, обеспечивающий энергией платформу: он содержит голые серверы, виртуальные машины, системы хранения и т. д. Архитекторы и инженеры DevOps должны создать правильную архитектуру для уровня инфраструктуры, чтобы эта платформа может пережить бедствия и гарантировать непрерывность обслуживания.
- Программный уровень: уровень, содержащий программные решения: это может быть операционная система (Linux, Windows), программное обеспечение для балансировки нагрузки, программное обеспечение для управления безопасностью, решения для баз данных и т. д. Архитекторы и инженеры-программисты несут ответственность за выбор. правильный программный стек для охвата функций платформы.
- Уровень фреймворка r: мозг платформы: этот уровень содержит фреймворк, способный внедрить модель машинного обучения в производство. Эта структура представляет собой набор хорошо продуманных шаблонов и хорошо разработанных функций, отвечающих конкретному варианту использования платформы. Архитекторы и инженеры-программисты несут ответственность за создание надежной конструкции фреймворка и создание надежных шаблонов данных.
- Слой вариантов использования: этот уровень содержит описание новых вариантов использования, появляющихся на платформе, и модели машинного обучения, решающие эти варианты использования. Бизнес-аналитики и специалисты по данным работают вместе, чтобы понять варианты использования и построить надежные модели машинного обучения, дающие убедительные результаты.
3 | Итак, каковы основные шаги при работе с платформой машинного обучения? И с какими проблемами можно столкнуться на каждом этапе?
Четыре ключевых шага для реализации варианта использования на платформе машинного обучения, и каждый шаг включает в себя множество проблем:
- Пример использования: прежде чем вариант использования появится на платформе, его необходимо хорошо изучить. Вот некоторые из вопросов, на которые нужно ответить: Какие данные необходимы для варианта использования? Какие аспекты шифрования следует применить? Есть ли реальная ценность для бизнеса в работе над вариантом использования?
- Подготовка данных и моделей: это та часть, где мы переносим необработанные данные, определенные на предыдущем шаге, на платформу, ищем и извлекаем полезные функции, которые хорошо описывают данные, проводим сравнительный анализ и выбираем правильные модель. Некоторые из сложных вопросов, на которые нужно ответить: Как повторно использовать ресурсы модели? Как надежно изолировать ресурсы разных команд / проектов? Как ускорить этап подготовки моделей?
- Операционализация модели: после получения правильной модели возникает еще более сложный, но редко сделанный правильно шаг. Этот этап заключается в проектировании трубопроводов, позволяющих запустить модель в производство. Среди задач, которые необходимо решить: Как отладить неудачный производственный цикл? Как масштабировать модели? Какие возможные автоматизации рассматривать? А как насчет управления версиями?
- Обслуживание моделей. В мире машинного обучения даже после получения модели с наилучшими возможными характеристиками продемонстрировать ее в реальном мире - непростой процесс. Некоторые из возникших проблем: Как контролировать модель в производстве? Как развернуть новую версию без простоя сервиса? Как повысить эффективность обслуживания?
Запуск модели в производство - это не разовая задача, а непрерывный процесс. По мере появления новых данных модель может работать хуже, и ее необходимо обновить, чтобы не отставать от этих новых данных. Таким образом, необходимо рассмотреть и запланировать повторные итерации, чтобы постоянно улучшать модель машинного обучения.
4 | Предположения
Чтобы построить эту платформу машинного обучения (ML), я сделал одно важное предположение:
Я собираюсь предположить, что озеро данных уже присутствует помимо этой платформы: эта платформа ML не будет нести ответственность за передачу данных, она будет потреблять его, используя возможности другой платформы данных для его преобразования. Я действительно считаю, что получение данных - это огромная проблема, и это может быть задачей полностью второй платформы. Последние пару лет я работал над платформой данных, целью которой является эффективный сбор и централизация данных из разных источников, и, поверьте мне, это действительно сложно. Среди проблем, с которыми мы столкнулись:
- Гарантия качества данных
- Каталогизация данных и управление эволюцией схем
- Определение и управление владением данными
- Защита данных
Итак, вот как я вижу вещи:
- Платформа данных: отвечает за передачу данных и предоставление расширенных возможностей обработки данных: пакетная обработка и потоковая обработка. Эти возможности будут полезны для работ по извлечению функций в режиме онлайн и офлайн. Эти данные будут хорошо каталогизированы и управляемы.
- Платформа машинного обучения: основная тема этой серии статей. Эта платформа будет решать различные варианты использования машинного обучения и запускать модель машинного обучения в производство.
- Протоколы интеграции: определяет правила протоколов, которые необходимо соблюдать при интеграции двух платформ.
Само собой разумеется, что передача данных может быть интегрирована как емкость в платформу машинного обучения, но это может быть намного сложнее.
В следующих нескольких статьях я сконцентрируюсь на построении платформы машинного обучения в соответствии с этим видением.
Заключение
В этой статье я попытался дать определение того, что такое платформа, и дал общий обзор слоев платформы. Затем я представил ключевые этапы процесса решения варианта использования на платформе машинного обучения. Затем я сделал некоторые соображения, которые будут приняты во внимание во время моего путешествия по созданию этой платформы машинного обучения.
В следующей статье я расскажу о первых двух уровнях этой платформы машинного обучения: Уровни инфраструктуры и программного обеспечения.
Если у вас есть вопросы, напишите мне в LinkedIn.
Примечание. Диаграммы иллюстраций навеяны шаблонами PresentationGO.com.