सेल्फी से परे: Roblox की आयु-आश्वासन प्रणाली आयु जांच को अद्यतित रखने में कैसे मदद करती है
एक मॉड्यूलर, मल्टीमोडल व्यवहारिक एमएल सिस्टम जो सुरक्षा को प्राथमिकता देता है

Roblox के चेहरे की उम्र अनुमान प्रणाली ने 338 मिलियन आयु-जांच रिकॉर्ड संसाधित किए हैं ताकि Roblox उपयोगकर्ता प्लेटफ़ॉर्म पर आयु-उपयुक्त चैट अनलॉक कर सकें और आयु-उपयुक्त खेलों तक पहुँच सकें। प्रारंभिक आयु जांच आवश्यक है, लेकिन आयु सत्यापन सेल्फी पर समाप्त नहीं होता। खाते साझा किए जा सकते हैं या छोटे भाई-बहन को सौंपे जा सकते हैं। खराब इरादे वाले लोग हमारी सुरक्षा व्यवस्था की जांच करने की कोशिश कर सकते हैं। समय-विशेष के संकेत से आगे बढ़कर आयु सत्यापन को सुनिश्चित करने के लिए, हमने एक उच्च-प्रवाह एमएल परत (high-throughput ML layer) बनाई है जो यह मूल्यांकन करती है कि क्या किसी खाते का चल रहा व्यवहार समय के साथ उसकी अनुमानित आयु से मेल खाता है। हमारा फीचर-स्तरीय मॉड्यूलर डिज़ाइन कुशल मॉडल अपडेट और बदलते व्यवहार पैटर्न के प्रति त्वरित अनुकूलन को सक्षम बनाता है।
हमारे एंड-टू-एंड आयु-प्रमाणन वर्कफ़्लो को विश्वसनीय रूप से संचालित करना उतना ही एक वितरित सिस्टम चुनौती है जितना कि एक एमएल चुनौती। आयु का अनुमान लगाना अपने आप में एक कठिन एमएल समस्या है क्योंकि आयु की सीमाएँ व्यवहारिक खाई नहीं हैं। माता-पिता अपने बच्चों के समान अनुभवों का आनंद ले सकते हैं, और भाषा संस्कृति, संदर्भ और समुदाय के साथ-साथ आयु के अनुसार भी भिन्न होती है। कोई भी एकल व्यवहारिक संकेत समय के साथ और प्रतिद्वंद्वी दबाव में बदलने वाले सूक्ष्म व्यवहारिक पैटर्न को विश्वसनीय रूप से कैप्चर नहीं कर सकता है। हमारे सबसे मजबूत ग्राउंड ट्रुथ लेबल भी एक चयनित आबादी से आते हैं और उनमें पक्षपात हो सकता है।
Roblox के पैमाने पर संचालन करने से अतिरिक्त जटिलता जुड़ जाती है। प्रत्येक दैनिक इन्फरेंस चक्र में, हम पूरे प्लेटफ़ॉर्म से व्यवहार संबंधी संकेतों को एकत्र करते हैं, प्रत्येक वर्कलोड के लिए सबसे उपयुक्त कंप्यूट स्टैक पर सबमॉडलों को चलाते हैं, और उनके आउटपुट को एक मापा हुआ अनुमान बनाने के लिए जोड़ते हैं। हमारे मॉडल पारंपरिक एमएल क्लासिफायर से लेकर 300 मिलियन से अधिक पैरामीटर वाले बहुभाषी ट्रांसफॉर्मर तक के हैं। यह सिस्टम हर दिन लगभग दो अरब खाता-स्तर के रिकॉर्ड संसाधित करता है, जबकि प्रशिक्षण के लिए लगभग 30 मिलियन उच्च-विश्वास आयु लेबल का उपयोग किया जाता है।
पूरे सिस्टम को इन-हाउस बनाने से हमें वह पारदर्शिता और नियंत्रण मिलता है जिसकी हमें गोपनीयता के लिए सभी सुविधाओं और संकेतों की समीक्षा करने के लिए आवश्यकता है, जो एक केंद्रीय डिज़ाइन आवश्यकता है। हम रॉब्लॉक्स-विशिष्ट संकेतों का भी उपयोग कर सकते हैं जो समय के साथ एक खाते के उपयोग को दर्शाते हैं—एक दीर्घकालिक संदर्भ जो एक स्वतंत्र बाहरी अनुमानक के पास अपने आप नहीं होता। यह हमें पूरे एमएल जीवन चक्र पर नियंत्रण भी देता है। हम जैसे-जैसे वे उपलब्ध होते हैं, विभिन्न तरीकों को संयोजित कर सकते हैं, और रॉब्लॉक्स सुरक्षा वर्कफ़्लो के लिए आउटपुट को कैलिब्रेट कर सकते हैं, साथ ही व्यवहार बदलने पर व्यक्तिगत घटकों की निगरानी, नियंत्रण और अद्यतन कर सकते हैं।
आयु का अनुमान लगाने के लिए सही संकेतों का चयन
विभिन्न आयु वर्ग खेल, संचार और प्लेटफ़ॉर्म इंटरैक्शन पैटर्न में Roblox का उपयोग अलग-अलग तरीकों से करते हैं। व्यवहार की विविधता को कैप्चर करने के लिए, हम अपने इनपुट को अलग-अलग सिग्नल परिवारों में विभाजित करते हैं:
- सामाजिक संदर्भ: उपयोगकर्ता के सामाजिक दायरे में समग्र पैटर्न, जिसमें यह शामिल है कि वे किससे जुड़ते हैं और वे कितनी बार संपर्क करते हैं।
- अनुभव सहभागिता: ऐसे समग्र पैटर्न जो उपयोगकर्ताओं के खेलने से परे जाते हैं, जिसमें यह शामिल है कि वे कब खेलते हैं, वे कितनी देर तक रहते हैं, और समय के साथ उनकी सहभागिता कैसे बदलती है।
- खाता और प्लेटफ़ॉर्म गतिविधि: प्लेटफ़ॉर्म उपयोग और जीवन चक्र संकेतों का समेकित डेटा, जैसे कि खाते की अवधि, गतिविधि की आवृत्ति, और सत्र-स्तरीय व्यवहार।
- संचार पैटर्न: आयु-संबंधित भाषा उपयोग के मॉडल-आधारित सारांश, जिसमें यह भी शामिल है कि संदर्भ और समय के साथ संचार पैटर्न कैसे भिन्न होते हैं।
- सीखे गए उपयोगकर्ता प्रतिनिधित्व: उच्च-स्तरीय प्रतिनिधित्व जो व्यापक उपयोग पैटर्न को दर्शाते हैं। हम अपनी डिस्कवरी और पर्सनलाइज़ेशन एमएल टीम के साथ मिलकर काम करते हैं; वही समृद्ध प्रतिनिधित्व जो यह भविष्यवाणी करते हैं कि कोई उपयोगकर्ता आगे किससे जुड़ सकता है, उन्हें व्यापक आयु वर्गों की भविष्यवाणी करने के लिए पोस्ट-ट्रेन्ड किया जा सकता है।
प्रत्येक सिग्नल परिवार को एक ऐसा मॉडल मिलता है जो उसके डेटा के आकार के अनुकूल हो। विरल, उच्च-आयामी समेकित सिग्नलों को ग्रेडिएंट-बूस्टेड निर्णय वृक्षों (जैसे, XGBoost क्लासिफायर) द्वारा संभाला जाता है; टेक्स्ट को एक फाइन-ट्यून किए गए बहुभाषी ट्रांसफॉर्मर एन्कोडर (mmBERT) द्वारा संभाला जाता है; और उपयोगकर्ता प्रतिनिधित्व कुछ कॉम्पैक्ट न्यूरल नेटवर्क (मल्टीलेयर पर्सैप्ट्रॉन) को फीड करते हैं।
प्रत्येक उप-मॉडल एक ही लक्ष्य की भविष्यवाणी करता है: आयु वर्गों के एक सेट पर एक संभाव्यता वितरण। फिर एक ग्रेडिएंट-बूस्टेड मेटा-लर्नर उन संभाव्यता वेक्टर्स को अंतिम कैलिब्रेटेड अनुमान में जोड़ता है।

