या साइटवरील सामग्री कृत्रिम बुद्धिमत्ता (AI) किंवा मशीन भाषांतर तंत्रज्ञानाचा वापर करून भाषांतरित केली आहे आणि त्यात त्रुटी असू शकतात.

Skip to content

सेल्फीच्या पलीकडे: Roblox ची वयो-निश्चिती प्रणाली वयाच्या तपासण्या अद्ययावत ठेवण्यास कशी मदत करते

सुरक्षेला प्राधान्य देणारी मॉड्यूलर, बहुमोडल वर्तनात्मक मशीन लर्निंग प्रणाली

Roblox च्या चेहऱ्यावरील वय अंदाज प्रणालीने 338 दशलक्ष वय-तपासणी नोंदी प्रक्रिया केल्या आहेत, ज्यामुळे Roblox वापरकर्त्यांना प्लॅटफॉर्मवर वयानुसार योग्य चॅट अनलॉक करण्यास आणि वयानुसार योग्य गेम्समध्ये प्रवेश मिळण्यास मदत होते. प्रारंभिक वय तपासणी आवश्यक आहे, परंतु वयाची पुष्टी सेल्फीपुरती मर्यादित राहत नाही. खाती शेअर केली जाऊ शकतात किंवा लहान भावाला/बहिणीला हस्तांतरित केली जाऊ शकतात. दुष्ट हेतू असलेले लोक आमच्या संरक्षणाची तपासणी करण्याचा प्रयत्न करू शकतात. वेळेच्या एका विशिष्ट क्षणापुरती मर्यादित न राहता वयाची खात्री अधिक पुढे नेण्यासाठी, आम्ही एक उच्च-प्रवाह ML थर तयार केला आहे जो खात्याच्या सध्याच्या वर्तनाची त्याच्या अंदाजित वयाशी कालांतराने जुळणारी स्थिती तपासतो. आमची वैशिष्ट्य-स्तरीय मॉड्यूलर रचना कार्यक्षम मॉडेल अद्यतने आणि बदलत्या वर्तनाच्या नमुन्यांशी जलद जुळवून घेण्याची क्षमता प्रदान करते. 

आमचा एंड-टू-एंड वयाची हमी देणारा वर्कफ्लो विश्वासार्हपणे चालवणे हे एमएल आव्हानाइतकेच वितरित प्रणालींचे आव्हान देखील आहे. वय अंदाज लावणे ही स्वतःच एक कठीण ML समस्या आहे कारण वयाच्या सीमा वर्तनातील ठळक बदल नसतात. पालकांना त्यांच्या मुलांसारखेच अनुभव आवडू शकतात, आणि भाषा संस्कृती, संदर्भ, समुदाय तसेच वयानुसार बदलते. कोणताही एकल वर्तनात्मक संकेत काळानुसार आणि प्रतिस्पर्धात्मक दबावाखाली बदलणाऱ्या सूक्ष्म वर्तनात्मक नमुन्यांना विश्वासार्हपणे टिपू शकत नाही. अगदी आमच्या सर्वात मजबूत वास्तविक वयाच्या लेबलही निवडक लोकसंख्येवरून येतात आणि त्यात पक्षपात असू शकतो.

Roblox च्या प्रमाणात कार्य केल्याने अतिरिक्त गुंतागुंत वाढते. प्रत्येक दैनंदिन इनफरन्स चक्रात, आम्ही प्लॅटफॉर्मभरातील वर्तनात्मक संकेत एकत्र करतो, प्रत्येक कार्यभारासाठी सर्वात योग्य असलेल्या कम्प्यूट स्टॅकवर उपमॉडेल चालवतो आणि त्यांचे आउटपुट एका समायोजित अंदाजात एकत्र करतो. आमची मॉडेल्स पारंपारिक एमएल वर्गीकरणकर्त्यांपासून ते 300 दशलक्षाहून अधिक पॅरामीटर्स असलेल्या बहुभाषिक ट्रान्सफॉर्मर्सपर्यंत आहेत. ही प्रणाली दररोज सुमारे दोन अब्ज खात्या-स्तरीय नोंदी प्रक्रिया करते, तर प्रशिक्षणासाठी जवळपास 30 दशलक्ष उच्च-विश्वासार्हता वयोगट लेबले वापरली जातात.

