మీ LLM-ఆధారిత ఏజెంట్ డెమోలో అద్భుతంగా పనిచేయవచ్చు, కానీ కొన్ని సార్లు వాడిన తర్వాత నెమ్మదించి, బిల్లును భారీగా పెంచవచ్చు. దీనికి కారణం లోపభూయిష్టమైన మోడల్ కాదు—అది 'టోకెన్ డ్రిఫ్ట్' (token drift), అంటే మోడల్ ప్రతిసారీ ప్రాసెస్ చేయాల్సిన ప్రాంప్ట్ క్రమంగా పెరిగిపోవడం.
ప్రతి ఇంటరాక్షన్ మోడల్ యొక్క ఇన్పుట్ కాంటెక్స్ట్కు మరిన్ని పదాలను జోడించినప్పుడు టోకెన్ డ్రిఫ్ట్ సంభవిస్తుంది. సంభాషణ చరిత్ర (conversation history), టూల్ స్కీమాలు (tool schemas), API రెస్పాన్స్లు మరియు సేకరించిన డాక్యుమెంట్లు అన్నీ పేరుకుపోతాయి, తద్వారా ప్రతి తదుపరి కాల్లో ఎక్కువ డేటా (payload) ఉంటుంది. ఇన్పుట్ టోకెన్ల సంఖ్య పెరిగేకొద్దీ మోడల్ ప్రాసెసింగ్ సమయం మరియు ధర కూడా పెరుగుతాయి, కాబట్టి ఖర్చు లీనియర్గా కాకుండా క్వాడ్రాటిక్గా (quadratically) పెరుగుతుంది.
ఈ సమస్య డెమోలలో కాకుండా ప్రొడక్షన్లో ఎందుకు కనిపిస్తుంది
నిజమైన డిప్లాయ్మెంట్లలో ప్రతిదీ భద్రపరచబడుతుంది: ప్రతి యూజర్ మాట, ప్రతి టూల్ అవుట్పుట్, సేకరించిన ప్రతి జ్ఞాన భాగాన్ని (chunk of knowledge). లాటెన్సీ (latency) పెరిగి ఇన్వాయిస్ వచ్చే వరకు ఈ పేరుకుపోవడం మీకు తెలియదు.
టోకెన్ డ్రిఫ్ట్కు సాధారణ కారణాలు
- పునరావృత ట్రాన్స్క్రిప్ట్లు (Repeated transcripts) – పాత మెసేజ్లను సారాంశం చేయకుండా లేదా తొలగించకుండా ప్రాంప్ట్లో ఉంచడం.
- భారీ టూల్ స్కీమాలు (Heavy tool schemas) – ప్రతిసారీ టూల్ సామర్థ్యాలకు సంబంధించిన పెద్ద JSON నిర్వచనాలను పంపడం.
- అధిక పరిమాణం గల టూల్ ఫలితాలు (Bulky tool results) – ఏజెంట్కు అవసరమైన దానికంటే ఎక్కువ డేటాను కలిగి ఉన్న పూర్తి API రెస్పాన్స్లు లేదా డేటాబేస్ రోస్ను చేర్చడం.
- RAG బ్లోట్ (RAG bloat) – రిట్రీవల్-ఆగ్మెంటెడ్ జనరేషన్ (RAG) ద్వారా అనేక డాక్యుమెంట్ చంక్స్ను జోడించడం, వీటిలో కొన్ని పాతవి లేదా సంబంధం లేనివి కావచ్చు.
- డూప్లికేటెడ్ మెమరీ (Duplicated memory) – సారాంశం (summary), స్టేట్ ఆబ్జెక్ట్ (state object) మరియు రా మెసేజ్లను కలిపి పంపడం వల్ల ఒకే సమాచారం మూడుసార్లు పునరావృతమవుతుంది.
ఇవన్నీ కొత్త రీజనింగ్ పవర్ను అందించకుండా, కేవలం ప్రాంప్ట్ పరిమాణాన్ని మాత్రమే పెంచుతాయి.
టోకెన్ బడ్జెట్ను ఎలా నియంత్రించాలి
1. లేయర్డ్ కాంటెక్స్ట్ డిజైన్ను అనుసరించండి
- స్థిరమైన సూచనలు (Stable instructions) – సిస్టమ్ ప్రాంప్ట్లు మరియు సేఫ్టీ రూల్స్ను పైన ఉంచండి; ప్రతిసారీ వాటిని పంపే బదులు రిఫరెన్స్గా ఉపయోగించండి.
- స్ట్రక్చర్డ్ స్టేట్ (Structured state) – ఏజెంట్ త్వరగా చదవగలిగేలా లక్ష్యాలు, నిర్ణయాలు మరియు ఐడెంటిఫైయర్ల యొక్క సంక్షిప్త రూపాలను (compact representation) నిల్వ చేయండి.
- కంప్రెస్డ్ హిస్టరీ (Compressed history) – పాత సంభాషణలను చిన్న, అర్థమయ్యే పేరాగ్రాఫ్గా సారాంశం చేయండి; ఒక నిర్దిష్ట పరిమితి (threshold) దాటినప్పుడు మాత్రమే అప్డేట్ చేయండి.
- ఇటీవలి సంభాషణలు (Recent turns) – సంభాషణ కొనసాగింపు కోసం చివరి కొన్ని మెసేజ్లను యథాతథంగా (verbatim) చేర్చండి.
స్థిరమైన టెక్స్ట్ను సారాంశం చేయదగిన
