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

Почему?

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

Как?

Flyte построен на базе Kubernetes. Поскольку он используется внутри Lyft, он масштабируется как минимум до 7000 уникальных рабочих процессов с более чем 100000 выполнений в месяц, 1 млн задач и 10 млн контейнеров.

Все сущности в Flyte неизменяемы, поэтому можно отслеживать происхождение данных, воспроизводить эксперименты и откатывать развертывания. Повторяющиеся задачи могут использовать кеш задач, чтобы сэкономить время и деньги. В настоящее время поддерживаются задачи Python, Hive, Presto и Spark, а также коляски.

Каталог данных

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

Плагины Flytekit и бэкэнд-плагины

Flytekit предлагает легкую расширяемость, а также заботится о шаблонах и предоставляет инструменты для разработки, тестирования и развертывания. Эти плагины выполняются в контейнерах. Это помогает быстро расширять возможности Flyte. Что касается бэкэнда, у него есть расширяемый бэкэнд. Это делается с помощью простого интерфейса Golang, доступного в FlytePlugins.

Блокноты и бумажная фабрика

Flytekit позволяет создавать задачи любого типа (Spark, Hive, Python и т. Д.) Из записной книжки Python с полным набором входов / выходов. Ноутбуки Papermill можно запускать для любого ядра с примитивными входами / выходами. Это делается путем предоставления оберток для входа в среду ноутбука и маршалла. Это обеспечивает простой путь от разработки к производству с отличной возможностью отладки.

Заключение

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

Подпишитесь на нашу новостную рассылку Acing AI, если вам интересно:



Хотите узнать, как пройти собеседование по машинному обучению?