क्यों Netflix ने हैंड-क्राफ्टेड (hand-crafted) फीचर्स को छोड़ दिया

अपने इतिहास के अधिकांश समय में, Netflix का रिकमेंडेशन पाइपलाइन हजारों मैन्युअल रूप से परिभाषित एट्रिब्यूट्स (attributes) पर निर्भर था—न्यूमेरिक वेक्टर्स जो यूजर्स, टाइटल्स और उनके बीच होने वाली हर बातचीत (interaction) का वर्णन करते थे। इंजीनियरों को किसी नए कंटेंट टाइप—जैसे लाइव स्पोर्ट्स, पॉडकास्ट या गेम्स—को फीचर्स के एक नए सेट में बदलने में हफ्तों लग जाते थे, ताकि सिस्टम उसे रिकमेंड करना शुरू कर सके। यह प्रक्रिया महंगी थी, नाजुक थी और कैटलॉग के तेजी से बढ़ते विस्तार के साथ तालमेल बिठाना कठिन था।

रेडीमेड लार्ज लैंग्वेज मॉडल्स (LLMs) सीधे तौर पर काम नहीं कर रहे थे। वे सबसे लोकप्रिय टाइटल्स की ओर झुक जाते थे, कभी-कभी ऐसी चीजों के बारे में गलत जानकारी (hallucinate) देते थे जो अस्तित्व में ही नहीं हैं, और उन बिजनेस नियमों को लागू करने में संघर्ष करते थे जो रिकमेंडेशन को सुरक्षित और प्रासंगिक बनाए रखते हैं। इसलिए, Netflix ने एक विशेष (bespoke) LLM-आधारित पाइपलाइन बनाई जो प्रोडक्शन की सीमाओं का सम्मान करते हुए लैंग्वेज मॉडल की खूबियों को बरकरार रखती है।

GenRec के अंदर: एक दो-चरणीय (two-stage) ट्रेनिंग पाइपलाइन

GenRec दो अलग-अलग चरणों से मिलकर बना है:

  1. Base model fine-tuning – Netflix एक ओपन-वेट लैंग्वेज मॉडल से शुरुआत करता है और उसे इंटरनल व्यूइंग डेटा पर फाइन-ट्यून करता है। यह मॉडल के कोर आर्किटेक्चर को बदले बिना उसे कैटलॉग की शब्दावली और यूजर-बिहेवियर पैटर्न सिखाता है।
  2. Recommendation ranking – ट्रेनिंग का दूसरा दौर फाइन-ट्यून किए गए मॉडल को एक 'रैंकर' में बदल देता है जो किसी दिए गए यूजर के लिए संभावित टाइटल्स को स्कोर देता है। Netflix इस चरण को बार-बार रिफ्रेश करता है ताकि मॉडल नई रिलीज और बदलते ट्रेंड्स के साथ अपडेट रहे।

पुराने सिस्टम से मुख्य अंतर यह है कि मॉडल को यूजर हिस्ट्री कैसे दी जाती है। वॉच सेशन्स को डेंस वेक्टर्स (dense vectors) में कंप्रेस करने के बजाय, GenRec हर इंटरैक्शन—जैसे प्ले ड्यूरेशन, थम्स-अप या थम्स-डाउन, और जल्दी वीडियो छोड़ देना—को साधारण अंग्रेजी वाक्यों में बदल देता है। इसके बाद मॉडल पूरे सेशन को एक छोटे संवाद (dialogue) के रूप में पढ़ता है, जिससे वह बिना किसी स्पष्ट फीचर इंजीनियरिंग के जॉनर (genre) की पसंद या मूड में आने वाले सूक्ष्म बदलावों को समझ लेता है।

परफॉरमेंस और दक्षता में वृद्धि

चार सप्ताह के एक प्रयोग में, जिसमें Netflix ट्रैफिक का 10% हिस्सा GenRec के संपर्क में लाया गया, नए सिस्टम ने दो मेट्रिक श्रेणियों में सांख्यिकीय रूप से महत्वपूर्ण सुधार (statistically significant lifts) दिखाए:

  • Short-term engagement – डेली रिकमेंडेशन को चलाने वाले प्राइमरी क्लिक-थ्रू और वॉच-टाइम सिग्नल्स में 0.115% की वृद्धि।
  • Long-term core metrics – सब्सक्राइबर-रिटेंशन और ओवरऑल सेटिस्फैक्शन स्कोर में 0.006% की वृद्धि, जो बिजनेस के लिए सबसे महत्वपूर्ण हैं।

ऑफलाइन, एक होल्ड-आउट डेटासेट पर रैंकिंग की गुणवत्ता प्रोडक्शन बेसलाइन की तुलना में 1.6% सुधरी। इससे भी अधिक चौंकाने वाली बात डेटा दक्षता (data efficiency) है: दूसरे ट्रेनिंग चरण को उसी परफॉरमेंस लेवल तक पहुँचने के लिए पारंपरिक पाइपलाइन की तुलना में लगभग 1/40 लेबल किए गए उदाहरणों (labeled examples) की आवश्यकता पड़ी।

कंप्यूट बिल को नियंत्रण में रखने के लिए, Netflix मॉडल को vLLM के साथ चलाता है, जो एक सर्विंग स्टैक है और टेक्स्ट जेनरेट करने के बजाय सिंगल फॉरवर्ड पास में हर कैंडिडेट को स्कोर देता है। सिस्टम आक्रामक फ़िल्टरिंग (aggressive filtering) भी लागू करता है ताकि केवल हाई-सिग्नल इवेंट्स ही मॉडल के कॉन्टेक्स्ट विंडो में आएं, जिससे अनावश्यक टोकन कम होते हैं और लेटेंसी (latency) घटती है।

"फीचर्स" से "कॉन्टेक्स्ट" की ओर बदलाव का क्या मतलब है

GenRec एक व्यापक आंदोलन का हिस्सा है जहाँ "कॉन्टेक्स्ट इंजीनियरिंग" हैंड-क्राफ्टेड फीचर्स की जगह ले रही है। प्रत्येक रिकमेंडेशन टास्क के लिए एक विशेष आर्किटेक्चर डिजाइन करने के बजाय, इंजीनियर यह तय करते हैं कि टेक्स्ट प्रॉम्प्ट में कौन से सिग्नल्स डालने हैं और फिर लैंग्वेज मॉडल को उन पर तर्क (reasoning) करने देते हैं। यह दृष्टिकोण नए कंटेंट टाइप्स के ऑनबोर्डिंग को तेज करता है: एक पॉडकास्ट एपिसोड या लाइव-स्ट्रीम किया गया गेम एक वाक्य में वर्णित किया जा सकता है और तुरंत रिकमेंडेशन पूल में शामिल हो सकता है, जिससे महीनों चलने वाला फीचर-डेफिनिशन स्प्रिंट बच जाता है।

शेष बाधाएं

LLM-आधारित रिकमेंडर्स कोई रामबाण (silver bullet) नहीं हैं। लोकप्रिय आइटम्स पर अत्यधिक जोर देने की उनकी प्रवृत्ति अभी भी कैटलॉग में पक्षपात (bias) पैदा करती है, और शक्तिशाली GPUs की आवश्यकता परिचालन लागत (operational costs) को बढ़ाती है। vLLM और आक्रामक फ़िल्टरिंग के बावजूद, Netflix के पैमाने पर एक लार्ज लैंग्वेज मॉडल को सर्व करने के लिए लेटेंसी लक्ष्यों को पूरा करने हेतु सावधानीपूर्वक इंजीनियरिंग की आवश्यकता होती है।