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

Skip to content

Roblox वर 3D निर्मितीसाठी AI इन्फरन्स गतीकरण

७.८ पट जलद, अधिक प्रतिसादक्षम 3D वस्तू निर्मिती

SEO image for Accelerating AI Inference for 3D Creation on Roblox
  • Roblox ने अधिक प्रतिसादक्षम पुनरावृत्तीसाठी 3D मेष निर्मिती गती वाढवण्यासाठी CUDA ग्राफ्स आणि KV कॅशिंग अंमलात आणले.
  • लॉन्चच्या वेळी, Cube 3D मॉडेलने टोकन्स 7.8 मिलीसेकंदात (पूर्वी 60.5 मिलीसेकंद) आणि पूर्ण ऑब्जेक्ट्स 4 सेकंदात (पूर्वी 31 सेकंद) तयार करू शकले. 

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

लॉन्च झाल्यापासून, अनेक उल्लेखनीय अनुभवांमध्ये 578,000 पेक्षा जास्त वस्तू तयार करण्यात आल्या आहेत. विकासकांनी देखील "मांजरे", "बर्गर" इत्यादी सारख्या मजकूर संकेतांसह अनुभवांमध्ये वापरकर्त्यांना 3D वस्तू तयार करण्यास सक्षम करण्यास रस दाखवला. सर्वात उल्लेखनीय म्हणजे Mic Up, व्हॉइस चॅट वापरणारा एक लोकप्रिय हँगआउट गेम, ज्याने खेळाडूंना वस्तू तयार करण्याचा एक मजेदार आणि परस्परसंवादी मार्ग देण्यासाठी Cube 3D चा वापर केला. त्यांच्या अंमलबजावणीत, खेळाडू अतिरिक्त क्षमतांचा एक डावा-हाताचा मेनू उघडू शकतात, ज्यात एआय आयकॉनचा समावेश आहे. त्या आयकॉनवर क्लिक केल्यानंतर, खेळाडू 3D वस्तू तयार करण्यासाठी मजकूर प्रॉम्प्ट प्रविष्ट करू शकतात. वापरकर्त्यांसाठी, जास्त उत्पादन वेळ अडथळा निर्माण करते, ज्यामुळे त्यांना त्यांच्या कल्पना रिअल-टाइममध्ये 3D मध्ये रूपांतरित होताना पाहण्याच्या जादूचा अनुभव घेता येत नाही. 

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

CPU-GPU वेळापत्रक अडथळा दूर करणे

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

हे विशेषतः Cube 3D सारख्या ट्रान्सफॉर्मर-प्रकारच्या मॉडेल्समधील ऑटो-रिग्रेशन डिकोडर्ससाठी समस्या निर्माण करते, ज्यांना इनपुट प्रक्रिया करून टोकन क्रमाक्रमाने तयार करावे लागतात. या मॉडेल्सना एका जनरेशनसाठी हजारो स्वतंत्र ऑपरेशन्सची आवश्यकता असते, आणि क्रमातील प्रत्येक टप्प्यावर संगणकीय ओव्हरहेड जमा होत राहतो.

"आम्हाला चार-आयामी संवाद सक्षम करणारी काहीतरी तयार करायची होती," असे अभियांत्रिकीचे उपाध्यक्ष अनुपम सिंह यांनी सांगितले, आणि त्यांनी स्पष्ट केले की Roblox ने ऑटो-रिग्रेशन पद्धत का निवडली. "आम्हाला फक्त गाडी तयार करायची नाही; आम्हाला गाडीचे दार उघडून आत बसण्याचीही सोय हवी आहे."

प्रत्येक ऑपरेशनचा खर्च:

  • प्रत्येक कर्नेल तयार करण्यासाठी लागणारा CPU वेळ
  • कर्नेल सुरू करण्याचा ओव्हरहेड
  • GPU अंमलबजावणी वेळ (वास्तविक गणना)
  • पूर्णता तपासताना समक्रमण ओव्हरहेड

