थोडक्यात उत्तर: एआय मॉडेल्स ऑप्टिमाइझ करण्यासाठी, एक प्राथमिक मर्यादा (लेटन्सी, कॉस्ट, मेमरी, क्वालिटी, स्टेबिलिटी किंवा थ्रूपुट) निवडा, नंतर काहीही बदलण्यापूर्वी एक विश्वासार्ह बेसलाइन कॅप्चर करा. प्रथम पाइपलाइनमधील अडथळे दूर करा, नंतर मिश्रित अचूकता आणि बॅचिंग सारखे कमी-जोखीम नफा लागू करा; जर गुणवत्ता टिकून राहिली, तर कंपाइलर/रनटाइम टूलिंगकडे जा आणि त्यानंतरच आवश्यकतेनुसार क्वांटायझेशन किंवा डिस्टिलेशनद्वारे मॉडेल आकार कमी करा.
महत्वाचे मुद्दे:
मर्यादा: एक किंवा दोन लक्ष्य मेट्रिक्स निवडा; ऑप्टिमायझेशन हे ट्रेड-ऑफचे लँडस्केप आहे, मुक्त विजयांचे नाही.
मापन: p50/p95/p99, थ्रूपुट, वापर आणि मेमरी शिखरांसह वास्तविक वर्कलोड्सचे प्रोफाइल.
पाइपलाइन: मॉडेलला स्पर्श करण्यापूर्वी टोकनायझेशन, डेटालोडर, प्रीप्रोसेसिंग आणि बॅचिंग दुरुस्त करा.
सर्व्हिंग: कॅशिंग वापरा, मुद्दाम बॅचिंग करा, कॉन्करन्सी ट्यूनिंग करा आणि टेल लेटन्सीवर बारकाईने लक्ष ठेवा.
रेलिंग्ज: प्रत्येक कामगिरी बदलानंतर गोल्डन प्रॉम्प्ट्स, टास्क मेट्रिक्स आणि स्पॉट चेक चालवा.

