Spotify: как внутренняя ML-платформа масштабирует алгоритмы рекомендаций

The TWIML AI Podcast 533 29 мин 2 мин 07.09.2022
Главное

Как Spotify масштабирует машинное обучение: архитектура и подходы 2:12

Масштабирование технологий машинного обучения (ML) в компании с 300 миллионами пользователей требует не только мощных алгоритмов, но и создания надежной внутренней инфраструктуры. Инженеры Spotify Джош и Муса Абдул-Хамид рассказали о том, как компания трансформировала свой подход к ML с 2017 года, превратив разрозненные инструменты в единую масштабируемую платформу, которая позволяет командам сосредоточиться на создании моделей, а не на поддержке инфраструктуры.

🛠 Проблема «технического долга» инженеров 2:25

До создания централизованной платформы ML-инженеры в Spotify тратили более 50% своего времени на борьбу с техническими проблемами: управлением индексами, обслуживанием баз данных и устранением «багов» в бэкенде. Около 25% времени уходило на оценку производительности моделей, и лишь менее 25% — непосредственно на улучшение продукта и разработку алгоритмов.

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

🚀 Основные компоненты ML-платформы Spotify 8:43

Для решения этих проблем компания выделила команду, сфокусированную на инфраструктуре ML. Платформа Spotify сегодня объединяет несколько ключевых инструментов:

🧠 Jukebox: как работает управление признаками 14:48

Jukebox служит «единым источником истины» для всех признаков (features) в Spotify. Это значительно упрощает жизнь инженерам: они могут один раз зарегистрировать признаки, а затем использовать их как для обучения офлайн-моделей, так и для инференса (предсказаний) в реальном времени.

Процесс работы с признаками выглядит так:

  1. Создание и регистрация: Инженер создает признаки и регистрирует их в реестре.
  2. Сбор данных: Компонент-коллектор собирает признаки из источников (BigQuery, GCS) в формате TF Record.
  3. Хранение: Данные попадают в Bigtable, где каждая команда управляет своим кластером.
  4. Чтение: Библиотека на Java обеспечивает низкую задержку при чтении признаков из Bigtable в онлайн-сервисе.

💡 Уроки разработки платформы 18:30

Джош выделил три главных вывода из опыта построения ML-инфраструктуры в Spotify:

💬 Цитаты

«Мы хотели extract away как можно больше сложности, чтобы инженеры были продуктивнее и фокусировались на моделировании.»

«Быть opinionated позволило нам создать более мощный и согласованный продукт.»

👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Feature Store (Jukebox)
Система хранения и управления входными данными (признаками) для моделей машинного обучения.
Kubeflow
Платформа с открытым исходным кодом для управления рабочими процессами ML в Kubernetes.
Инференс
Процесс использования обученной модели для предсказаний на новых данных.
Технический долг
Избыточная сложность в коде и архитектуре, которая замедляет разработку новых функций.
📊 Цифры
🗓 Хронология
  1. 2008 Запуск Spotify.
  2. 2017 Начало инвестиций в создание централизованной ML-платформы.
  3. 2020 Масштабное использование инструментов платформы, значительный рост метрик продуктивности.
  4. 2021 Фокус на расширении платформы для дата-сайентистов и улучшении процессов ML Ops.
⚖️ Другая сторона
Технологии и IT Spotify Machine Learning Jukebox Kubeflow Bigtable