Проблема: 150 моделей, 0 понимания
Представьте: у вас 150 разных рекомендательных моделей. Каждая для своего региона, языка, типа контента. Каждая обучается на своем датасете, со своими признаками, на своем кластере. Команда из 50 ML-инженеров постоянно что-то дообучает, тюнит, переобучает.
Звучит как успех? Это ад.
Netflix столкнулся с этим в 2024 году. Каждая модель жила своей жизнью. Обновить фичи — нужно было пройти 150 пайплайнов. Сравнить эффективность — невозможно, метрики считались по-разному. Новый инженер тратил месяц, чтобы понять, как работает хоть одна из них.
Главная проблема не в количестве моделей. Проблема в том, что каждая модель — это отдельная вселенная со своими правилами, данными и процессами. Сравнивать их — все равно что сравнивать физику Ньютона с квантовой механикой.
Решение: одна модель, чтобы править всеми
Netflix пошел радикальным путем. Вместо 150 разрозненных моделей — одна базовая. Одна архитектура, один пайплайн обучения, один набор признаков.
Но как одна модель может учитывать культурные особенности японских аниме и бразильских сериалов одновременно? Вот где начинается магия.
1 Централизованное извлечение признаков: один источник правды
Раньше каждая команда сама решала, какие фичи использовать. Одни брали просмотры за 7 дней, другие — за 30. Кто-то нормализовал рейтинги, кто-то нет.
Теперь все признаки извлекаются в едином пайплайне. Есть четкий контракт: на входе — сырые данные, на выходе — готовые фичи в формате, понятном модели.
Пример признакового пространства Netflix на 2026 год:
| Тип признака | Примеры | Особенность 2026 |
|---|---|---|
| Пользовательские | История просмотров, поисковые запросы, оценки | Векторизация через внутренние эмбеддинги |
| Контентные | Жанр, актеры, режиссер, описание | Мультимодальные эмбеддинги (текст+видео) |
| Контекстные | Время суток, устройство, день недели | Учет сезонных паттернов через временные ряды |
| Кросс-фичи | Взаимодействие пользователь-контент | Автоматическое генерирование через Feature Store |
Ключевое изменение: вместо ручного инжиниринга признаков — автоматическое их обновление. Система сама отслеживает, какие фичи перестали работать, и предлагает альтернативы.
2 Архитектура модели: два слоя, миллион вариаций
Базовая модель Netflix построена по принципу «двухэтажного дома»:
- Нижний этаж: общие слои, которые учатся на всех данных. Они выявляют глобальные паттерны: что такое «хороший триллер», как люди смотрят сериалы, какие актеры популярны.
- Верхний этаж: адаптивные слои, которые калибруются под конкретного пользователя или регион. Здесь учитывается, что в Индии любят музыкальные сцены, а в Германии — детективы.
Технически это реализовано через multi-task learning. Модель одновременно учится предсказывать:
# Упрощенная архитектура (на основе публикаций Netflix)
class NetflixBaseModel(tf.keras.Model):
def __init__(self):
super().__init__()
# Общие слои
self.shared_encoder = TransformerEncoder(num_layers=4)
self.shared_dense = tf.keras.layers.Dense(512, activation='relu')
# Задачи (tasks) для multi-task learning
self.rating_head = tf.keras.layers.Dense(1, activation='sigmoid') # Оценка
self.watch_time_head = tf.keras.layers.Dense(1) # Время просмотра
self.completion_head = tf.keras.layers.Dense(1, activation='sigmoid') # Досмотр
# Адаптивные слои (добавляются для конкретного региона)
self.regional_adapters = {
'jp': tf.keras.layers.Dense(256),
'br': tf.keras.layers.Dense(256),
# ...
}
Обучение происходит централизованно на всем датасете Netflix. Но инференс может быть персонализированным: для японского пользователя активируется японский адаптер.
3 ML-платформа: железо, которое не ломается
Самая скучная и самая важная часть. Без нормальной платформы вся эта архитектура — просто красивые слайды.
Netflix построил свою ML-платформу на трех китах:
- Единый Feature Store: все признаки хранятся в одном месте, с версионированием и lineage tracking. Изменил признак — видишь, на какие модели это повлияло.
- Централизованный тренировочный кластер: вместо 150 маленьких кластеров — один большой, с автоматическим распределением ресурсов. Обучение базовой модели занимает 3 дня на 512 GPU (данные на февраль 2026).
- Унифицированный сервинг: одна система для обслуживания всех моделей. От базовой до калиброванных вариантов.
Если вы только начинаете строить ML-инфраструктуру, посмотрите мой гайд про идеальную песочницу для ML-моделей. Там есть готовые конфиги для развертывания похожей архитектуры.
Важный нюанс 2026 года: Netflix активно использует квантованные версии моделей для мобильных устройств. Полноценная базовая модель весит 2.3 ГБ, а квантованная — всего 340 МБ, с потерей точности менее 1%.
Что получили: цифры, которые имеют значение
Переход на базовую модель дал Netflix не просто «улучшение». Это поменяло способ работы:
- Время разработки новой фичи: с 3 недель до 2 дней. Раньше нужно было пройти 150 code reviews, теперь — один.
- Стоимость обучения
- Качество рекомендаций: выросло на 8% в среднем по всем регионам. Общая модель видит больше паттернов.
- Onboarding новых инженеров: с 2 месяцев до 2 недель. Одна кодовая база, одна документация.
Но самое главное — появилась возможность проводить A/B тесты, которые действительно что-то показывают. Раньше сравнить модели было невозможно. Теперь можно точно измерить, насколько новая архитектура лучше старой.
Как не надо делать: 3 смертных греха ML-архитектуры
Я видел десятки компаний, которые пытались скопировать подход Netflix. И совершали одни и те же ошибки.
Грех 1: Слепое копирование архитектуры
«Netflix использует трансформеры — значит, нам тоже нужны трансформеры». Нет. Netflix использует трансформеры, потому что у них 250 миллионов пользователей и петабайты данных. У вас, скорее всего, меньше.
Начните с простого. Как показывает практика, в 2026 году для большинства задач рекомендаций XGBoost и CatBoost все еще работают лучше нейросетей на небольших датасетах.
Грех 2: Игнорирование Feature Store
Самая частая ошибка: начинают строить сложную модель, но признаки по-прежнему извлекаются в 15 разных скриптах. Результат — несогласованность данных, невозможно воспроизвести эксперимент.
Feature Store должен быть первым компонентом, который вы внедряете. Даже если это просто PostgreSQL с версионированием.
Грех 3: Отсутствие плана миграции
Нельзя взять и заменить 150 моделей одной за неделю. Netflix делал миграцию 18 месяцев.
Правильный подход:
- Сначала построить Feature Store и начать собирать признаки в едином формате
- Запустить базовую модель параллельно со старыми, на 5% трафика
- Постепенно увеличивать долю трафика, параллельно дообучая модель
- Только когда качество стабильно выше — отключать старые системы
Если вам интересно, как избежать других подводных камней, у меня есть подробный план в статье «Как не сгореть, проектируя рекомендательные системы».
Практический план: с чего начать завтра
Если вы хотите повторить успех Netflix, но у вас команда из 5 человек, а не 500:
1 Неделя 1-2: Аудит текущего состояния
Составьте таблицу:
- Сколько у вас моделей рекомендаций?
- Какие признаки использует каждая?
- Как считается качество?
- Сколько стоит обучение каждой модели?
Вы удивитесь, но в 80% компаний никто этого не знает.
2 Неделя 3-4: Прототип Feature Store
Не нужно строить распределенную систему на Kafka и Spark. Начните с простого:
# Минимальный Feature Store на Python
import pandas as pd
from datetime import datetime
import hashlib
class SimpleFeatureStore:
def __init__(self):
self.features = {} # feature_name -> DataFrame
self.metadata = {} # feature_name -> {created_at, version, source}
def add_feature(self, name, df, description=""):
# Генерация версии на основе данных
data_hash = hashlib.md5(pd.util.hash_pandas_object(df).values).hexdigest()[:8]
version = f"{datetime.now().strftime('%Y%m%d')}_{data_hash}"
self.features[name] = df
self.metadata[name] = {
'version': version,
'created_at': datetime.now(),
'description': description
}
return version
Этого достаточно для начала. Главное — начать собирать признаки в одном месте.
3 Неделя 5-8: Первая базовая модель
Возьмите самый простой алгоритм. Линейную регрессию или LightGBM. Обучите на всех данных, которые у вас есть.
Не пытайтесь сразу сделать multi-task learning. Сначала добейтесь, чтобы одна модель работала не хуже, чем ваши текущие 10.
Для развертывания используйте готовые решения. Если у вас уже есть Kubernetes, посмотрите архитектуру Nova AI на KServe. Там есть готовые конфиги для ML-сервинга.
4 Месяц 3-6: Итерации и масштабирование
Только когда прототип работает, начинайте усложнять:
- Добавьте больше признаков
- Экспериментируйте с архитектурой
- Автоматизируйте пайплайн обучения
Помните: VK потратила 18 месяцев на построение единого AI-стека, но ускорила рекомендации в 5 раз. Это долгая игра.
Будущее: куда движется Netflix (и все остальные)
На февраль 2026 видно три тренда:
- Еще больше централизации: не только рекомендации, но и поиск, персонализация интерфейса, генерация превью — все на одной базовой модели.
- Мультимодальность как стандарт: модель учится не только на метаданных, но и на аудио, видео, тексте субтитров. Это требует новых архитектур, но дает скачок качества.
- Edge-инференс: вместо отправки запросов в облако — легкие версии модели прямо на телевизоре или смартфоне. Это снижает задержки и нагрузку на сервера.
Самое интересное: Netflix начинает экспериментировать с генеративными моделями для создания персонализированных трейлеров. Но это пока пилоты.
Предупреждение: не гонитесь за модными архитектурами. В 2026 все говорят про Mixture of Experts (MoE) и модели с триллионом параметров. Но для 99% бизнес-задач достаточно хорошо настроенного CatBoost на качественных признаках.
Финальный совет: начните с культуры, а не с кода
Главный секрет успеха Netflix не в архитектуре модели. В том, что у них есть культура data-driven решений.
Каждый инженер знает метрики своей модели. Каждый эксперимент проходит через A/B тест. Каждая фича оценивается по влиянию на бизнес-показатели.
Вы можете скопировать архитектуру Netflix. Но если в вашей компании решения принимаются «по ощущениям», а не по данным — ничего не получится.
Начните с малого. Возьмите одну модель. Добейтесь, чтобы она была измерима, воспроизводима и понятна. И только потом масштабируйте.
И помните: даже Netflix не родился с базовой моделью. Они 10 лет шли к этому. У вас есть преимущество — вы можете учиться на их ошибках.