Netflix открыла исходный код data science фреймворка Metaflow

121

Команда Netflix объявила об открытии библиотеки Metaflow на Python. Она помогает ученым и инженерам строить и управлять реальными научными проектами по сбору данных.

Команда Netflix пишет:

«В течение последних двух лет Metaflow используется внутри компании Netflix для создания и управления сотнями сотнями data science проектов, начиная с обработки естественного языка и заканчивая исследованиями в области операций».

Metaflow был разработан компанией Netflix с целью повышения производительности исследователей данных. Она создана для работающих над самыми разнообразными проектами. От классической статистики и заканчивая deep learning. Библиотека предоставляет унифицированный API для инфраструктурного стека. Он необходим для выполнения data science проектов, от прототипа до производства.

Metaflow интегрируется со стеком инфраструктуры данных Netflix

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

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

Затем команда архитектурно оформляет выполняемый код, структурируя его как иерархию объектов, Python-модули или пакеты. Они версируют код, вводят данные и создают ML модели. После того, как модель была развернута в производство, команда сталкивается с соответствующими вопросами:

  • Как надежно запустить код в производство?
  • Можно ли контролировать его производительность?
  • Как развернуть новые версии кода для параллельной работы с предыдущей версией?

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

В этом Metaflow обеспечивает унифицированный подход к навигации по стеку. Metaflow более предписателен в отношении нижних уровней стека, но в меньшей степени ориентирован на data science в верхней части стека. Разработчики могут использовать Metaflow со своими любимыми компьютерными обучающими программами или библиотеками данных, такими как PyTorch, Tensorflow или SciKit Learn.

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

Metaflow на веб-сервисах Amazon

Metaflow — это облачный каркас, который использует эластичность облака как для вычислений, так и для хранения. Netflix является одним из крупнейших пользователей Amazon Web Services (AWS). Он накопил большой опыт и знания в работе с облаком. Для этого выпуска с открытым исходным кодом Netflix заключила партнерское соглашение с AWS. Соглашение обеспечить бесшовную интеграцию между Metaflow и различными AWS сервисами.

Metaflow поставляется со встроенной возможностью автоматического снимка всего кода и данных в Amazon S3. Что является ключевым ценностным предложением для внутренней настройки Metaflow. Это обеспечивает команда специалистов по работе с данными комплексным решением. Они проводят версионирования и отслеживания экспериментов без вмешательства пользователя. Кроме того, Metaflow поставляется в комплекте с высокопроизводительным клиентом S3. Он может загружать данные со скоростью до 10 Гбит/с.

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

Чем Metaflow отличается от существующих фреймворков Python?

На Hacker News разработчики обсуждают, чем Metaflow отличается от существующих инструментов или рабочих процессов. Один из них комментирует:

«Мне не нравится критиковать новые фреймворки/инструменты, не понимая их в первую очередь, но мне нравится знать, каковы некоторые ключевые отличия без пуха маркетинга/ПР, прежде чем дать им попробовать. Например, этот tutorial пример здесь не выглядит существенно отличным от того, что я мог бы достичь так же легко в R или других Python-фреймворках для работы с данными. Является ли основной особенностью то, что я могу быстро помещать свои рабочие процессы в облако?»

Команда Metaflow отвечает на этот вопрос:

  • Metaflow автоматически делает снимки вашего кода, данных и зависимостей в контентно-адресованном хранилище данных, которое обычно поддерживается S3, хотя локальная файловая система тоже поддерживается. Это позволяет вам возобновить рабочий процесс, воспроизвести результаты прошлых лет и просмотреть все, что связано с рабочим процессом, например, в ноутбуке. Это основная особенность Metaflow.
  • Metaflow предназначен для хорошей работы с облачным бэкэндом. Сегодня мы поддерживаем AWS, но технически могут поддерживаться и другие облака. Есть достаточно много инженерных разработок, которые пошли на создание этой интеграции. Например, используя встроенный S3-клиент Metaflow, вы можете получить более 10 Гбит/с, что намного больше, чем можно получить, например, с помощью Aws CLI сегодня.
  • Мы потратили время и усилия, чтобы сохранить поверхность API чистой и удобной для использования. YMMV, но до сих пор это было привлекательной функцией для многих пользователей».

Разработчики могут найти домашнюю страницу проекта здесь и его код на GitHub.

Источник: hub.packtpub.com

Поделитесь в соц.сетях
  • 2
  •  
  •  
  •  
  •  
  •  
  •  

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *