నాణ్యత తగ్గదు, కానీ ఉచితం కాదు: Speculative Decoding ఎప్పుడు పనిచేస్తుంది
LLM inferenceలో Speculative Decoding ఒక ప్రముఖ అంశం.
DSpark వంటి కంపెనీలు 60% నుండి 85% వరకు వేగవంతం (speedups) జరుగుతుందని పేర్కొంటున్నాయి. Google కూడా ఈ పద్ధతిపై పరిశోధనలను ప్రచురిస్తోంది.
ఈ కాన్సెప్ట్ చాలా సరళమైనది: ఒక చిన్న డ్రాఫ్ట్ మోడల్ (draft model) టోకెన్లను రాస్తుంది. ఒక పెద్ద టార్గెట్ మోడల్ (target model) వాటిని ఒకేసారి ధృవీకరిస్తుంది. ఇది జనరేషన్ను వేగవంతం చేస్తుంది.
కానీ ఒక ఇంజనీర్గా, మీరు రెండు ప్రశ్నలు వేసుకోవాలి:
- ఇది హాలూసినేషన్లను (hallucinations) పెంచుతుందా?
- అదనపు మోడల్ కంప్యూట్ (compute) వృథా చేస్తుందా?
వాస్తవాలను పరిశీలిద్దాం.
మొదటిది, నాణ్యత తగ్గదు (lossless). టార్గెట్ మోడల్ ప్రతి టోకెన్ను ధృవీకరిస్తుంది. ఒకవేళ డ్రాఫ్ట్ మోడల్ 3వ టోకెన్ వద్ద తప్పు చేస్తే, టార్గెట్ మోడల్ దానిని తిరస్కరించి, ఆ పాయింట్ నుండి మళ్ళీ జనరేట్ చేస్తుంది. దీని అవుట్పుట్ కేవలం టార్గెట్ మోడల్ ఇచ్చే అవుట్పుట్తో గణితపరంగా సమానంగా ఉంటుంది. ఇది హాలూసినేషన్లను పెంచదు.
రెండవది, దీని ఖర్చు నిజమైనది. ఒక పెద్ద మోడల్తో పోలిస్తే చిన్న మోడల్ను నడపడానికి ఖర్చు చాలా తక్కువ. ఒక 7B మోడల్ ఖర్చు, 70B మోడల్ ఖర్చులో 1/10వ వంతు మాత్రమే ఉండవచ్చు.
Speculative Decoding అనేది ఒక పందెం (bet) వంటిది.
- ఇది పూర్తిగా విజయవంతమైతే (full hit), మీరు భారీ స్థాయిలో కంప్యూట్ను ఆదా చేయవచ్చు.
- ఇది పూర్తిగా విఫలమైతే (full miss), మీరు నష్టపోతారు. మీరు డ్రాఫ్ట్ మోడల్తో పాటు అదనపు టార్గెట్ మోడల్ దశలను కూడా నడపాల్సి ఉంటుంది. ఇది సాధారణ ఇన్ఫరెన్స్ కంటే నెమ్మదిగా ఉంటుంది.
గెలవాలంటే, మీరు ఈ నియమాన్ని పాటించాలి: సగటున ఆమోదించబడిన టోకెన్ల సంఖ్య (average number of accepted tokens), 1 మరియు డ్రాఫ్ట్ మోడల్ యొక్క ఓవర్హెడ్ (overhead) మొత్తానికి మించి ఉండాలి.
ఒక నిర్దిష్ట టాస్క్లో మీ డ్రాఫ్ట్ మోడల్ సరిగ్గా పనిచేయకపోతే, మీ అక్సెప్టెన్స్ రేట్ (acceptance rate) తగ్గుతుంది. అది మరీ తక్కువగా ఉంటే, Speculative Decoding మీ సిస్టమ్ను మరింత నెమ్మదిగా మారుస్తుంది.
దీనిని ఉపయోగించాలా వద్దా అని ఎలా నిర్ణయించుకోవాలి:
- మీ అక్సెప్టెన్స్ రేట్ను కొలవండి. సాధారణ బెంచ్మార్క్లను నమ్మకండి. మీ స్వంత డేటా మరియు టాస్క్లను ఉపయోగించండి.
- మీ టాస్క్ రకాన్ని తనిఖీ చేయండి. కోడ్ కంప్లీషన్ (code completion) వంటి ఊహించదగిన (predictable) టాస్క్ల కోసం దీనిని ఉపయోగించండి. క్రియేటివ్ రైటింగ్ (creative writing) వంటి ఊహించలేని (unpredictable) టాస్క్ల కోసం దీనిని నివారించండి.
- మీ p99 లేటెన్సీని (latency) పర్యవేక్షించండి. ఒక ఫుల్ మిస్ (full miss) వల్ల లేటెన్సీ ఒక్కసారిగా పెరిగిపోతుంది.
ఉత్తమమైన ఆప్టిమైజేషన్ అంటే ఎల్లప్పుడూ గెలిచేది కాదు. దేనిని ఎప్పుడు ఆపివేయాలి (turn off) అని మీకు తెలిసినదే నిజమైన ఆప్టిమైజేషన్.
హిట్ రేట్ (hit rate) ఎక్కువగా ఉన్నప్పుడు దీనిని ఉపయోగించండి. హిట్ రేట్ పడిపోయినప్పుడు దీనిని వాడటం ఆపివేయండి.
Optional learning community: https://t.me/GyaanSetuAi