संपूर्ण प्रणाली घरगुतीपणे तयार केल्यामुळे आम्हाला गोपनीयतेसाठी सर्व वैशिष्ट्ये आणि संकेत पुनरावलोकन करण्यासाठी आवश्यक असलेली पारदर्शकता आणि नियंत्रण मिळते, जी एक केंद्रीय डिझाइन आवश्यकता आहे. आम्ही Roblox-विशिष्ट संकेतांचा देखील वापर करू शकतो जे कालांतराने खाते कसे वापरले जाते हे टिपतात—हा एक दीर्घकालीन संदर्भ आहे जो स्वतंत्र बाह्य अंदाजकाकडे स्वतःहून उपलब्ध नसतो. हे आम्हाला संपूर्ण ML जीवनचक्रावर नियंत्रण देखील देते. उपलब्ध होताच आम्ही विविध पद्धती (modalities) एकत्र करू शकतो, आणि वर्तनात बदल होत असताना वैयक्तिक घटकांचे निरीक्षण, नियंत्रण आणि अद्यतन करत असताना Roblox सुरक्षा कार्यप्रवाहांसाठी आउटपुटचे प्रमाणन करू शकतो.

वय भाकीत करण्यासाठी योग्य संकेत निवडणे

खेळ, संवाद आणि प्लॅटफॉर्म परस्परसंवाद पद्धतींमध्ये विविध वयोगट Roblox वापरताना वेगवेगळ्या प्रकारे वागतात. वर्तनातील विविधता टिपण्यासाठी, आम्ही आमच्या इनपुट्सना वेगवेगळ्या सिग्नल कुटुंबांमध्ये विभागतो:

  • सामाजिक संदर्भ: वापरकर्त्याच्या सामाजिक वर्तुळातील नमुने, ज्यात ते कोणाशी जोडले आहेत आणि ते किती वेळा संवाद साधतात याचा समावेश होतो.
  • अनुभवातील गुंतवणूक: वापरकर्ते काय खेळतात याच्या पलीकडे जाणारी एकत्रित पॅटर्न, ज्यात ते कधी खेळतात, किती वेळ थांबतात आणि कालांतराने त्यांची गुंतवणूक कशी बदलते हे टिपले जाते.
  • खाते आणि प्लॅटफॉर्म क्रियाकलाप: एकत्रित प्लॅटफॉर्म वापर आणि जीवनचक्र संकेत, जसे की खात्याचा कालावधी, क्रियाकलापांची वारंवारता आणि सत्र-स्तरीय वर्तन.
  • संवाद नमुने: मॉडेल-आधारित सारांश ज्यात वयानुसार संबंधित भाषा वापराचा समावेश होतो, तसेच संदर्भ आणि काळानुसार संवाद नमुने कसे बदलतात हे दर्शविते.
  • शिकलेली वापरकर्ता प्रतिनिधित्वे: व्यापक वापर नमुने टिपणाऱ्या उच्च-स्तरीय प्रतिनिधित्वा. आम्ही आमच्या डिस्कव्हरी आणि पर्सनलायझेशन ML टीमसोबत जवळून काम करतो; वापरकर्ता पुढे काय सहभागी होईल हे भाकीत करणारी तीच समृद्ध प्रतिनिधित्वे व्यापक वयोगटांचे भाकीत करण्यासाठी पुन्हा प्रशिक्षण देण्यासाठी वापरली जाऊ शकतात.

