नेटफ्लिक्सने 'हँड-क्राफ्टेड फीचर्स' कशासाठी सोडले
आपल्या इतिहासातील बहुतांश काळ, नेटफ्लिक्सची शिफारस प्रक्रिया (recommendation pipeline) हजारो मॅन्युअली परिभाषित केलेल्या वैशिष्ट्यांवर (attributes) अवलंबून होती—वापरकर्ते, शीर्षके आणि त्यांच्यातील प्रत्येक परस्परसंवादाचे वर्णन करणारे संख्यात्मक वेक्टर्स (numeric vectors). नवीन प्रकारचा आशय—लाईव्ह स्पोर्ट्स, पॉडकास्ट किंवा गेम्स—सिस्टमला शिफारस करण्यास सक्षम करण्यापूर्वी, इंजिनिअर्सना त्याचे नवीन वैशिष्ट्यांच्या संचात रूपांतर करण्यासाठी आठवडे खर्च करावे लागत होते. ही प्रक्रिया खर्चिक, नाजूक (brittle) आणि कॅटलॉगच्या वेगाने होणाऱ्या विस्तारानुसार सुसंगत ठेवणे कठीण होते.
उपलब्ध असलेले लार्ज लँग्वेज मॉडेल्स (LLMs) थेट वापरता येत नव्हते. ते सर्वात लोकप्रिय शीर्षकांकडे झुकत असत, कधीकधी अस्तित्वात नसलेल्या गोष्टींची कल्पना (hallucinate) करत असत आणि शिफारसी सुरक्षित आणि संबंधित ठेवण्यासाठी आवश्यक असलेले व्यावसायिक नियम लागू करण्यात त्यांना अडथळे येत होते. म्हणूनच नेटफ्लिक्सने एक विशेष (bespoke) LLM-आधारित पाइपलाइन तयार केली, जी प्रॉडक्शनच्या मर्यादांचा आदर राखून लँग्वेज मॉडेलची ताकद टिकवून ठेवते.
GenRec च्या आत: दोन टप्प्यांची प्रशिक्षण पाइपलाइन
GenRec मध्ये दोन वेगळे टप्पे आहेत:
- बेस मॉडेल फाईन-ट्यूनिंग (Base model fine-tuning) – नेटफ्लिक्स एका ओपन-वेट लँग्वेज मॉडेलपासून सुरुवात करते आणि अंतर्गत व्ह्यूइंग डेटावर त्याचे फाईन-ट्यूनिंग करते. यामुळे मॉडेलचे मूळ आर्किटेक्चर न बदलता त्याला कॅटलॉगची शब्दसंपदा आणि वापरकर्त्यांच्या वर्तणुकीचे नमुने शिकवले जातात.
- रेकमेंडेशन रँकिंग (Recommendation ranking) – प्रशिक्षणाचा दुसरा टप्पा फाईन-ट्यून केलेल्या मॉडेलला 'रँकर'मध्ये रूपांतरित करतो, जो एखाद्या विशिष्ट वापरकर्त्यासाठी संभाव्य शीर्षकांना स्कोअर देतो. नेटफ्लिक्स हे टप्पा वारंवार अपडेट करते जेणेकरून मॉडेल नवीन रिलीज आणि बदलत्या ट्रेंड्सनुसार अद्ययावत राहील.
जुन्या प्रणालीपेक्षा मुख्य फरक म्हणजे वापरकर्त्याचा इतिहास मॉडेलला कसा दिला जातो. वॉच सेशन्सना (watch sessions) डेंस वेक्टर्समध्ये कॉम्प्रेस करण्याऐवजी, GenRec प्रत्येक परस्परसंवाद—प्लेचा कालावधी, थंब्स-अप किंवा थंब्स-डाउन, व्हिडिओ लवकर सोडून जाणे—याचे साध्या इंग्रजी वाक्यांमध्ये रूपांतर करते. त्यानंतर मॉडेल संपूर्ण सेशन एका लहान संवादाप्रमाणे वाचते, ज्यामुळे कोणत्याही स्पष्ट 'फीचर इंजिनिअरिंग'शिवाय जॉनर (genre) किंवा मूडमधील सूक्ष्म बदल ओळखता येतात.
कामगिरी आणि कार्यक्षमतेतील वाढ
नेटफ्लिक्सच्या १०% ट्रॅफिकवर GenRec चा वापर करून केलेल्या चार आठवड्यांच्या प्रयोगामध्ये, नवीन प्रणालीने दोन मेट्रिक फॅमिलीमध्ये सांख्यिकीयदृष्ट्या महत्त्वपूर्ण वाढ दर्शवली:
- अल्पकालीन एंगेजमेंट (Short-term engagement) – दैनंदिन शिफारसींना चालना देणाऱ्या प्राथमिक क्लिक-थ्रू आणि वॉच-टाइम सिग्नल्समध्ये ०.११५% वाढ.
- दीर्घकालीन मुख्य मेट्रिक्स (Long-term core metrics) – सबस्क्राइबर रिटेंशन आणि एकूण समाधान स्कोअरमध्ये ०.००६% वाढ, जे व्यवसायासाठी अत्यंत महत्त्वाचे आहेत.
ऑफलाइन, होल्ड-आउट डेटासेटवरील रँकिंगची गुणवत्ता बेसलाईनच्या तुलनेत १.६% सुधारली. अधिक लक्षवेधी बाब म्हणजे डेटा कार्यक्षमता: पारंपारिक पाइपलाइनला समान कामगिरी गाठण्यासाठी आवश्यक असलेल्या लेबल केलेल्या उदाणांच्या तुलनेत, दुसऱ्या प्रशिक्षण टप्प्याला साधारणपणे १/४० व्या भागाचीच गरज भासली.
कम्प्युट बिल नियंत्रणात ठेवण्यासाठी, नेटफ्लिक्स vLLM वापरून मॉडेल चालवते, जे टेक्स्ट जनरेट करण्याऐवजी एका सिंगल फॉरवर्ड पासमध्ये प्रत्येक संभाव्य पर्यायाला स्कोअर देणारे सर्व्हिंग स्टॅक आहे. सिस्टीम आक्रमक फिल्टरिंग देखील लागू करते जेणेकरून केवळ उच्च-सिग्नल असलेले इव्हेंट्स मॉडेलच्या कॉन्टेक्स्ट विंडोमध्ये राहतील, ज्यामुळे अनावश्यक टोकन्स कमी होतात आणि लॅटन्सी (latency) कमी होते.
"फीचर्स" कडून "कॉन्टेक्स्ट" कडे वळण्याचा अर्थ काय
GenRec हा एका व्यापक चळवळीचा भाग आहे जिथे "कॉन्टेक्स्ट इंजिनिअरिंग" (context engineering) हे हँड-क्राफ्टेड फीचर्सची जागा घेत आहे. प्रत्येक शिफारस कार्यासाठी स्वतंत्र आर्किटेक्चर डिझाइन करण्याऐवजी, इंजिनिअर्स टेक्स्ट प्रॉम्प्टमध्ये कोणते सिग्नल्स टाकायचे हे ठरवतात आणि लँग्वेज मॉडेलला त्यावर तर्क (reasoning) करू देतात. हा दृष्टिकोन नवीन आशय प्रकारांचा समावेश करण्याची प्रक्रिया वेगवान करतो: पॉडकास्ट एपिसोड किंवा लाईव्ह-स्ट्रीम केलेला गेम एका वाक्यात वर्णन केला जाऊ शकतो आणि त्वरित शिफारस पूलमध्ये सामील होऊ शकतो, ज्यामुळे महिन्याभराचा 'फीचर-डेफिनेशन स्प्रिंट' टाळता येतो.
उरलेले अडथळे
LLM-आधारित शिफारस प्रणाली म्हणजे कोणताही रामबाण उपाय (silver bullet) नाही. लोकप्रिय गोष्टींवर जास्त भर देण्याची त्यांची प्रवृत्ती अजूनही कॅटलॉगमध्ये पूर्वग्रह (bias) निर्माण करते आणि शक्तिशाली GPUs ची गरज परिचालन खर्च (operational costs) वाढवते. vLLM आणि आक्रमक फिल्टरिंग असूनही, नेटफ्लिक्सच्या स्केलवर लार्ज लँग्वेज मॉडेल चालवण्यासाठी लॅटन्सीचे लक्ष्य गाठण्यासाठी काळजीपूर्वक इंजिनिअरिंगची आवश्यकता असते.
