Чому Netflix відмовився від вручну створених ознак
Протягом більшої частини своєї історії конвеєр рекомендацій Netflix покладався на тисячі вручну визначених атрибутів — числових векторів, що описують користувачів, назви контенту та кожну взаємодію між ними. Інженери витрачали тижні на перетворення нового типу контенту — прямих трансляцій спорту, подкастів або ігор — у новий набір ознак, перш ніж система могла почати його рекомендувати. Цей процес був дорогим, крихким і його було важко синхронізувати зі стрімким розширенням каталогу.
Готові великі мовні моделі (LLM) не працювали «з коробки». Вони схилялися до найпопулярніших назв, іноді галюцинували об'єктами, яких не існує, і мали труднощі з дотриманням бізнес-правил, які забезпечують безпеку та релевантність рекомендацій. Тому Netflix створив спеціалізований конвеєр на основі LLM, який зберігає переваги мовної моделі, дотримуючись при цьому виробничих обмежень.
Всередині GenRec: двоступеневий конвеєр навчання
GenRec складається з двох окремих етапів:
- Тонке налаштування базової моделі – Netflix бере мовну модель із відкритими вагами та проводить її тонке налаштування на внутрішніх даних перегляду. Це навчає модель словнику каталогу та патернам поведінки користувачів, не змінюючи її основну архітектуру.
- Ранжування рекомендацій – другий раунд навчання перетворює налаштовану модель на ранкер, який оцінює потенційні назви для конкретного користувача. Netflix часто оновлює цей етап, щоб модель залишалася актуальною щодо нових релізів та мінливих трендів.
Ключова відмінність від застарілої системи полягає в тому, як історія користувача подається моделі. Замість стиснення сесій перегляду в щільні вектори, GenRec перетворює кожну взаємодію — тривалість відтворення, «палець вгору» чи «палець вниз», передчасне вихід із перегляду — у звичайні речення англійською мовою. Потім модель зчитує всю сесію як короткий діалог, вловлюючи тонкі зміни в жанрових уподобаннях або настрої без будь-якого явного проектування ознак (feature engineering).
Приріст продуктивності та ефективності
Під час чотирьохтижневого експерименту, у якому 10% трафіку Netflix було підключено до GenRec, нова система продемонструвала статистично значуще зростання за двома групами метрик:
- Короткострокова залученість – зростання на 0,115% основних показників клікабельності та часу перегляду, які визначають щоденні рекомендації.
- Довгострокові ключові метрики – збільшення на 0,006% показників утримання передплатників та загальної задоволеності, які є найважливішими для бізнесу.
В офлайн-режимі якість ранжування на відкладеній вибірці покращилася на 1,6% порівняно з базовим показником у робочому середовищі. Ще більш вражаючою є ефективність даних: другому етапу навчання знадобилося приблизно 1/40 від кількості розмічених прикладів, які потрібні традиційному конвеєру для досягнення того ж рівня продуктивності.
Щоб контролювати витрати на обчислення, Netflix запускає модель за допомогою vLLM — стека обслуговування, який оцінює кожного кандидата за один прямий прохід (forward pass), а не генерує текст. Система також застосовує агресивне фільтрування, щоб лише найбільш значущі події займали контекстне вікно моделі, скорочуючи непотрібні токени та зменшуючи затримку (latency).
Що означає перехід від «ознак» до «контексту»
GenRec є частиною ширшого руху, де «проектування контексту» (context engineering) замінює ручне створення ознак. Замість розробки спеціальної архітектури для кожного завдання рекомендацій, інженери вирішують, які сигнали вставити в текстовий запит, і дозволяють мовній моделі робити висновки на їх основі. Такий підхід прискорює впровадження нових типів контенту: епізод подкасту або пряму трансляцію гри можна описати одним реченням і негайно додати до пулу рекомендацій, минаючи багатомісячний спринт із визначення ознак.
Перешкоди, що залишаються
Рекомендаційні системи на основі LLM не є універсальною панацеєю. Їхня схильність перебільшувати популярність певних об'єктів все ще створює упередженість у каталозі, а потреба в потужних GPU підвищує операційні витрати. Навіть із використанням vLLM та агресивного фільтрування, обслуговування великої мовної моделі в масштабах Netflix вимагає ретельного інженерного підходу для досягнення цільових показників затримки.