हमने मॉड्यूलरिटी, वेग, और व्याख्यात्मकता के लिए जानबूझकर एक मोनोलिथिक फीचर-स्तर के मॉडल के बजाय इस निर्णय-स्तर के फ्यूजन दृष्टिकोण को चुना। सिस्टम को मॉड्यूलर बनाने से हम पूरे सिस्टम को फिर से बनाने के बिना एक सबमॉडल को जोड़ने, पुनः प्रशिक्षित करने, या सेवानिवृत्त करने में सक्षम होते हैं। यह हमें प्राकृतिक विकास या प्रतिद्वंद्वी दबाव के कारण व्यवहार पैटर्न बदलने पर अधिक तेज़ी से प्रतिक्रिया करने की अनुमति भी देता है। फ्यूज़न लेयर प्रत्येक सबमॉडल के नवीनतम प्रमोटेड आउटपुट को पढ़ती है ताकि यह सर्वोत्तम उपलब्ध संकेतों का उपयोग कर सके और जब कोई अनुपस्थित या विलंबित हो तो सुचारू रूप से कार्य कर सके। चूँकि प्रत्येक मोडैलिटी एक अलग इनपुट के रूप में प्रवेश करती है, हम यह पता लगा सकते हैं कि कौन से संकेत परिवार निर्णय परिवर्तनों को प्रेरित कर रहे हैं, और आउटपुट को डाउनस्ट्रीम में उपयोग किए जाने से पहले कैलिब्रेशन और गुणवत्ता गेट लागू कर सकते हैं।
हम फ्यूज़न लेयर पर कैलिब्रेशन लागू करते हैं क्योंकि एक सुरक्षा प्रणाली में, शुद्ध सटीकता की तुलना में पूर्वानुमाननीयता अधिक महत्वपूर्ण है। हम मॉडलों को इस तरह से कैलिब्रेट करते हैं कि वे हमें ऐसे विश्वास स्कोर दें जिन पर हम भरोसा कर सकें। इस तरह, यदि कोई डाउनस्ट्रीम कार्रवाई किसी उपयोगकर्ता को भारी रूप से प्रभावित करने वाली है, तो हम कोई निष्कर्ष निकालने से पहले मजबूत सबूत और उच्च विश्वास की मांग कर सकते हैं।
लेबल में चयन पक्षपात
हमारे सबसे अधिक विश्वसनीय लेबल उन उपयोगकर्ताओं से आते हैं जिन्होंने एक मजबूत आयु जांच पूरी की है। ये लेबल उपयोगी हैं, लेकिन ये Roblox उपयोगकर्ताओं का कोई यादृच्छिक नमूना नहीं हैं। एक ऐसी प्रणाली के लिए जो उपयोगकर्ता की पहुंच को प्रभावित कर सकती है, प्रतिनिधित्व प्रशिक्षण के उद्देश्य का एक मुख्य हिस्सा है।
लेबल की गई जनसंख्या लक्ष्य जनसंख्या नहीं है। जो उपयोगकर्ता मजबूत आयु जांच पूरी करते हैं, वे व्यापक जनसंख्या से व्यवस्थित रूप से भिन्न होते हैं। उस समूह पर प्रशिक्षित एक सरल मॉडल के लिए यह जोखिम होता है कि वह आयु जानने के साथ-साथ यह भी सीख जाए कि प्रक्रिया को कौन पूरा करना चुनता है। उस चयन पक्षपात को कम करने के लिए, हम प्रशिक्षण और मूल्यांकन डेटा को फिर से वज़न देते हैं ताकि लेबल किया गया नमूना उस जनसंख्या को बेहतर ढंग से दर्शाए जिसका हम स्कोर करने का इरादा रखते हैं।
हम उपयोगकर्ता अनुसंधान के साथ क्रॉस-फ़ंक्शनल रूप से काम करते हैं, और वेटिंग के लिए उपयोग की जाने वाली जनसंख्या लक्ष्यों के बारे में जानकारी देने के लिए एकत्रित सर्वेक्षण परिणामों का उपयोग करते हैं। वहां से, हम इन्वर्स प्रॉपेन्सिटी वेटिंग और इटरेटिव प्रपोर्शनल फिटिंग—या रैकिंग—जैसी तकनीकों का उपयोग करते हैं, ताकि किसी एक कारक को अलग से ठीक करने के बजाय एक साथ कई आयामों में वेटेड नमूने को संरेखित किया जा सके।
हर उच्च-विश्वास स्रोत एक उपयोगी प्रशिक्षण उदाहरण नहीं बनाता है। एक लेबल केवल उतना ही विश्वसनीय होता है जितनी विश्वसनीय उसके पीछे की सत्यापन घटनाएँ होती हैं। कुछ घटनाओं में ऐसे संकेत हो सकते हैं जो उन्हें मॉडल प्रशिक्षण के लिए अनुपयुक्त बनाते हैं, जैसे कि असामान्य सत्यापन पैटर्न या खाते की अखंडता संबंधी चिंताएँ।
हम प्रशिक्षण से पहले, व्यवहार मॉडलिंग के लिए वितरण से बाहर दिखने वाले उदाहरणों को हटाने के लिए, अखंडता-जागरूक लेबल फ़िल्टरिंग या कॉन्फिडेंट लर्निंग जैसी लेबल त्रुटि पहचान दृष्टिकोणों के साथ लेबल को साफ करने का प्रयास करते हैं। शुरुआती प्रयोगों से पता चलता है कि इस तरह की सफ़ाई मॉडल को ओवरफ़िटिंग से बचाने में मदद करती है और लगातार प्रदर्शन लाभ प्रदान करती है।