🔗 एआय मॉडेल्सचे प्रभावीपणे मूल्यांकन कसे करावे?
मॉडेल्सना निष्पक्षपणे आणि विश्वसनीयपणे पारखण्यासाठी महत्त्वाचे निकष आणि टप्पे.
🔗 वास्तविक मेट्रिक्स वापरून AI ची कामगिरी कशी मोजावी?
तुलना करण्यासाठी बेंचमार्क, लेटन्सी, कॉस्ट आणि क्वालिटी सिग्नल्स वापरा.
🔗 उत्पादनापूर्वी एआय मॉडेल्सची चाचणी कशी करावी
: व्यावहारिक चाचणी कार्यप्रवाह: डेटा विभाजन, स्ट्रेस केसेस आणि मॉनिटरिंग.
🔗 कंटेंट निर्मितीसाठी AI चा वापर कसा करावा?
संरचित प्रॉम्प्ट्स आणि पुनरावृत्तीच्या साहाय्याने कल्पनांना अधिक वेगाने मसुद्यांमध्ये रूपांतरित करा.
१) व्यवहारात "ऑप्टिमायझेशन" म्हणजे काय (कारण प्रत्येकजण ते वेगवेगळ्या पद्धतीने वापरतो) 🧠
जेव्हा लोक "एआय मॉडेल ऑप्टिमाइझ करा" असे म्हणतात, तेव्हा त्यांचा अर्थ असा असू शकतो:
-
ते जलद करा (कमी विलंब)
-
ते स्वस्त करा (कमी GPU-तास, कमी क्लाउड खर्च)
-
ते लहान करा (मेमरी फूटप्रिंट, एज डिप्लॉयमेंट)
-
ते अधिक अचूक बनवा (गुणवत्ता सुधारणा, कमी भ्रम)
-
ते अधिक स्थिर बनवा (कमी फरक, उत्पादनात कमी अपयश)
-
सेवा देणे सोपे करा (थ्रूपुट, बॅचिंग, अंदाजे कामगिरी)
येथे थोडेसे त्रासदायक सत्य आहे: तुम्ही एकाच वेळी हे सर्व वाढवू शकत नाही. ऑप्टिमायझेशन म्हणजे फुगा पिळण्यासारखे आहे - एक बाजू आत ढकलली आणि दुसरी बाजू बाहेर पडते. नेहमीच नाही, परंतु अनेकदा इतके असते की तुम्ही ट्रेडऑफसाठी योजना आखली पाहिजे.
म्हणून कोणत्याही गोष्टीला स्पर्श करण्यापूर्वी, तुमचा प्राथमिक अडथळा:
-
तुम्ही वापरकर्त्यांना थेट सेवा देत असाल, तर तुम्हाला p95 लेटन्सी (AWS CloudWatch पर्सेंटाईल्स) आणि टेल परफॉर्मन्स ("टेल लेटन्सी" सर्वोत्तम पद्धत) यांची काळजी घ्यावी लागते 📉
-
तुम्ही प्रशिक्षण घेत असाल तर, तुम्हाला गुणवत्तापूर्ण निकाल मिळण्यास लागणारा वेळ आणि GPU चा वापर या गोष्टींची काळजी असते 🔥
-
जर तुम्ही डिव्हाइसेसवर तैनात करत असाल, तर तुम्हाला रॅम आणि पॉवरची 🔋
२) एआय मॉडेल ऑप्टिमायझेशनची किती चांगली आवृत्ती दिसते ✅
ऑप्टिमायझेशनची एक चांगली आवृत्ती म्हणजे फक्त "क्वांटायझेशन लागू करा आणि प्रार्थना करा" असे नाही. ती एक प्रणाली आहे. सर्वोत्तम सेटअपमध्ये सहसा हे असते:
-
एक विश्वासार्ह आधाररेखा.
जर तुम्हाला तुमचे सध्याचे परिणाम पुन्हा मिळवता येत नसतील, तर तुम्ही काही सुधारणा केली आहे हे तुम्हाला कळू शकत नाही. सोपं आहे... पण लोक याकडे दुर्लक्ष करतात. आणि मग ते अधोगतीकडे जातात. -
एक स्पष्ट लक्ष्य मोजमाप
अस्पष्ट आहे. "तोच गुणवत्ता स्कोअर ठेवून p95 लेटन्सी ९००ms वरून ३००ms पर्यंत कमी करणे" हे एक खरे लक्ष्य आहे. -
गुणवत्तेसाठी रेलिंग
प्रत्येक कामगिरी जिंकल्याने गुणवत्तेचे प्रतिगमन होण्याचा धोका असतो. तुम्हाला चाचण्या, मूल्यांकन किंवा किमान एक सॅनिटी सूट आवश्यक आहे. -
हार्डवेअरची जाणीव:
एका GPU वर "वेगवान" असलेले मॉडेल दुसऱ्यावर अगदी हळू चालू शकते. CPUs म्हणजे एक वेगळ्याच प्रकारची अनागोंदी असते. -
टप्प्याटप्प्याने होणारे बदल, एकदम मोठी पुनर्रचना नव्हे.
जेव्हा तुम्ही एकाच वेळी पाच गोष्टी बदलता आणि कामगिरी सुधारते, तेव्हा त्याचे कारण तुम्हाला कळत नाही. आणि ही गोष्ट... अस्वस्थ करणारी आहे.
ऑप्टिमायझेशन म्हणजे गिटार ट्यूनिंगसारखे वाटले पाहिजे - लहान समायोजने, लक्षपूर्वक ऐका, पुन्हा करा 🎸. जर ते चाकू चालवल्यासारखे वाटत असेल तर काहीतरी गडबड आहे.
३) तुलना सारणी: एआय मॉडेल्स ऑप्टिमाइझ करण्यासाठी लोकप्रिय पर्याय 📊
खाली सामान्य ऑप्टिमायझेशन टूल्स/पद्धतींची एक जलद आणि थोडीशी अस्पष्ट तुलना सारणी आहे. नाही, ते पूर्णपणे "निष्पक्ष" नाही - वास्तविक जीवनातही असे नाही.
| साधन / पर्याय | प्रेक्षक | किंमत | ते का काम करते |
|---|---|---|---|
पायटॉर्च टॉर्च.कंपाइल (पायटॉर्च डॉक्स) |
पायटॉर्च लोकांनो | मोफत | ग्राफ कॅप्चर + कंपायलर ट्रिक्समुळे खर्च कमी होऊ शकतो... कधीकधी ते जादूसारखे असते ✨ |
| ONNX रनटाइम (ONNX रनटाइम दस्तऐवज) | तैनाती पथके | मुक्त | मजबूत अनुमान ऑप्टिमायझेशन, व्यापक समर्थन, प्रमाणित सर्व्हिंगसाठी चांगले |
| टेन्सरआरटी (एनव्हीआयडीए टेन्सरआरटी दस्तऐवज) | NVIDIA तैनाती | सशुल्क व्हाइब्स (बहुतेकदा एकत्रित) | आक्रमक कर्नल फ्यूजन + अचूक हाताळणी, क्लिक केल्यावर खूप जलद |
| डीपस्पीड (झेरो डॉक्स) | प्रशिक्षण संघ | मोफत | मेमरी + थ्रूपुट ऑप्टिमायझेशन (झीरो इ.). जेट इंजिनसारखे वाटू शकते |
| एफएसडीपी (पायटॉर्च) (पायटॉर्च एफएसडीपी डॉक्स) | प्रशिक्षण संघ | मोफत | पॅरामीटर्स/ग्रेडियंट्सचे तुकडे करते, मोठे मॉडेल्स कमी भयानक बनवते |
| बिट्सअँडबाइट्स क्वांटायझेशन (बिट्सअँडबाइट्स) | एलएलएम टिंकरर्स | मोफत | कमी बिट वजन, प्रचंड मेमरी बचत - गुणवत्ता अवलंबून असते, पण अरेरे 😬 |
| ऊर्धपातन (हिंटन आणि इतर, २०१५) | उत्पादन संघ | "वेळेचा खर्च" | लहान विद्यार्थी मॉडेलला वर्तन वारशाने मिळते, सहसा सर्वोत्तम दीर्घकालीन ROI |
| छाटणी (पायटॉर्च छाटणी ट्यूटोरियल) | संशोधन + उत्पादन | मोफत | मृत वजन कमी करते. पुन्हा प्रशिक्षण घेतल्यास चांगले काम करते |
| फ्लॅश अटेंशन / फ्यूज्ड कर्नल (फ्लॅशअटेंशन पेपर) | कामगिरीचे चाहते | मोफत | जलद लक्ष, चांगली स्मरणशक्ती. ट्रान्सफॉर्मर्ससाठी खरा विजय |
| ट्रायटन इन्फरन्स सर्व्हर (डायनॅमिक बॅचिंग) | ऑपरेशन्स/इन्फ्रा | मोफत | उत्पादन सेवा, बॅचिंग, मल्टी-मॉडेल पाइपलाइन - एंटरप्राइझसारखे वाटते |
स्वरूपणाची विचित्र कबुली: "किंमत" अस्वच्छ आहे कारण ओपन-सोर्समुळे तुम्हाला डिबगिंगचा एक आठवडा खर्च येऊ शकतो, जो... एक किंमत आहे. 😵💫
४) मोजमापाने सुरुवात करा: तुमच्या मते सारखे प्रोफाइल 🔍
जर तुम्ही या संपूर्ण मार्गदर्शकातून फक्त एकच गोष्ट केली तर हे करा: योग्यरित्या मोजमाप करा.
माझ्या स्वतःच्या चाचणीत, सर्वात मोठे "ऑप्टिमायझेशन ब्रेकथ्रू" असे काहीतरी लाजिरवाणे सोपे शोधण्यात आले जसे की:
-
डेटा लोडर GPU बंद करत आहे
-
सीपीयू प्रीप्रोसेसिंग बॉटलनेक
-
लहान बॅच आकारांमुळे कर्नल लाँच ओव्हरहेड होत आहे
-
मंद टोकनीकरण (टोकनाइझर्स शांत खलनायक असू शकतात)
-
मेमरी फ्रॅगमेंटेशन (पायटॉर्च CUDA मेमरी अॅलोकेटर नोट्स)
-
एका थरावर वर्चस्व गाजवणारा गणन
काय मोजायचे (किमान संच)
-
विलंब (p50, p95, p99) (विलंबता टक्केवारीवर SRE)
-
थ्रूपुट (टोकन/सेकंद, विनंत्या/सेकंद)
-
GPU वापर (संगणक + मेमरी)
-
VRAM / RAM ची शिखरे
-
प्रति १ हजार टोकन (किंवा प्रति अनुमान)
व्यावहारिक प्रोफाइलिंग मानसिकता
-
तुम्हाला ज्या परिस्थितीची काळजी आहे ती तयार करा (खेळण्यासंबंधी सूचना नाही).
-
सर्व काही एका लहानशा ‘पर्फ जर्नल’मध्ये नोंदवा.
हो, हे कंटाळवाणे आहे… पण त्यामुळे तुम्ही नंतर स्वतःलाच दोष देण्यापासून वाचता.
(जर तुम्हाला सुरुवात करण्यासाठी एक ठोस साधन हवे असेल तर: PyTorch प्रोफाइलर (torch.profiler docs) आणि Nsight Systems (NVIDIA Nsight Systems) हे नेहमीचे संशयित आहेत.)
५) डेटा + प्रशिक्षण ऑप्टिमायझेशन: शांत महासत्ता 📦🚀
लोक मॉडेल आर्किटेक्चरचे वेड लावतात आणि पाइपलाइन विसरतात. दरम्यान, पाइपलाइन शांतपणे अर्धा GPU जाळून टाकते.
जलद दिसणारे सोपे विजय
-
मिश्र अचूकता वापरा (स्थिर असल्यास FP16/BF16) (PyTorch AMP / torch.amp)
सहसा जलद, बहुतेकदा ठीक - परंतु संख्यात्मक विचित्रतेकडे लक्ष ठेवा. -
बॅचचा आकार मर्यादित असताना ग्रेडियंट संचय ( 🤗 गती वाढवा मार्गदर्शक ) मेमरीचा अतिवापर न करता ऑप्टिमायझेशन स्थिर ठेवतो.
-
ग्रेडियंट चेकपॉइंटिंग (torch.utils.checkpoint)
मेमरीसाठी गणना बदलते - मोठ्या संदर्भांना शक्य करते. -
कार्यक्षम टोकनायझेशन (🤗 टोकनायझर्स)
मोठ्या प्रमाणावर टोकनायझेशन अडथळा ठरू शकते. ते आकर्षक नाही; पण ते महत्त्वाचे आहे. -
डेटालोडर ट्यूनिंग:
अधिक वर्कर्स, पिन्ड मेमरी, प्रीफेचिंग - दिसायला साधे पण प्रभावी 😴➡️💪 (पायटॉर्च परफॉर्मन्स ट्यूनिंग मार्गदर्शक)
पॅरामीटर-कार्यक्षम फाइन-ट्यूनिंग
जर तुम्ही मोठ्या मॉडेल्सना फाइन-ट्यूनिंग करत असाल, तर PEFT पद्धती (जसे की LoRA-शैलीतील अडॅप्टर्स) आश्चर्यकारकपणे शक्तिशाली राहूनही ट्रेनिंगचा खर्च मोठ्या प्रमाणात कमी करू शकतात (🤗 ट्रान्सफॉर्मर्स PEFT मार्गदर्शक, LoRA पेपर). हा त्या क्षणांपैकी एक आहे, जेव्हा आपल्याला वाटतं की, "हे आपण आधी का नाही केलं?".
६) आर्किटेक्चर-लेव्हल ऑप्टिमायझेशन: मॉडेलला उजवा आकार द्या 🧩
कधीकधी ऑप्टिमाइझ करण्याचा सर्वोत्तम मार्ग म्हणजे... कामासाठी खूप मोठे मॉडेल वापरणे थांबवणे. मला माहित आहे, अपवित्रता 😄.
काही मूलभूत गोष्टींवर कॉल करा:
-
तुम्हाला पूर्ण सामान्य-बुद्धिमत्ता हवी आहे की तज्ञाची गरज आहे ते ठरवा.
-
कॉन्टेक्स्ट विंडो जितकी मोठी असायला हवी तितकी मोठी ठेवा, मोठी नाही.
-
सध्याच्या कामासाठी प्रशिक्षित मॉडेल वापरा (वर्गीकरण कामासाठी वर्गीकरण मॉडेल, आणि असेच).
व्यावहारिक उजवे आकार बदलण्याच्या रणनीती
-
बहुतांश विनंत्यांसाठी लहान बॅकबोन वापरा आणि मग “अवघड क्वेरीज” मोठ्या मॉडेलकडे पाठवा.
-
दोन-टप्प्यांची रचना वापरा:
जलद नमुना मसुदे, आणि अधिक मजबूत नमुना त्याची पडताळणी किंवा संपादन करतो.
हे एखाद्या चोखंदळ मित्रासोबत लिहिण्यासारखे आहे - त्रासदायक, पण प्रभावी. -
आउटपुटची लांबी कमी करा
आउटपुट टोकनसाठी पैसे आणि वेळ लागतो. जर तुमचे मॉडेल रॅम्बल करत असेल तर तुम्हाला रॅम्बलसाठी पैसे द्यावे लागतील.
कमी उत्पादन खर्च कमी करून संघांनी खर्चात लक्षणीय कपात केल्याचे मी पाहिले आहे. ते क्षुल्लक वाटते. ते काम करते.
७) कंपायलर + ग्राफ ऑप्टिमायझेशन: वेग कुठून येतो 🏎️
हा "कॉम्प्युटरला अधिक स्मार्ट संगणक बनवा" हा थर आहे.
सामान्य तंत्रे:
-
ऑपरेटर फ्यूजन (कर्नल एकत्र करणे) (एनव्हीडिया टेन्सरआरटी “लेयर फ्यूजन”)
-
स्थिर फोल्डिंग (प्रीकंप्यूट फिक्स्ड व्हॅल्यूज) (ONNX रनटाइम ग्राफ ऑप्टिमायझेशन)
-
कर्नल निवड हार्डवेअरशी जुळवली
-
पायथॉनचा ओव्हरहेड कमी करण्यासाठी ग्राफ कॅप्चर (
torch.compileoverview )
सोप्या भाषेत सांगायचे तर: तुमचे मॉडेल गणितीयदृष्ट्या वेगवान असू शकते, परंतु कार्यात्मकदृष्ट्या मंद असू शकते. कंपायलर त्यातील काही दुरुस्त करतात.
व्यावहारिक नोट्स (म्हणजेच चट्टे)
-
हे ऑप्टिमायझेशन मॉडेल आकारातील बदलांसाठी संवेदनशील असू शकतात.
-
काही मॉडेल्सचा वेग खूप वाढतो, तर काहींचा वेग कमी होतो.
-
कधीकधी तुम्हाला वेग वाढतो आणि एक गोंधळात टाकणारा बग येतो - जसे की ग्रेमलिन आत गेला आहे 🧌
तरीही, जेव्हा ते काम करते, तेव्हा ते सर्वात स्वच्छ विजयांपैकी एक असते.
८) परिमाणीकरण, छाटणी, ऊर्धपातन: रडल्याशिवाय लहान (खूप जास्त) 🪓📉
लोकांना हाच भाग हवा आहे... कारण तो मोफत कामगिरीसारखा वाटतो. ते असू शकते, पण तुम्हाला ते शस्त्रक्रियेसारखेच हाताळावे लागेल.
परिमाणीकरण (कमी अचूक वजन/सक्रियीकरण)
-
अनुमान गती आणि स्मृतीसाठी उत्तम
-
धोका: गुणवत्ता घसरते, विशेषतः एज केसेसमध्ये
-
सर्वोत्तम सराव: वास्तविक चाचणी संचावर मूल्यांकन करा, भावनांवर नाही
तुम्हाला ऐकायला मिळतील अशा सामान्य चवी:
-
INT8 (बहुतेकदा घन) (टेन्सरआरटी क्वांटाइज्ड प्रकार)
-
INT4 / कमी-बिट (मोठी बचत, गुणवत्तेचा धोका वाढतो) (बिट्सअँडबाइट्स के-बिट क्वांटायझेशन)
-
मिश्रित परिमाण (प्रत्येक गोष्टीला सारखीच अचूकता आवश्यक नसते)
छाटणी (पॅरामीटर्स काढून टाका)
-
अनावश्यक वेट्स किंवा स्ट्रक्चर्स काढून टाकते (पायटॉर्च प्रुनिंग ट्युटोरियल)
-
गुणवत्ता पुनर्प्राप्त करण्यासाठी सहसा पुन्हा प्रशिक्षण आवश्यक असते
-
लोकांच्या विचारांपेक्षा चांगले काम करते... काळजीपूर्वक केले तर
ऊर्धपातन (विद्यार्थी शिक्षकांकडून शिकतो)
हा माझा वैयक्तिक आवडता दीर्घकालीन उपाय आहे. डिस्टिलेशनमुळे एक लहान मॉडेल तयार होऊ शकते जे समान रीतीने कार्य करते आणि ते बहुतेकदा एक्सट्रीम क्वांटायझेशनपेक्षा अधिक स्थिर असते (न्यूरल नेटवर्कमधील ज्ञानाचे डिस्टिलिंग).
एक अपूर्ण रूपक: ऊर्धपातन म्हणजे फिल्टरमधून एक गुंतागुंतीचा सूप ओतण्यासारखे आहे आणि ... एक लहान सूप मिळवण्यासारखे आहे. सूप असे काम करत नाही, परंतु तुम्हाला कल्पना येते 🍲.
९) सेवा आणि अनुमान: खरा युद्धक्षेत्र 🧯
तुम्ही मॉडेलला "ऑप्टिमाइझ" करू शकता आणि तरीही ते वाईट पद्धतीने सर्व्ह करू शकता. सर्व्हिंग म्हणजे जिथे विलंब आणि खर्च वास्तविक बनतो.
सर्व्हिंग जिंकते, ते महत्त्वाचे आहे
-
बॅचिंग
थ्रूपुट सुधारते. परंतु जर तुम्ही ते जास्त केले तर लेटन्सी वाढते. ते संतुलित करा. (ट्रायटन डायनॅमिक बॅचिंग) -
कॅशिंग
पुनरावृत्ती संदर्भांसाठी त्वरित कॅशिंग आणि केव्ही-कॅशे पुनर्वापर मोठ्या प्रमाणात असू शकतात. (केव्ही कॅशे स्पष्टीकरण) -
स्ट्रीमिंग आउटपुट
वापरकर्त्यांना अधिक वेगवान वाटते. समज महत्त्वाची असते 🙂. -
टोकन-दर-टोकन ओव्हरहेड कपात
काही स्टॅक प्रति टोकन अतिरिक्त काम करतात. ते ओव्हरहेड कमी करा आणि तुम्ही मोठे विजय मिळवाल.
टेल लेटन्सीकडे लक्ष ठेवा
तुमची सरासरी उत्तम दिसत असली तरी तुमचा p99 एक आपत्ती असू शकतो. दुर्दैवाने, वापरकर्ते 'टेल'मध्येच वावरतात. ("टेल लेटन्सी" आणि सरासरी खोटे का बोलतात)
१०) हार्डवेअर-जागरूक ऑप्टिमायझेशन: मॉडेलला मशीनशी जुळवा 🧰🖥️
हार्डवेअरच्या जाणीवेशिवाय ऑप्टिमायझेशन करणे म्हणजे टायर न तपासता रेस कार ट्यून करण्यासारखे आहे. हो, तुम्ही ते करू शकता, पण ते थोडे मूर्खपणाचे आहे.
GPU विचार
-
मेमरी बँडविड्थ बहुतेकदा मर्यादित घटक असते, कच्चा संगणक नाही
-
मोठे बॅच आकार मदत करू शकतात, जोपर्यंत ते मदत करत नाहीत
-
ट्रान्सफॉर्मर्ससाठी कर्नल फ्यूजन आणि अटेंशन ऑप्टिमायझेशन खूप मोठे आहेत (फ्लॅशअटेंशन: आयओ-अवेअर अचूक अटेंशन)
सीपीयू विचार
-
थ्रेडिंग, वेक्टरायझेशन आणि मेमरी लोकॅलिटी खूप महत्त्वाची आहे
-
टोकनायझेशनचा अतिरिक्त भार प्रभावी ठरू शकतो (🤗 “जलद” टोकनायझर्स)
-
तुम्हाला GPU पेक्षा वेगळ्या क्वांटायझेशन स्ट्रॅटेजीजची आवश्यकता असू शकते
एज / मोबाईल विचार
-
मेमरी फूटप्रिंट प्राधान्य क्रमांक एक बनते
-
विलंब भिन्नता महत्त्वाची आहे कारण उपकरणे... मूडी असतात
-
लहान, विशेष मॉडेल्स बहुतेकदा मोठ्या सामान्य मॉडेल्सना मागे टाकतात
११) दर्जेदार रेलिंग: स्वतःला बगमध्ये "ऑप्टिमाइझ" करू नका 🧪
प्रत्येक स्पीड विनमध्ये गुणवत्तेची तपासणी असायला हवी. नाहीतर तुम्हाला आनंद साजरा करावा लागेल, पाठवावे लागेल आणि मग "असिस्टंट अचानक चाच्यासारखा का बोलतो?" असा संदेश मिळेल 🏴☠️
व्यावहारिक रेलिंग:
-
गोल्डन प्रॉम्प्ट्स (तुम्ही नेहमी चाचणी करता त्या प्रॉम्प्ट्सचा निश्चित संच)
-
कार्य मेट्रिक्स (अचूकता, F1, BLEU, जे काही योग्य असेल ते)
-
मानवी स्पॉट तपासणी (हो, खरोखर)
-
प्रतिगमन मर्यादा (“X% पेक्षा जास्त घसरण चालणार नाही”)
तसेच अपयश मोड ट्रॅक करा:
-
स्वरूपण ड्रिफ्ट
-
नकार देण्याच्या वर्तनात बदल
-
भ्रमाची वारंवारता
-
प्रतिसाद लांबी फुगवटा
ऑप्टिमायझेशन आश्चर्यकारक मार्गांनी वर्तन बदलू शकते. विचित्रपणे. त्रासदायकपणे. अंदाजे, मागे वळून पाहिल्यास.
१२) चेकलिस्ट: एआय मॉडेल्सना टप्प्याटप्प्याने कसे ऑप्टिमाइझ करायचे ✅🤖
जर तुम्हाला 'एआय मॉडेल्स कसे ऑप्टिमाइझ करावे' यासाठी कार्यपद्धतींचा स्पष्ट क्रम हवा असेल , तर येथे एक कार्यप्रवाह दिला आहे जो लोकांना सामान्यतः शांत आणि स्थिर ठेवतो:
-
यशाची व्याख्या करा
१-२ प्राथमिक मापदंड निवडा (विलंब, खर्च, थ्रूपुट, गुणवत्ता). -
बेसलाइन
प्रोफाइलचे वास्तविक वर्कलोड मोजा, p50/p95 रेकॉर्ड करा, मेमरी, किंमत. (पायटॉर्च प्रोफाइलर) -
पाइपलाइनमधील अडथळे दूर करा
डेटा लोडिंग, टोकनायझेशन, प्रीप्रोसेसिंग, बॅचिंग. -
कमी-जोखीम असलेले कॉम्प्युट विन लागू करा
मिश्रित अचूकता, कर्नल ऑप्टिमायझेशन, चांगले बॅचिंग. -
कंपायलर/रनटाइम ऑप्टिमायझेशन वापरून पहा
ग्राफ कॅप्चर, अनुमान रनटाइम, ऑपरेटर फ्यूजन. (टॉर्च.कंपाइलट्युटोरियल, ONNX रनटाइम डॉक्स) -
मॉडेलची किंमत कमी करा.
काळजीपूर्वक प्रमाण मोजा, शक्य असल्यास गाळणी करा, योग्य असल्यास छाटणी करा. -
ट्यून सर्व्हिंग
कॅशिंग, कॉन्करन्सी, लोड टेस्टिंग, टेल लेटन्सी फिक्सेस. -
गुणवत्ता सत्यापित करा
प्रतिगमन चाचण्या चालवा आणि आउटपुटची शेजारी-शेजारी तुलना करा. -
पुनरावृत्ती करा
लहान बदल, स्पष्ट नोंदी, पुनरावृत्ती करा. न दिसणारे - प्रभावी.
आणि हो, जरी हे 'फावड्यांवर पाय पडणे कसे थांबवावे' यासारखे वाटत असले तरी, हा विषय 'एआय मॉडेल्सना कसे ऑप्टिमाइझ करावे ' हाच आहे. गोष्ट तीच आहे
१३) सामान्य चुका (जेणेकरून तुम्ही त्या आपल्यासारख्या पुन्हा करू नयेत) 🙃
-
मोजमाप करण्यापूर्वीच अनुकूलन करणे
म्हणजे वेळेचा अपव्यय. आणि मग तुम्ही आत्मविश्वासाने चुकीच्या गोष्टीचे अनुकूलन कराल… -
एकाच बेंचमार्कचा पाठलाग करताना
बेंचमार्क चुकून पडतात. तुमचा कामाचा ताण हेच सत्य आहे. -
मेमरीकडे दुर्लक्ष केल्याने
मेमरी समस्या मंदावतात, क्रॅश होतात आणि गोंधळ होतो. (पायटॉर्चमध्ये CUDA मेमरी वापर समजून घेणे) -
खूप लवकर जास्त प्रमाणात मोजणे
कमी-बिट प्रमाणात मोजणे आश्चर्यकारक असू शकते, परंतु प्रथम सुरक्षित चरणांसह सुरुवात करा. -
रोलबॅक योजना नाही.
जर तुम्ही पटकन पूर्ववत करू शकत नसाल, तर प्रत्येक डिप्लॉयमेंट तणावपूर्ण बनते. तणावामुळे बग्स निर्माण होतात.
समारोपाच्या सूचना: ऑप्टिमायझेशनचा मानवी मार्ग 😌⚡
एआय मॉडेल्सना ऑप्टिमाइझ करणे ही काही एकच सोपी युक्ती नाही. ही एक स्तरित प्रक्रिया आहे: मोजमाप करा, पाइपलाइन दुरुस्त करा, कंपाइलर्स आणि रनटाइम्स वापरा, सर्व्हिंग ट्यून करा, आणि गरज भासल्यास क्वांटायझेशन किंवा डिस्टिलेशनने मॉडेलचा आकार कमी करा. हे टप्प्याटप्प्याने करा, गुणवत्तेचे निकष पाळा, आणि 'ते अधिक वेगवान वाटते' या मापदंडावर विश्वास ठेवू नका (तुमच्या भावना चांगल्या आहेत, पण त्या मॉडेलचे प्रोफाइलर नाहीत).
जर तुम्हाला सर्वात लहान मार्ग हवा असेल तर:
-
आधी मोजमाप करा 🔍
-
पुढील पाइपलाइन ऑप्टिमाइझ करा 🧵
-
नंतर मॉडेल ऑप्टिमाइझ करा 🧠
-
मग सर्व्हिंग ऑप्टिमाइझ करा 🏗️
-
नेहमी गुणवत्ता तपासा ✅
आणि जर ते मदत करत असेल, तर स्वतःला आठवण करून द्या: ध्येय "परिपूर्ण मॉडेल" नाही. ध्येय असे मॉडेल आहे जे जलद, परवडणारे आणि इतके विश्वासार्ह आहे की तुम्ही रात्री झोपू शकाल... बहुतेक रात्री 😴.
वास्तविक उदाहरण: सपोर्ट-तिकिट सारांशकाचे ऑप्टिमायझेशन 🎟️⚡
परिस्थिती
कल्पना करा की एक छोटी SaaS टीम, मानवी एजंट उत्तर देण्यापूर्वी येणाऱ्या सपोर्ट तिकीटांचा सारांश देण्यासाठी एका AI मॉडेलचा वापर करत आहे. हे मॉडेल काम करते, पण ते संथ आहे: एजंटना सारांशासाठी खूप वेळ थांबावे लागते आणि कंपनीला अनुमानासाठी अपेक्षेपेक्षा जास्त पैसे मोजावे लागत आहेत.
मॉडेलला प्रत्येक शक्य मार्गाने “उत्तम” बनवणे हे उद्दिष्ट नाही. संघ एक प्राथमिक मर्यादा निवडतो: सारांशाची गुणवत्ता स्वीकारार्ह ठेवून p95 लेटन्सी कमी करणे.
त्यांचे लक्ष्य स्पष्ट आहे:
50-तिकिटांच्या चाचणी संचामध्ये एकापेक्षा जास्त गंभीर सारांश त्रुटी न ठेवता, p95 लेटन्सी सुमारे 2.4 सेकंदांवरून 1.2 सेकंदांपेक्षा कमी केली.
वर्कफ्लोला काय आवश्यक आहे
हे व्यवहार्य करण्यासाठी, संघ खालील सदस्यांना एकत्र आणतो:
लहान, मध्यम आणि अव्यवस्थित तिकिटांचा समावेश असलेला ५० तिकिटांचा गोल्डन टेस्ट सेट
अपेक्षित सारांश शैली: ३ मुद्दे, काल्पनिक तथ्ये नसावीत, तातडीचे कारण स्पष्ट असल्यास त्याचा उल्लेख करावा
बेसलाइन मेट्रिक्स: p50, p95, p99 लेटन्सी, निर्माण झालेले टोकन्स, प्रति तिकीट खर्च आणि त्रुटींची संख्या
एक साधी मानवी पुनरावलोकन चेकलिस्ट
मॉडेल लॉग, टोकन संख्या आणि बॅच/कॉन्करन्सी सेटिंग्जमध्ये प्रवेश
गुणवत्ता घसरल्यास रोलबॅकचा पर्याय
महत्त्वाची गोष्ट: ते क्वांटायझेशनने सुरुवात करत नाहीत. सर्वप्रथम, पाइपलाइन वेळ वाया घालवत आहे की नाही हे ते तपासतात.
उदाहरण सूचना
प्रत्येक सपोर्ट तिकीटसाठी, ग्राहकाच्या समस्येचा अचूक तीन बुलेट पॉइंट्समध्ये सारांश लिहा.
समाविष्ट करा:
-
मुख्य समस्या
-
उल्लेख केलेले कोणतेही उत्पादन क्षेत्र
-
तात्काळता किंवा व्यवसायावर होणारा परिणाम, जर नमूद केला असेल तर
अपूर्ण तपशील खोटे सांगू नका. जर ग्राहकाने पुरेशी माहिती दिली नाही, तर “माहिती दिलेली नाही” असे म्हणा.
सारांश ८० शब्दांपेक्षा कमी ठेवा.
त्याची चाचणी कशी करावी
तीच ५० तिकिटे जुन्या आणि नवीन सेटअपमधून चालवा.
प्रत्येक रनसाठी, नोंद करा:
p50, p95, आणि p99 विलंबता
सरासरी आउटपुट टोकन
प्रति १००० तिकिटांची किंमत
बनावट तपशील असलेल्या सारांशांची संख्या
मानवी पुनर्लेखनाची आवश्यकता असलेल्या सारांशांची संख्या
त्यानंतर काही अवघड प्रकरणे तपासून पहा:
तीन वेगवेगळ्या समस्या असलेले तिकीट
एका अत्यंत संतप्त ग्राहकाचा संदेश
जवळपास कोणताही तपशील नसलेले एक अस्पष्ट तिकीट
पेस्ट केलेले लॉग असलेले तिकीट
एक तिकीट ज्यामध्ये ग्राहकाने आपले खाते रद्द करण्याचा उल्लेख केला आहे
ऑप्टिमायझेशनमुळे मॉडेल अधिक वेगवान होते, पण कमी काळजीपूर्वक काम करते, ही सामान्य त्रुटी यामुळे लक्षात येते.
निकाल
तीन ऑप्टिमायझेशन फेऱ्यांच्या आधी आणि नंतर ५० नमुना तिकिटांच्या वेळेवर आधारित प्रातिनिधिक निकाल:
आधाररेषा:
p95 विलंब: २.४ सेकंद
p99 विलंब: ३.१ सेकंद
सरासरी आउटपुट लांबी: १४२ शब्द
मानवी पुनर्लेखन: ५० पैकी ११
गंभीर बनावट तपशील त्रुटी: ५० पैकी ३
ऑप्टिमायझेशननंतर:
p95 विलंब: १.१ सेकंद
p99 विलंब: १.६ सेकंद
सरासरी आउटपुट लांबी: ६१ शब्द
मानवी पुनर्लेखन: ५० पैकी ५
गंभीर बनावट तपशील त्रुटी: ५० पैकी १
काय बदलले:
संघाने आउटपुटची लांबी ८० शब्दांपर्यंत मर्यादित ठेवली
त्यांनी कमी प्राधान्याची तिकिटे ८-८ च्या गटांमध्ये विभागली
त्यांनी वारंवार येणारा उत्पादन-धोरणाचा संदर्भ कॅश केला
गुणवत्ता कायम असल्याची खात्री झाल्यावर त्यांनी मिश्र अचूकता चालू केली
त्यांनी क्वांटायझेशन नंतरसाठी ठेवले कारण लेटन्सीचे लक्ष्य आधीच गाठले गेले होते
या उदाहरणात खर्चही कमी झाला कारण मॉडेलने कमी टोकन्स तयार केले. जर जुन्या सेटअपमध्ये प्रति तिकीट सुमारे १४२ शब्द तयार होत असतील आणि नवीन सेटअपमध्ये सुमारे ६१ शब्द तयार होत असतील, तर आउटपुटची लांबी अंदाजे ५७% ने कमी झाली. हे एक असे मेट्रिक आहे जे टीम थेट लॉग्जमधून पडताळून पाहू शकते.
काय बिघडू शकतं?
सर्वात मोहक चूक म्हणजे केवळ वेगासाठीच अनुकूलन साधणे. परताव्याचे आश्वासन देणारा वेगवान सारांश ही सुधारणा नव्हे.
इतर सोप्या चुका:
फक्त स्वच्छ तिकिटांची चाचणी
p99 विलंब दुर्लक्षित करणे
आउटपुट लांबीची तुलना करायला विसरणे
बॅचिंग आणि मॉडेल सेटिंग्ज एकाच वेळी बदलणे
टेल लेटन्सीऐवजी सरासरी लेटन्सी वापरणे
पुनरावलोकन चेकलिस्टशिवाय "गुणवत्ता तशीच राहिली" असा दावा करणे
अधिक सुरक्षित पुनरावलोकन नियम सोपा आहे: जर ५० सारांशांपैकी २ पेक्षा जास्त सारांशांमध्ये महत्त्वाचे तपशील खोटे रचले असतील, तर प्रक्रिया मागे घ्या आणि चौकशी करा.
व्यावहारिक निष्कर्ष
व्यवहारात ठोस एआय मॉडेल ऑप्टिमायझेशन असे दिसते: एक मर्यादा निवडा, सध्याच्या प्रणालीचे मोजमाप करा, प्रथम अनावश्यक गोष्टी काढून टाका, कमी जोखमीचे बदल लागू करा, आणि मग साध्या पण मौल्यवान चाचण्यांद्वारे गुणवत्ता तपासा. याचा फायदा केवळ एक वेगवान मॉडेल मिळवणे हा नाही. तर, एक असे वेगवान मॉडेल मिळवणे हा आहे ज्यावर तुम्ही विश्वास ठेवू शकता.
वारंवार विचारले जाणारे प्रश्न
प्रत्यक्षात एआय मॉडेल ऑप्टिमायझेशन म्हणजे काय?
"ऑप्टिमायझेशन" म्हणजे सहसा एक प्राथमिक मर्यादा सुधारणे: विलंब, खर्च, मेमरी फूटप्रिंट, अचूकता, स्थिरता किंवा सर्व्हिंग थ्रूपुट. कठीण भाग म्हणजे ट्रेडऑफ - एका क्षेत्राला पुढे ढकलल्याने दुसरे क्षेत्र खराब होऊ शकते. एक व्यावहारिक दृष्टिकोन म्हणजे स्पष्ट लक्ष्य (जसे की p95 विलंब किंवा गुणवत्तेनुसार वेळ) निवडणे आणि त्या दिशेने अनुकूलित करणे. लक्ष्याशिवाय, "सुधारणे" सोपे आहे आणि तरीही तोटा होतो.
गुणवत्तेला धक्का न लावता एआय मॉडेल्स कसे ऑप्टिमाइझ करायचे
प्रत्येक वेग किंवा किमतीतील बदल हा संभाव्य मूक प्रतिगमन म्हणून हाताळा. गोल्डन प्रॉम्प्ट, टास्क मेट्रिक्स आणि जलद मानवी स्पॉट चेक सारख्या रेलिंगचा वापर करा. स्वीकार्य गुणवत्ता ड्रिफ्टसाठी एक स्पष्ट थ्रेशोल्ड सेट करा आणि आउटपुटची तुलना शेजारी शेजारी करा. हे तुम्ही पाठवल्यानंतर "ते जलद आहे" हे "उत्पादनात अचानक का विचित्र झाले?" मध्ये बदलण्यापासून रोखते.
ऑप्टिमायझेशन सुरू करण्यापूर्वी काय मोजावे
लेटन्सी पर्सेंटाइल्स (p50, p95, p99), थ्रूपुट (टोकन/सेकंद किंवा रिक्वेस्ट/सेकंद), GPU वापर आणि पीक VRAM/RAM सह सुरुवात करा. जर खर्च हा अडथळा असेल तर प्रति अनुमान किंवा प्रति 1k टोकनचा खर्च ट्रॅक करा. तुम्ही दाखवत असलेल्या वास्तविक परिस्थितीचे प्रोफाइल तयार करा, खेळण्यांच्या प्रॉम्प्टचे नाही. एक लहान "परफॉर्म जर्नल" ठेवल्याने तुम्हाला अंदाज लावणे आणि चुका पुन्हा करणे टाळण्यास मदत होते.
प्रशिक्षण कामगिरीसाठी जलद, कमी जोखीम असलेले विजय
मिश्रित अचूकता (FP16/BF16) बहुतेकदा सर्वात वेगवान पहिला लीव्हर असतो, परंतु संख्यात्मक विचित्रतेकडे लक्ष ठेवा. जर बॅच आकार मर्यादित असेल, तर ग्रेडियंट संचय मेमरी न उडवता ऑप्टिमायझेशन स्थिर करू शकतो. ग्रेडियंट चेकपॉइंटिंग कमी मेमरीसाठी अतिरिक्त गणना व्यवहार करते, ज्यामुळे मोठे संदर्भ सक्षम होतात. टोकनायझेशन आणि डेटालोडर ट्यूनिंगकडे दुर्लक्ष करू नका - ते शांतपणे GPU उपाशी ठेवू शकतात.
torch.compile, ONNX Runtime, किंवा TensorRT कधी वापरायचे
ही साधने ऑपरेशनल ओव्हरहेडला लक्ष्य करतात: ग्राफ कॅप्चर, कर्नल फ्यूजन आणि रनटाइम ग्राफ ऑप्टिमायझेशन. ते स्वच्छ अनुमान गती देऊ शकतात, परंतु मॉडेल आकार आणि हार्डवेअरनुसार परिणाम बदलतात. काही सेटअप जादूसारखे वाटतात; इतर क्वचितच हलतात. आकार बदल आणि अधूनमधून "ग्रेमलिन" बग्सची संवेदनशीलता अपेक्षित आहे - तुमच्या वास्तविक वर्कलोडच्या आधी आणि नंतर मोजा.
क्वांटायझेशन फायदेशीर आहे का आणि जास्त दूर जाणे कसे टाळायचे
क्वांटायझेशनमुळे मेमरी कमी होऊ शकते आणि अनुमान जलद होऊ शकते, विशेषतः INT8 सह, परंतु गुणवत्ता ओव्हर-एज केसेसमध्ये घसरू शकते. लोअर-बिट पर्याय (जसे की INT4/k-बिट) जास्त जोखीम घेऊन मोठी बचत आणतात. सर्वात सुरक्षित सवय म्हणजे प्रत्यक्ष चाचणी संचावर मूल्यांकन करणे आणि आउटपुटची तुलना करणे, आतड्यांवरील अनुभवावर नाही. प्रथम सुरक्षित चरणांसह सुरुवात करा, नंतर आवश्यक असल्यासच कमी अचूकतेवर जा.
मॉडेल आकार कमी करण्यासाठी छाटणी आणि ऊर्धपातन यातील फरक
छाटणीमुळे "डेड वेट" पॅरामीटर्स कमी होतात आणि गुणवत्ता पुनर्प्राप्त करण्यासाठी अनेकदा पुन्हा प्रशिक्षण द्यावे लागते, विशेषतः जेव्हा ते आक्रमकपणे केले जाते. डिस्टिलेशन लहान विद्यार्थी मॉडेलला मोठ्या शिक्षकाच्या वर्तनाची नक्कल करण्यास प्रशिक्षित करते आणि ते अत्यंत क्वांटायझेशनपेक्षा दीर्घकालीन ROI असू शकते. जर तुम्हाला असेच वागणारे आणि स्थिर राहणारे लहान मॉडेल हवे असेल, तर डिस्टिलेशन हा बहुतेकदा स्वच्छ मार्ग असतो.
सर्व्हिंग सुधारणांद्वारे अनुमान खर्च आणि विलंब कसा कमी करायचा
सर्व्हिंग म्हणजे ऑप्टिमायझेशन मूर्त बनते: बॅचिंग थ्रूपुट वाढवते परंतु जास्त केल्यास लेटन्सीला नुकसान पोहोचवू शकते, म्हणून ते काळजीपूर्वक ट्यून करा. संदर्भ पुनरावृत्ती झाल्यास कॅशिंग (प्रॉम्प्ट कॅशिंग आणि केव्ही-कॅशे पुनर्वापर) मोठ्या प्रमाणात असू शकते. एकूण वेळ समान असला तरीही स्ट्रीमिंग आउटपुट कथित गती सुधारते. तुमच्या स्टॅकमध्ये टोकन-बाय-टोकन ओव्हरहेड देखील पहा - प्रति-टोकन काम जलद वाढते.
एआय मॉडेल्स ऑप्टिमाइझ करताना टेल लेटन्सी इतकी महत्त्वाची का आहे?
p99 ही एक आपत्ती असताना सरासरी चांगली दिसू शकते आणि वापरकर्ते टेलमध्ये राहतात. टेल लेटन्सी बहुतेकदा जिटरमुळे येते: मेमरी फ्रॅगमेंटेशन, CPU प्रीप्रोसेसिंग स्पाइक्स, टोकनायझेशन स्लोडाउन किंवा खराब बॅचिंग वर्तन. म्हणूनच मार्गदर्शक टक्केवारी आणि वास्तविक वर्कलोड्सवर भर देतो. जर तुम्ही फक्त p50 ऑप्टिमाइझ केले तर तुम्ही "यादृच्छिकपणे मंद वाटणारा" अनुभव देऊ शकता
संदर्भ
-
अमेझॉन वेब सर्व्हिसेस (AWS) - AWS क्लाउडवॉच पर्सेंटाइल्स (सांख्यिकी व्याख्या) - docs.aws.amazon.com
-
गुगल - द टेल अॅट स्केल (टेल लेटन्सी सर्वोत्तम सराव) - sre.google
-
गुगल - सेवा पातळी उद्दिष्टे (एसआरई बुक) - विलंब टक्केवारी - sre.google
-
पायटॉर्च - टॉर्च.कंपाइल - docs.pytorch.org
-
पायटॉर्च - फुलीशार्डेडडेटापॅरलल (एफएसडीपी) - docs.pytorch.org
-
PyTorch - PyTorch प्रोफाइलर - docs.pytorch.org
-
पायटॉर्च - CUDA शब्दार्थ: मेमरी व्यवस्थापन (CUDA मेमरी अॅलोकेटर नोट्स) - docs.pytorch.org
-
पायटॉर्च - ऑटोमॅटिक मिक्स्ड प्रेसिजन (टॉर्च.एम्प / एएमपी) - docs.pytorch.org
-
पायटॉर्च - टॉर्च.युटिल्स.चेकपॉइंट - docs.pytorch.org
-
पायटॉर्च - परफॉर्मन्स ट्यूनिंग गाइड - docs.pytorch.org
-
पायटॉर्च - छाटणी ट्यूटोरियल - docs.pytorch.org
-
पायटॉर्च - पायटॉर्चमध्ये CUDA मेमरी वापर समजून घेणे - docs.pytorch.org
-
पायटॉर्च - टॉर्च.कंपाइल ट्यूटोरियल / ओव्हरव्ह्यू - docs.pytorch.org
-
ONNX रनटाइम - ONNX रनटाइम दस्तऐवजीकरण - onnxruntime.ai
-
एनव्हीआयडीए - टेन्सरआरटी दस्तऐवजीकरण - docs.nvidia.com
-
NVIDIA - TensorRT क्वांटाइज्ड प्रकार - docs.nvidia.com
-
एनव्हीआयडीए - एनसाईट सिस्टम्स - developer.nvidia.com
-
एनव्हीआयडीए - ट्रायटन इन्फरन्स सर्व्हर - डायनॅमिक बॅचिंग - docs.nvidia.com
-
डीपस्पीड - झीरो स्टेज ३ डॉक्युमेंटेशन - deepspeed.readthedocs.io
-
बिट्सअँडबाइट्स (बिट्सअँडबाइट्स-फाउंडेशन) - बिट्सअँडबाइट्स - github.com
-
मिठी मारणारा चेहरा - अॅक्सिलरेट: ग्रेडियंट अॅक्युम्युलेशन मार्गदर्शक - huggingface.co
-
मिठी मारणारा चेहरा - टोकनायझर्स दस्तऐवजीकरण - huggingface.co
-
मिठी मारणारा चेहरा - ट्रान्सफॉर्मर्स: PEFT मार्गदर्शक - huggingface.co
-
मिठी मारणारा चेहरा - ट्रान्सफॉर्मर्स: केव्ही कॅशे स्पष्टीकरण - huggingface.co
-
हगिंग फेस - ट्रान्सफॉर्मर्स: “जलद” टोकनायझर्स (टोकनायझर क्लासेस) - huggingface.co
-
arXiv - न्यूरल नेटवर्कमध्ये ज्ञानाचे डिस्टिलिंग (हिंटन आणि इतर, २०१५) - arxiv.org
-
arXiv - LoRA: मोठ्या भाषा मॉडेल्सचे निम्न-श्रेणी रूपांतर - arxiv.org
-
arXiv - फ्लॅशअटेन्शन: आयओ-अवेअरनेससह जलद आणि मेमरी-कार्यक्षम अचूक लक्ष - arxiv.org