प्रत्येक सिग्नल कुटुंबाला त्याच्या डेटाच्या आकाराशी जुळणारा मॉडेल मिळतो. विरळ, उच्च-आयामी एकत्रित सिग्नल्स ग्रॅडिएंट-बूस्टेड निर्णय वृक्षांद्वारे हाताळले जातात (उदा., XGBoost वर्गीकरणकर्ते); मजकूरासाठी फाईन-ट्यून केलेला बहुभाषिक ट्रान्सफॉर्मर एन्कोडर (mmBERT) वापरला जातो; आणि वापरकर्ता प्रतिनिधित्व काही संक्षिप्त न्यूरल नेटवर्क (मल्टीलेयर पर्सिपेট্রॉन) मध्ये पुरवले जाते. 

प्रत्येक उपमॉडेल समान लक्ष्य भाकीत करते: वयोगटांच्या संचावरील संभाव्यता वितरण. नंतर एक ग्रेडियंट-बूस्टेड मेटा-लर्नर त्या संभाव्यता सदिशांना अंतिम कॅलिब्रेटेड अंदाजात एकत्र करतो. 

आम्ही मॉड्युलॅरिटी, गती आणि स्पष्टीकरणासाठी एका एकसंध वैशिष्ट्य-स्तरीय मॉडेलऐवजी हा निर्णय-स्तरीय फ्यूजन दृष्टिकोन जाणूनबुजून निवडला. प्रणाली मॉड्युलर केल्यामुळे आम्ही संपूर्ण प्रणाली पुन्हा तयार न करता उपमॉडेल जोडू, पुनःप्रशिक्षित करू किंवा निवृत्त करू शकतो. नैसर्गिक उत्क्रांती किंवा प्रतिस्पर्धात्मक दबावामुळे वर्तनाच्या नमुन्यांमध्ये बदल झाल्यास आम्हाला अधिक जलद प्रतिसाद देता येतो. फ्युजन लेयर प्रत्येक उपमॉडेलचा नवीनतम प्रमोट केलेला आउटपुट वाचते, ज्यामुळे ते उपलब्ध सर्वोत्तम सिग्नल्स वापरू शकते आणि एखादा सिग्नल अनुपस्थित किंवा विलंबित झाल्यास सुरळीतपणे कार्यक्षमता कमी करू शकते. प्रत्येक मोडॅलिटी स्वतंत्र इनपुट म्हणून येत असल्यामुळे, आम्ही कोणत्या सिग्नल कुटुंबांमुळे निर्णय बदल होत आहेत हे ट्रॅक करू शकतो, आणि आउटपुट्स पुढील प्रक्रियेत वापरण्यापूर्वी कॅलिब्रेशन आणि गुणवत्ता गेट्स लागू करू शकतो.

आम्ही फ्यूजन लेयरवर कॅलिब्रेशन लागू करतो कारण सुरक्षा प्रणालीमध्ये, शुद्ध अचूकतेपेक्षा पूर्वानुमानक्षमता अधिक महत्त्वाची असते. आम्ही मॉडेल्सचे कॅलिब्रेशन अशा प्रकारे करतो की ते आम्हाला विश्वास ठेवण्याजोगे आत्मविश्वास गुण (confidence scores) देतात. अशा प्रकारे, जर एखादी पुढची क्रिया वापरकर्त्यावर मोठा परिणाम करणारी असेल, तर परिणाम काढण्यापूर्वी आम्ही अधिक मजबूत पुरावे आणि उच्च आत्मविश्वास मागू शकतो.

लेबल्समध्ये निवड पक्षपात

आमची सर्वात जास्त विश्वासार्ह लेबले ती वापरकर्ते देतात ज्यांनी कडक वयाची पडताळणी पूर्ण केली आहे. ही लेबले उपयुक्त आहेत, परंतु ती Roblox वापरकर्त्यांचा यादृच्छिक नमुना नाहीत. वापरकर्त्यांच्या प्रवेशावर परिणाम करू शकणाऱ्या प्रणालीसाठी, प्रतिनिधित्व हा प्रशिक्षणाच्या उद्दिष्टाचा एक मुख्य भाग आहे. 