GPU वर जलदगतीने चालणाऱ्या लहान ऑपरेशन्सच्या बाबतीत, हा ओव्हरहेड इन्फरन्स वेळेवर वर्चस्व गाजवू शकतो. एकूण इन्फरन्स वेळेच्या फक्त एका लहान भागासाठीच GPU सक्रियपणे गणना करत असू शकतो.

कोणत्याही ऑप्टिमायझेशनशिवाय एका टोकन जनरेशनसाठी एकूण कालरेषा.
Tijdlijnweergave van GPU-uitvoering voor een niet-geoptimaliseerd model, met hoge GPU-inactieve tijd.
CUDA ग्राफ्स अंमलबजावणी: मध्यस्थाला काढून टाकणे

या अडथळ्यावर मात करण्यासाठी, आम्ही CUDA ग्राफ्सचा वापर केला—हे एक असे वैशिष्ट्य आहे जे CPU हस्तक्षेपाशिवाय GPU ऑपरेशन्सच्या अनुक्रमांना रेकॉर्ड आणि पुन्हा प्ले करण्यास परवानगी देते. Cube 3D च्या आर्किटेक्चरमधील ऑटो-रिग्रेशन डिकोडर घटक टेक्स्ट प्रॉम्प्ट्सवर प्रक्रिया करतो आणि निश्चित-लांबीच्या व्हेक्टरद्वारे शेप टोकन्स तयार करतो. 

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

CUDA ग्राफ्सना GPU साठी मॅक्रो रेकॉर्ड करण्यासारखे समजा. CPU प्रत्येक कमांड स्वतंत्रपणे जारी करण्याऐवजी, ते GPU ऑपरेशन्सची संपूर्ण मालिका (ग्राफ) रेकॉर्ड करते आणि एका CPU निर्देशाद्वारे संपूर्ण ग्राफ सुरू करते. हा दृष्टिकोन इनफरन्स दरम्यान CPU ला प्रत्येक ऑपरेशन स्वतंत्रपणे शेड्यूल करण्याची गरज दूर करून कर्नेल लाँच ओव्हरहेड मोठ्या प्रमाणात कमी करतो. एकदा ग्राफ सुरू झाल्यावर, GPU पुढील सूचनांची वाट न पाहता संपूर्ण मालिका स्वायत्तपणे चालवते.

CUDA ग्राफ्स काही मर्यादांसह येतात. कारण ग्राफची रचना आगाऊ ठरवावी लागते, त्यामुळे त्यांना निश्चित बॅच आकार आणि इनपुट परिमाणांची आवश्यकता असते. याचा अर्थ असा की प्रत्येक बॅच आकार किंवा इनपुट आकारात स्वतंत्र ग्राफ तयार करावे लागतात. आमच्या क्यूब 3D च्या वापरासाठी ही मर्यादा स्वीकारार्ह होती, कारण आम्ही सामान्य इनपुट परिमाणांभोवती इन्फरन्स प्रक्रियेचे मानकीकरण करू शकलो.

आमच्या Cube 3D मॉडेलसाठी CUDA ग्राफ्स अंमलात आणण्यासाठी आम्हाला आमची पद्धत जुळवून घ्यावी लागली. पारंपारिक LLMs मध्ये, अटेंशन ऑपरेशन्स नेहमीच समान सिक्वेन्स लांबीसह केल्या जातात, ज्यामुळे काम करण्यासाठी एक स्थिर आकार मिळतो. तथापि, आमच्या सानुकूल द्वि-प्रवाह आर्किटेक्चरमध्ये, काही अटेंशन लेयर्स फक्त सिक्वेन्स लांबीवर काम करतात, तर काही सिक्वेन्स आणि कंडिशन लांबी यांच्या संयोगावर काम करतात.

