После получения сертификата AWS Certified Solutions Architect - Professional я задумался: а стоило ли оно того? И дает ли это мне достаточно знаний, чтобы спроектировать платформу?

Итак, я решил проверить это: я попытался создать платформу машинного обучения на AWS.

Результат? Этот сертификат определенно того стоит: его правильная подготовка и сдача дала мне необходимые инструменты, чтобы взглянуть на общую картину, увидеть все маленькие движущиеся части. Но этого недостаточно ... Чтобы добиться этого, я вдохновился тем, что сделали крупные компании с большим опытом в этой области, такие как Uber с их Michelangelo, Netflix, Comcast и многими другими. Примеры использования клиентов Amazon помогли мне получить хорошее представление о том, как они использовали возможности AWS для решения этой проблемы.

Эта статья - первая из нескольких других, в которых я собираюсь описать свой путь к созданию платформы машинного обучения на AWS.

В этой первой статье я собираюсь дать общий обзор платформы, которую я пытаюсь построить.

1 | Почему платформа машинного обучения?

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

Однако в тот момент, когда компании решают действительно использовать эту модель и внедрять ее в производственную среду, они понимают, что получение работающей модели - это лишь первый шаг. Еще предстоит решить более серьезную проблему: как перенести этот работающий код из ноутбука Jupyter в высокодоступную, масштабируемую и безопасную производственную среду? Чтобы справиться с этой проблемой, создание платформы машинного обучения является обязательным.

2 | Что такое платформа?

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

Платформу могут составлять четыре слоя:

  • Уровень инфраструктуры: уровень, обеспечивающий энергией платформу: он содержит голые серверы, виртуальные машины, системы хранения и т. д. Архитекторы и инженеры DevOps должны создать правильную архитектуру для уровня инфраструктуры, чтобы эта платформа может пережить бедствия и гарантировать непрерывность обслуживания.
  • Программный уровень: уровень, содержащий программные решения: это может быть операционная система (Linux, Windows), программное обеспечение для балансировки нагрузки, программное обеспечение для управления безопасностью, решения для баз данных и т. д. Архитекторы и инженеры-программисты несут ответственность за выбор. правильный программный стек для охвата функций платформы.
  • Уровень фреймворка r: мозг платформы: этот уровень содержит фреймворк, способный внедрить модель машинного обучения в производство. Эта структура представляет собой набор хорошо продуманных шаблонов и хорошо разработанных функций, отвечающих конкретному варианту использования платформы. Архитекторы и инженеры-программисты несут ответственность за создание надежной конструкции фреймворка и создание надежных шаблонов данных.
  • Слой вариантов использования: этот уровень содержит описание новых вариантов использования, появляющихся на платформе, и модели машинного обучения, решающие эти варианты использования. Бизнес-аналитики и специалисты по данным работают вместе, чтобы понять варианты использования и построить надежные модели машинного обучения, дающие убедительные результаты.

3 | Итак, каковы основные шаги при работе с платформой машинного обучения? И с какими проблемами можно столкнуться на каждом этапе?

Четыре ключевых шага для реализации варианта использования на платформе машинного обучения, и каждый шаг включает в себя множество проблем:

  1. Пример использования: прежде чем вариант использования появится на платформе, его необходимо хорошо изучить. Вот некоторые из вопросов, на которые нужно ответить: Какие данные необходимы для варианта использования? Какие аспекты шифрования следует применить? Есть ли реальная ценность для бизнеса в работе над вариантом использования?
  2. Подготовка данных и моделей: это та часть, где мы переносим необработанные данные, определенные на предыдущем шаге, на платформу, ищем и извлекаем полезные функции, которые хорошо описывают данные, проводим сравнительный анализ и выбираем правильные модель. Некоторые из сложных вопросов, на которые нужно ответить: Как повторно использовать ресурсы модели? Как надежно изолировать ресурсы разных команд / проектов? Как ускорить этап подготовки моделей?
  3. Операционализация модели: после получения правильной модели возникает еще более сложный, но редко сделанный правильно шаг. Этот этап заключается в проектировании трубопроводов, позволяющих запустить модель в производство. Среди задач, которые необходимо решить: Как отладить неудачный производственный цикл? Как масштабировать модели? Какие возможные автоматизации рассматривать? А как насчет управления версиями?
  4. Обслуживание моделей. В мире машинного обучения даже после получения модели с наилучшими возможными характеристиками продемонстрировать ее в реальном мире - непростой процесс. Некоторые из возникших проблем: Как контролировать модель в производстве? Как развернуть новую версию без простоя сервиса? Как повысить эффективность обслуживания?

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

4 | Предположения

Чтобы построить эту платформу машинного обучения (ML), я сделал одно важное предположение:
Я собираюсь предположить, что озеро данных уже присутствует помимо этой платформы: эта платформа ML не будет нести ответственность за передачу данных, она будет потреблять его, используя возможности другой платформы данных для его преобразования. Я действительно считаю, что получение данных - это огромная проблема, и это может быть задачей полностью второй платформы. Последние пару лет я работал над платформой данных, целью которой является эффективный сбор и централизация данных из разных источников, и, поверьте мне, это действительно сложно. Среди проблем, с которыми мы столкнулись:

  • Гарантия качества данных
  • Каталогизация данных и управление эволюцией схем
  • Определение и управление владением данными
  • Защита данных

Итак, вот как я вижу вещи:

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

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

В следующих нескольких статьях я сконцентрируюсь на построении платформы машинного обучения в соответствии с этим видением.

Заключение

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

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

Если у вас есть вопросы, напишите мне в LinkedIn.

Примечание. Диаграммы иллюстраций навеяны шаблонами PresentationGO.com.