लेबल केलेली लोकसंख्या लक्ष्यित लोकसंख्या नाही. मजबूत वय तपासणी पूर्ण करणारे वापरकर्ते व्यापक लोकसंख्येपेक्षा प्रणालीबद्धरीत्या भिन्न असतात. त्या गटावर प्रशिक्षित केलेल्या साध्या मॉडेलला वय शिकण्याइतकेच कोणी ही प्रक्रिया पूर्ण करण्याचा निर्णय घेतो हे देखील शिकण्याचा धोका असतो. हा निवड पक्षपात कमी करण्यासाठी, आम्ही प्रशिक्षण आणि मूल्यांकन डेटाचे पुन्हा वजन करतो, ज्यामुळे लेबल केलेला नमुना आम्ही स्कोअर करायची इच्छित असलेल्या लोकसंख्येचे अधिक चांगले प्रतिनिधित्व करतो. 

आम्ही वापरकर्ता संशोधनासोबत आंतरविभागीयपणे काम करतो, वेटिंगसाठी वापरल्या जाणाऱ्या लोकसंख्या लक्ष्यांबद्दल माहिती देण्यासाठी एकत्रित सर्व्हेक्षण निकाल वापरतो. त्यानंतर, एका घटकासाठी स्वतंत्रपणे दुरुस्ती करण्याऐवजी एकाच वेळी अनेक आयामांमध्ये वेटेड नमुना जुळवून आणण्यासाठी आम्ही इन्व्हर्स प्रॉपेंडेंसी वेटिंग आणि पुनरावृत्ती प्रमाणात्मक फिटिंग—किंवा रॅकिंग—यांसारख्या तंत्रांचा वापर करतो. 

प्रत्येक उच्च-विश्वासार्ह स्रोत वापरण्यायोग्य प्रशिक्षण उदाहरण तयार करत नाही. लेबल त्यामागील पडताळणी घटनांइतकेच विश्वासार्ह असते. काही घटनांमध्ये असा संकेत असू शकतो ज्यामुळे त्या मॉडेल प्रशिक्षणासाठी योग्य ठरत नाहीत, जसे की असामान्य पडताळणी नमुने किंवा खात्याच्या अखंडतेशी संबंधित चिंता. 

आम्ही प्रशिक्षणापूर्वी विश्वासार्हतेची जाणीव असलेल्या लेबल फिल्टरिंग किंवा कॉन्फिडेंट लर्निंगसारख्या लेबल त्रुटी ओळखण्याच्या पद्धती वापरून लेबल स्वच्छ करण्याचा प्रयत्न करतो, जेणेकरून वर्तनात्मक मॉडेलिंगसाठी वितरणाबाहेर दिसणारी उदाहरणे काढून टाकता येतील. सुरुवातीच्या प्रयोगांनी दाखवले आहे की अशा प्रकारची साफसफाई मॉडेलला ओव्हरफिटिंगपासून वाचवण्यास मदत करते आणि सातत्यपूर्ण कामगिरी वाढवते.

प्रशिक्षण, निष्कर्ष आणि Roblox स्तरावर असंतुलन टाळणे

सिग्नल्स ताजे ठेवण्यासाठी इन्फरन्स पुरेशी वारंवार चालवणे आवश्यक असते, परंतु प्रशिक्षणाची लय सिग्नल कुटुंबावर अवलंबून बदलू शकते. आम्ही वैशिष्ट्य विस्थापन, मॉडेल स्थिरता आणि मॉडेल खर्च यावर आधारित पुनःप्रशिक्षण वेळापत्रक निवडतो. जो सिग्नल लवकर बदलतो किंवा बिघडतो, तो अधिक वारंवार पुनःप्रशिक्षण करू शकतो; ज्याचे प्रदर्शन हळू गतीने बदलते अशा जड मॉडेलचे पुनःप्रशिक्षण कमी वारंवार किंवा मागणीनुसार केले जाऊ शकते. 