या आव्हानांनंतरही, CUDA ग्राफ्स अंमलात आणल्यानंतर आम्हाला उल्लेखनीय परिणाम दिसले. इन्फरन्स दरम्यान प्रत्येक टोकनसाठीचे जनरेशन वेळ मोजण्यासाठी आम्ही टाइम पर आउटपुट टोकन (TPOT) वापरतो. CUDA ग्राफ्स अंमलात आणल्यानंतर, आमचा TPOT 60.5 मिलीसेकंदांपासून 20.5 मिलीसेकंदांपर्यंत सुधारला, म्हणजेच 2.9 पट सुधारणा. एकूण जनरेशन वेळ 66% नी कमी होऊन 31 सेकंदांपासून 10.5 सेकंदांपर्यंत आला.

केव्ही कॅशिंग: आमच्या यशावर आधारित

विलंब आणखी कमी करण्यासाठी, आम्ही KV कॅशिंग अंमलात आणले, जी LLM इनफरन्समध्ये एक मानक पद्धत आहे आणि जी उद्योगात अत्यंत प्रभावी ठरली आहे. 

Cube 3D सारख्या ट्रान्सफॉर्मर-आधारित मॉडेल्समध्ये, प्रत्येक टोकन निर्मितीसाठी पूर्वी तयार केलेल्या सर्व टोकन्सवर आधारित की (K) आणि व्हॅल्यू (V) मॅट्रिक्सची गणना करणे आवश्यक असते. जसे जसे सिक्वेन्स लांब होत जाते, प्रत्येक टोकनसाठी ही मॅट्रिक्स पुन्हा गणना करणे अधिक अकार्यक्षम ठरते.

KV कॅशिंग हे खालीलप्रमाणे सोडवते:

  1. यापूर्वी तयार केलेल्या सर्व टोकन्ससाठी K आणि V मॅट्रिक्स संग्रहित करणे
  2. केवळ नवीन टोकन्ससाठी K आणि V मॅट्रिक्सची गणना करणे
  3. या नवीन मॅट्रिसेस कॅश केलेल्या मूल्यांमध्ये जोडणे

या पद्धतीमुळे अनावश्यक गणना कमी होते, ज्यामुळे प्रत्येक नवीन टोकनसाठी आवश्यक काम कमी होते. तयार केलेली क्रमवारी जितकी लांब होते, तितका हा परिणाम अधिक प्रभावी ठरतो.

KV कॅशिंगला CUDA ग्राफ अंमलबजावणीसह एकत्र करण्याची आमची पद्धत पारंपारिक LLM इन्फरन्ससारखीच होती. KV कॅशिंगमुळे आमचा TPOT फक्त 7.8 मिलीसेकंदांपर्यंत कमी झाला. एकूण जनरेशन वेळ 87% नी कमी होऊन मूळ 31 सेकंदांवरून फक्त 4 सेकंदांवर आला. या लक्षणीय वेळ बचतीमुळे हे साधन वापरणाऱ्या निर्मात्यांसाठी ते अधिक प्रभावी ठरते.

CUDA ग्राफ्स आणि KV कॅशसह एका टोकन निर्मितीची एकूण कालरेषा.
CUDA ग्राफ आवृत्तीसाठी GPU अंमलबजावणीची टाइमलाइन दृश्य, ज्यात जवळजवळ कोणताही GPU निष्क्रिय वेळ दिसत नाही
विकसक आणि वापरकर्त्यांवर प्रत्यक्ष जगातील परिणाम मोजणे
या सुधारणा थेट विकासक आणि वापरकर्त्यांसाठी मूर्त फायदे देतात. मेष पोस्ट-प्रोसेसिंगनंतरही आमची अंतिम एंड-टू-एंड (E2E) विलंब सात सेकंदांची आहे. विकासक आता जलद पुनरावृत्ती चक्रात काम करू शकतात, आणि वापरकर्ते अधिक प्रतिसादक्षम 3D निर्मितीचा अनुभव घेतात.
*सर्व विलंब मोजमाप NVIDIA H100 GPUs वर करण्यात आले.

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

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