प्रशिक्षण, इन्फरेंस, और Roblox पैमाने पर स्कीव से बचना
सिग्नल को ताज़ा रखने के लिए इंफरेंस को पर्याप्त बार चलाने की आवश्यकता होती है, लेकिन ट्रेनिंग की गति सिग्नल परिवार के अनुसार भिन्न हो सकती है। हम फीचर ड्रिफ्ट, मॉडल स्थिरता और मॉडल लागत के आधार पर पुनः प्रशिक्षण अनुसूचियों का चयन करते हैं। एक ऐसा सिग्नल जो तेज़ी से बदलता या बिगड़ता है, वह अधिक बार पुनः प्रशिक्षण कर सकता है; धीमी गति से प्रदर्शन करने वाले भारी मॉडल को कम बार या मांग पर पुनः प्रशिक्षण दिया जा सकता है।
कंप्यूट स्टैक वर्कलोड के आकार का अनुसरण करता है। हम बड़े पैमाने पर संरचित परिवर्तनों के लिए अपाचे स्पार्क, जीपीयू-समर्थित वर्कलोड के लिए रे फ्रेमवर्क, और रीयल-टाइम सिग्नल प्रोसेसिंग के लिए प्रोडक्शन वर्कर्स का उपयोग करते हैं।
Roblox के पैमाने पर, हर दिन हर खाते के पूरे इतिहास को फिर से बनाना भी व्यावहारिक नहीं होगा। हमारा इन-हाउस डेटा-प्रोसेसिंग फ्रेमवर्क उच्च-मात्रा वाले सिग्नलों के लिए सीमित, रोलिंग इतिहास बनाए रखता है और महंगी ट्रांसफॉर्मेशनों को चरणों में मटीरियलाइज़ करता है। यह हमें बड़े विस्तार, जॉइन्स, और फीचर एग्रीगेशन्स को स्वतंत्र रूप से स्केल करते हुए, हर दिन लाखों अकाउंट-स्तर के रिकॉर्ड को प्रोसेस और एग्रीगेट करने की अनुमति देता है। यह हाइब्रिड प्रोडक्शन डिज़ाइन हमें हमारे डेटा वेयरहाउस के साथ सीधे एकीकरण, मॉडल घटकों में पुनरुत्पादित निष्पादन, और जहां यह मायने रखता है, वहां त्वरित कंप्यूट तक पहुंच प्रदान करता है।
हमारे पैमाने पर स्थिरता बनाए रखने में मदद के लिए, हम अपनी फ़ीचर पाइपलाइनों में दो सख़्त डिज़ाइन निर्णय लागू करते हैं:
- व्युत्पन्न फ़ीचर्स को स्टोर करें: हम जहाँ भी संभव हो, कच्ची गतिविधि स्ट्रीम के बजाय व्युत्पन्न फ़ीचर्स को स्टोर करते हैं। हम मॉडलिंग के लिए आवश्यक सिग्नल को रखते हैं, न कि उसके पीछे के पूरे इतिहास को।
- एकीकृत डेटा कॉन्ट्रैक्ट्स: एक ही डेटा कॉन्ट्रैक्ट्स प्रशिक्षण और इंफरेंस दोनों को फ़ीड करते हैं। यह एमएल (ML) सिस्टम में सबसे आम विफलता मोड में से एक को कम करता है: जो प्रशिक्षित किया गया था और जो परोसा जा रहा है उसके बीच का असंतुलन।
हम प्रोडक्शन जीवन चक्र में दो बिंदुओं पर गेटिंग का उपयोग करते हैं। पहला, मॉडल प्रमोशन, मॉडल ट्रेनिंग से अलग है। किसी उम्मीदवार मॉडल को प्रोडक्शन इंफरेंस के लिए पात्र बनने से पहले गार्डरेल चेक्स पास करनी होती हैं। यदि कोई उम्मीदवार हमारे गार्डरेल चेक्स में विफल हो जाता है, तो पाइपलाइन प्रमोशन को ब्लॉक कर देती है और हम नवीनतम प्रमोट किए गए अच्छे संस्करण को ही सर्व करते रहते हैं।
दूसरा, इन्फरेंस आउटपुट को डाउनस्ट्रीम में प्रकाशित करने से पहले गेट किया जाता है। स्वचालित जांच गुणवत्ता में गिरावट और पूर्वानुमान-वितरण में बड़े बदलावों की तलाश करती हैं। यदि कोई जांच विफल हो जाती है, तो प्रकाशित करने का चरण अवरुद्ध हो जाता है। उपयोगकर्ता-सामना करने वाले सुरक्षा वर्कफ़्लो से जुड़े एमएल सिस्टम में, एक अस्पष्ट वितरण परिवर्तन को जारी करने की तुलना में "आज कुछ न करें" अक्सर एक सुरक्षित विफलता मोड होता है।
सिस्टम का मापन
इस तरह की प्रणाली के लिए, सटीकता का एक ही आंकड़ा बहुत मायने नहीं रखता। हम रैंकिंग गुणवत्ता, कैलिब्रेशन, समय के साथ स्थिरता, और महत्वपूर्ण आयु-समूह सीमाओं के पास व्यवहार के आधार पर मॉडल की गुणवत्ता का मूल्यांकन करते हैं। हम मूल्यांकन डेटा के प्रतिनिधित्व को भी मापन समस्या का हिस्सा मानते हैं, क्योंकि एक समग्र सुधार तभी उपयोगी होता है जब वह उस आबादी को दर्शाता हो जिसकी सेवा करने के लिए प्रणाली बनाई गई है।
यह संयुक्त मॉडल इस भारित, अलग रखे गए मूल्यांकन डेटा पर 0.9 से अधिक की औसत सटीकता (mean average precision) प्राप्त करता है। इसके उच्च-विश्वास वाले अनुमान दिन-प्रतिदिन भी सुसंगत रहते हैं। लगातार दिनों पर 99% से अधिक अनुमान एक ही व्यापक आयु वर्ग में रहते हैं।
हम अपने ट्रस्ट और सेफ्टी वर्कफ़्लो के माध्यम से प्रशिक्षित मानव समीक्षकों द्वारा उत्पन्न स्वतंत्र ग्राउंड ट्रुथ से भी मॉडल की तुलना करते हैं। उच्च विश्वास पर, मॉडल का आयु-समूह अनुमान वयस्कों के लिए मानव सर्वसम्मति लेबल से 80% से अधिक समय पर मेल खाता है।
ऑफ़लाइन मूल्यांकन केवल एक परत है। प्रोडक्शन में, मौसमीय बदलाव, उत्पाद लॉन्च और विरोधी दबाव के साथ उपयोगकर्ता का व्यवहार बदलता रहता है। इसीलिए हम आउटपुट का आगे उपयोग करने से पहले, मॉडल-मूल्यांकन मेट्रिक्स को पूर्वानुमान वितरण, ड्रिफ्ट और स्थिरता की चल रही निगरानी के साथ जोड़ते हैं। हम फॉलो-अप आयु जांच के परिणामों की भी निगरानी करते हैं, ताकि प्रोडक्शन फीडबैक मॉडल की विश्वसनीयता के बारे में जानकारी दे सके और यह इंगित कर सके कि सीमाओं या समीक्षा पथों को कहाँ समायोजित किया जाना चाहिए।
आगे क्या
इस सिस्टम को इन-हाउस रखने से हम रोब्लॉक्स-विशिष्ट संकेतों का सुरक्षित रूप से लाभ उठा सकते हैं, अत्यधिक सख्ती के साथ काम कर सकते हैं, और लगातार सुधार कर सकते हैं।
आगे बढ़ते हुए, हम अपने सबमॉडलों, इंफरेंस और माप को अनुकूलित करने पर ध्यान केंद्रित कर रहे हैं। हम मॉड्यूलरिटी, कैलिब्रेशन, गोपनीयता और प्रोडक्शन गार्डरेल के अपने परिचालन सिद्धांतों पर ध्यान केंद्रित करते हुए प्रत्येक परत को और आगे बढ़ाते हैं।