कंप्यूट स्टॅक कार्यभाराच्या स्वरूपाशी जुळतो. आम्ही मोठ्या प्रमाणावर संरचित रूपांतरणांसाठी Apache Spark, GPU-समर्थित कार्यभारांसाठी Ray फ्रेमवर्क आणि रिअल-टाइम सिग्नल प्रक्रिया करण्यासाठी प्रोडक्शन वर्कर्स वापरतो. 

Roblox च्या प्रमाणात, प्रत्येक खात्याचा संपूर्ण इतिहास दररोज पुन्हा तयार करणे देखील व्यावहार्य नाही. आमचे इन-हाऊस डेटा-प्रोसेसिंग फ्रेमवर्क उच्च-प्रमाणातील सिग्नलसाठी मर्यादित, रोलिंग इतिहास राखते आणि महागड्या रूपांतरणांना टप्प्याटप्प्याने साकार करते. यामुळे आम्हाला दररोज लाखो खाते-स्तरीय नोंदी प्रक्रिया आणि एकत्रित करण्याची परवानगी मिळते, तर मोठ्या विस्तारांना, जॉइन्सना आणि फीचर एकत्रीकरणांना स्वतंत्रपणे स्केल करता येते. हा हायब्रिड प्रोडक्शन डिझाइन आम्हाला आमच्या डेटा वेअरहाऊसशी थेट एकत्रीकरण, मॉडेल घटकांमध्ये पुनरुत्पादित होणारी अंमलबजावणी, आणि जिथे गरज आहे तिथे वेगवान संगणकीय शक्ती मिळवून देतो.

आमच्या प्रमाणात स्थिरता राखण्यासाठी, आम्ही आमच्या फीचर पाइपलाइन्समध्ये दोन कडक डिझाइन निर्णय अंमलात आणतो:

  • उत्पादित वैशिष्ट्ये साठवा: शक्य तितक्या ठिकाणी आम्ही कच्च्या क्रियाशीलता प्रवाहांच्या (activity streams) ऐवजी तयार केलेली वैशिष्ट्ये साठवतो. आम्ही मॉडेलिंगसाठी आवश्यक असलेला सिग्नल ठेवतो, त्यामागील संपूर्ण इतिहास नाही.
  • एकीकृत डेटा करार: एकच डेटा करार प्रशिक्षण आणि इन्फरन्स दोन्हीना पुरवतात. त्यामुळे ML प्रणालींमध्ये सर्वात सामान्य अपयश पद्धतींपैकी एक कमी होते: प्रशिक्षित आणि सर्व्ह केलेल्या गोष्टींमधील असममितता.

आम्ही उत्पादन जीवनचक्रातील दोन टप्प्यांवर गेटिंगचा वापर करतो. प्रथम, मॉडेल प्रमोशन हे मॉडेल प्रशिक्षणापासून स्वतंत्र असते. एखाद्या उमेदवार मॉडेलला उत्पादन इनफरन्ससाठी पात्र होण्यापूर्वी गार्डरेल तपासण्या पार कराव्या लागतात. जर एखादा उमेदवार आमच्या गार्डरेल तपासण्यांमध्ये अयशस्वी झाला, तर पाइपलाइन प्रमोशन अडवते आणि आम्ही नवीनतम प्रमोट केलेली चांगली आवृत्ती सेवा देत राहतो. 

