இழப்பற்றது, ஆனால் இலவசமானது அல்ல: Speculative Decoding எப்போது வேலை செய்யும்
LLM inference-இல் Speculative Decoding ஒரு முக்கியமான தலைப்பாக உள்ளது.
DSpark போன்ற நிறுவனங்கள் 60% முதல் 85% வரை வேக அதிகரிப்பதாகக் கூறுகின்றன. கூகுளும் இந்த முறையைப் பற்றிய ஆராய்ச்சிகளை வெளியிடுகிறது.
இதன் கருத்து எளிமையானது: ஒரு சிறிய draft model டோக்கன்களை (tokens) எழுதும். ஒரு பெரிய target model அவற்றை ஒரே முறையில் சரிபார்க்கும். இது உருவாக்கத்தை (generation) வேகமாக்குகிறது.
ஆனால் ஒரு பொறியாளராக, நீங்கள் இரண்டு கேள்விகளைக் கேட்க வேண்டும்:
- இது hallucinations-ஐ அதிகரிக்கிறதா?
- கூடுதல் model கணக்கீட்டுத் திறனை (compute) வீணடிக்கிறதா?
உண்மைகளைப் பார்ப்போம்.
முதலாவதாக, தரம் இழப்பற்றது (lossless). Target model ஒவ்வொரு டோக்கனையும் சரிபார்க்கிறது. Draft model 3-வது டோக்கனில் தவறு செய்தால், target model அதை நிராகரித்து அந்த இடத்திலிருந்து மீண்டும் உருவாக்கும். இதன் வெளியீடு (output) target model மட்டும் உருவாக்கும் வெளியீட்டிற்கு கணித ரீதியாக சமமானது. இது hallucinations-ஐ அதிகப்படுத்துவதில்லை.
இரண்டாவதாக, இதன் செலவு உண்மையானது. ஒரு பெரிய model-ஐ விட ஒரு சிறிய model-ஐ இயக்குவதற்கான செலவு மிகக் குறைவு. ஒரு 7B model-ன் செலவு ஒரு 70B model-ன் செலவில் 1/10 பங்கு இருக்கலாம்.
Speculative Decoding என்பது ஒரு பந்தயம்.
- முழுமையான வெற்றியில் (full hit), நீங்கள் பெரும் கணக்கீட்டுத் திறனைச் சேமிக்கிறீர்கள்.
- முழுமையான தோல்வியில் (full miss), நீங்கள் தோற்றுப்போவீர்கள். நீங்கள் draft model மற்றும் கூடுதல் target model படிகளை இயக்க வேண்டியிருக்கும். இது சாதாரண inference-ஐ விட மெதுவானது.
வெற்றி பெற, நீங்கள் இந்த விதியைப் பின்பற்ற வேண்டும்: ஏற்கொள்ளப்பட்ட டோக்கன்களின் சராசரி எண்ணிக்கை, 1 மற்றும் draft model-ன் கூடுதல் சுமை (overhead) ஆகியவற்றின் கூடுதலை விட அதிகமாக இருக்க வேண்டும்.
உங்கள் draft model ஒரு குறிப்பிட்ட பணியில் மோசமாக இருந்தால், உங்கள் ஏற்பு விகிதம் (acceptance rate) குறையும். அது மிகவும் குறைந்தால், Speculative Decoding உங்கள் அமைப்பை மெதுவாக்கும்.
இதை நீங்கள் பயன்படுத்த வேண்டுமா என்பதை எப்படித் தீர்மானிப்பது:
- உங்கள் ஏற்பு விகிதத்தை அளவிடுங்கள். பொதுவான benchmarks-களை நம்ப வேண்டாம். உங்கள் சொந்தத் தரவு மற்றும் பணிகளைப் பயன்படுத்துங்கள்.
- உங்கள் பணி வகையைச் சரிபார்க்கவும். code completion போன்ற கணிக்கக்கூடிய பணிகளுக்கு இதைப் பயன்படுத்தவும். படைப்பாற்றல் மிக்க எழுத்து (creative writing) போன்ற கணிக்க முடியாத பணிகளுக்குத் தவிர்க்கவும்.
- உங்கள் p99 latency-ஐக் கண்காணிக்கவும். ஒரு முழுமையான தோல்வி (full miss) latency-யில் திடீர் உயர்வை ஏற்படுத்தும்.
சிறந்த மேம்படுத்தல் (optimization) என்பது எப்போதும் வெற்றி பெறுவது அல்ல. எப்போது அதை நிறுத்த வேண்டும் என்று உங்களுக்குத் தெரிந்ததே சிறந்த மேம்படுத்தல் ஆகும்.
hit rate அதிகமாக இருக்கும்போது இதைப் பயன்படுத்தவும். hit rate வீழ்ச்சியடையும் போது இதைப் பயன்படுத்துவதை நிறுத்தவும்.
Optional learning community: https://t.me/GyaanSetuAi