Lossless, पण मोफत नाही: जेव्हा Speculative Decoding प्रभावी ठरते
Speculative Decoding हा LLM inference मधील एक चर्चेचा विषय आहे.
DSpark सारख्या कंपन्या ६०% ते ८५% पर्यंत वेग वाढल्याचा दावा करतात. Google देखील या पद्धतीवर संशोधन प्रकाशित करते.
ही संकल्पना सोपी आहे: एक लहान draft model टोकन्स लिहितो. एक मोठा target model एकाच वेळी त्यांची पडताळणी करतो. यामुळे जनरेशनची प्रक्रिया वेगवान होते.
पण एक इंजिनिअर म्हणून, तुम्हाला दोन प्रश्न विचारावे लागतील:
- यामुळे hallucinations वाढतात का?
- अतिरिक्त मॉडेलमुळे compute वाया जातो का?
चला वस्तुस्थिती पाहूया.
पहिले म्हणजे, गुणवत्ता lossless राहते. target model प्रत्येक टोकनची पडताळणी करते. जर draft model ने तिसऱ्या टोकनला चूक केली, तर target model ते नाकारते आणि तिथून पुन्हा जनरेट करते. याचे आउटपुट गणितीयदृष्ट्या केवळ target model ने दिलेल्या आउटपुटसारखेच असते. यामुळे hallucinations वाढत नाहीत.
दुसरे म्हणजे, खर्च वास्तविक आहे. मोठ्या मॉडेलच्या तुलनेत लहान मॉडेल चालवणे खूप स्वस्त असते. ७B मॉडेलचा खर्च ७०B मॉडेलच्या १० व्या भागाइतका असू शकतो.
Speculative Decoding हा एक प्रकारचा डाव (bet) आहे.
- जर पूर्णपणे यशस्वी (full hit) झाले, तर तुम्ही मोठ्या प्रमाणात compute वाचवता.
- जर पूर्णपणे अपयशी (full miss) ठरले, तर तुमचे नुकसान होते. तुम्हाला draft model आणि अतिरिक्त target model स्टेप्स चालवाव्या लागतात. हे standard inference पेक्षाही संथ असते.
यशस्वी होण्यासाठी, तुम्हाला हा नियम पाळावा लागेल: स्वीकारलेल्या टोकन्सची सरासरी संख्या ही १ अधिक draft model च्या overhead पेक्षा जास्त असावी लागते.
जर तुमचे draft model एखाद्या विशिष्ट कामात कच्चे असेल, तर तुमचा acceptance rate कमी होतो. जर तो खूपच कमी झाला, तर Speculative Decoding मुळे तुमची सिस्टीम अधिक संथ होते.
तुम्ही याचा वापर करावा की नाही, हे कसे ठरवाल:
- तुमचा acceptance rate मोजा. केवळ generic benchmarks वर विश्वास ठेवू नका. स्वतःचा डेटा आणि टास्क वापरा.
- तुमच्या टास्कचा प्रकार तपासा. कोड कंप्लिशन (code completion) सारख्या अंदाजित (predictable) कामांसाठी याचा वापर करा. क्रिएटिव्ह रायटिंग सारख्या अनपेक्षित (unpredictable) कामांसाठी हे टाळा.
- तुमच्या p99 latency वर लक्ष ठेवा. 'Full miss' मुळे latency मध्ये अचानक वाढ होऊ शकते.
सर्वोत्तम ऑप्टिमायझेशन ते नसते जे नेहमी जिंकते. तर ते असते ज्याला कधी बंद करायचे हे तुम्हाला माहित असते.
जेव्हा hit rate जास्त असेल तेव्हाच याचा वापर करा. जेव्हा hit rate कोसळेल, तेव्हा वापरणे थांबवा.
Optional learning community: https://t.me/GyaanSetuAi