दुसरे म्हणजे, इन्फरन्स आउटपुट प्रकाशित होण्यापूर्वी गेटिंग केले जाते. स्वयंचलित तपासण्या गुणवत्तेतील घट आणि मोठ्या भाकीत-वितरण बदलांसाठी तपासणी करतात. एखादी तपासणी अयशस्वी झाल्यास, प्रकाशित करण्याची पायरी अडवलेली जाते. वापरकर्त्यांशी थेट संबंधित सुरक्षा कार्यप्रवाहांशी जोडलेल्या ML प्रणालीमध्ये, अस्पष्ट वितरण बदलासह पुढे जाण्यापेक्षा "आज काहीही करू नका" हा अनेकदा अधिक सुरक्षित अपयश मोड असतो.

सिस्टमचे मापन 

अशा प्रणालीसाठी, एकच अचूकतेचा आकडा फारसा अर्थपूर्ण नसतो. आम्ही रँकिंग गुणवत्ता, कॅलिब्रेशन, कालांतराने स्थिरता आणि महत्त्वाच्या वयोगट सीमांजवळ वर्तन यावरून मॉडेलची गुणवत्ता मूल्यांकन करतो. आम्ही मूल्यांकन डेटाचे प्रतिनिधित्व देखील मोजमाप समस्येचा एक भाग मानतो, कारण एकूण सुधारणा फक्त तेव्हाच उपयुक्त असते जेव्हा ती प्रणाली ज्या लोकसंख्येला सेवा देण्यासाठी आहे त्याचे प्रतिबिंब दर्शवते.

या वेटेड, होल्ड-आउट मूल्यांकन डेटावर फ्यूज्ड मॉडेलने 0.9 पेक्षा जास्त सरासरी अचूकता (mean average precision) प्राप्त केली आहे. त्याचे उच्च-विश्वासार्ह अंदाजही दिवसेंदिवस सुसंगत आहेत. सलग दिवसांत 99% पेक्षा जास्त अंदाज एकाच विस्तृत वयोगटात राहतात. 

आम्ही आमच्या ट्रस्ट अँड सेफ्टी वर्कफ्लोद्वारे प्रशिक्षित मानवी पुनरावलोककांनी तयार केलेल्या स्वतंत्र ग्राउंड ट्रुथशी देखील मॉडेलची तुलना करतो. उच्च आत्मविश्वासावर, मॉडेलचा वयोगट अंदाज प्रौढांसाठी मानवी सहमती लेबलशी 80% पेक्षा जास्त वेळा जुळतो. 

ऑफलाइन मूल्यांकन हा फक्त एक स्तर आहे. उत्पादनात, हंगाम, उत्पादन लाँच आणि विरोधक दबावामुळे वापरकर्त्याच्या वर्तनात बदल होतो. म्हणूनच, आउटपुट पुढील प्रक्रियेत वापरण्यापूर्वी, आम्ही मॉडेल-मूल्यांकन मेट्रिक्ससह अंदाज वितरण, ड्रिफ्ट आणि स्थिरतेचे सतत निरीक्षण करतो. आम्ही पुढील वय तपासणीचे निकाल देखील पाहतो, जेणेकरून उत्पादन अभिप्राय मॉडेलची विश्वासार्हता वाढवू शकेल आणि कुठे मर्यादा किंवा पुनरावलोकन मार्ग समायोजित करावेत हे सूचित करू शकेल.

पुढे काय

ही प्रणाली घरगुतीपणे स्वतःकडे असण्यामुळे आम्हाला Roblox-विशिष्ट संकेतांचा सुरक्षितपणे उपयोग करण्याची, अत्यंत काटेकोरपणे कार्य करण्याची आणि सातत्याने पुनरावृत्ती करण्याची संधी मिळते.

पुढे जाताना, आम्ही आमच्या उपमॉडेल्स, इन्फरन्स आणि मापन यांचे अनुकूलन करण्यावर लक्ष केंद्रित करत आहोत. मॉड्युलॅरिटी, कॅलिब्रेशन, गोपनीयता आणि उत्पादन गार्डरेल्स या आमच्या ऑपरेटिंग तत्त्वांवर लक्ष केंद्रित करत, आम्ही प्रत्येक थर अधिक पुढे नेत आहोत.