तुमचा LLM-आधारित एजंट डेमोमध्ये उत्तम प्रकारे चालू शकतो, परंतु काही फेऱ्यांनंतर (turns) त्याचा वेग मंदावू शकतो आणि बिल वाढू शकते. यामागील छुपा दोष मॉडेलमधील त्रुटी नसून तो 'token drift' आहे, म्हणजेच प्रत्येक वेळी मॉडेलला प्रोसेस करावे लागणाऱ्या प्रॉम्प्टचा हळूहळू होणारा विस्तार.

जेव्हा प्रत्येक संवाद मॉडेलच्या इनपुट कॉन्टेक्स्टमध्ये अधिक मजकूर जोडतो, तेव्हा 'token drift' घडते. संभाषणाचा इतिहास, टूल स्कीमा (tool schemas), API प्रतिसाद आणि शोधलेले दस्तऐवज (retrieved documents) हे सर्व साचत जातात, ज्यामुळे प्रत्येक पुढील कॉलमध्ये मोठा डेटा (payload) वाहून नेला जातो. मॉडेलचा प्रोसेसिंग वेळ आणि किंमत इनपुट टोकन्सच्या संख्येनुसार वाढत असल्याने, खर्च रेषीय (linearly) न राहता चौरस पद्धतीने (quadratically) वाढतो.

ही समस्या डेमोमध्ये नाही तर प्रोडक्शनमध्ये का दिसून येते

प्रत्यक्ष उपयोजनमध्ये (Real deployments) सर्व काही जतन केले जाते: वापरकर्त्याचे प्रत्येक वाक्य, प्रत्येक टूल आउटपुट आणि शोधलेल्या ज्ञानाचा प्रत्येक भाग. जोपर्यंत लॅटन्सी (latency) वाढत नाही आणि बिल येत नाही, तोपर्यंत हे संचय लपलेले राहते.

token drift चे सामान्य स्रोत

  • पुन्हा पुन्हा येणारे ट्रान्सक्रिप्ट्स (Repeated transcripts) – जुने संदेश सारांशित करण्याऐवजी किंवा काढून टाकण्याऐवजी ते प्रॉम्प्टमध्ये ठेवणे.
  • जड टूल स्कीमा (Heavy tool schemas) – प्रत्येक फेरीत टूलच्या क्षमतांचे मोठे JSON तपशील पाठवणे.
  • मोठे टूल रिझल्ट्स (Bulky tool results) – पूर्ण API प्रतिसाद किंवा डेटाबेस रो (rows) समाविष्ट करणे, ज्यामध्ये एजंटला प्रत्यक्षात आवश्यक असलेल्या डेटापेक्षा जास्त माहिती असते.
  • RAG bloat – Retrieval-augmented generation (RAG) मुळे अनेक दस्तऐवज तुकडे (document chunks) जोडले जातात, ज्यातील काही जुने किंवा अप्रासंगिक असू शकतात.
  • दुप्पट मेमरी (Duplicated memory) – सारांश, स्टेट ऑब्जेक्ट आणि मूळ ट्रान्सक्रिप्ट एकत्र पॅक करणे, ज्यामुळे तीच माहिती तीन वेळा पुनरावृत्ती होते.

यातील प्रत्येक गोष्टीमुळे असे टोकन्स वाढतात जे नवीन तर्कशक्ती (reasoning power) प्रदान करत नाहीत, तरीही ते प्रॉम्प्टचा आकार वाढवतात.

टोकन बजेट नियंत्रणात कसे ठेवावे

1. लेअर्ड कॉन्टेक्स्ट डिझाइनचा (layered context design) अवलंब करा

  • स्थिर सूचना (Stable instructions) – सिस्टम प्रॉम्प्ट्स आणि सुरक्षा नियम वरच्या बाजूला ठेवा आणि प्रत्येक फेरीत ते पुन्हा पाठवण्याऐवजी त्यांचा संदर्भ द्या.
  • रचनात्मक स्थिती (Structured state) – ध्येय, निर्णय आणि आयडेंटिफायर्सचे संक्षिप्त स्वरूप साठवा जे एजंट वेगाने वाचू शकेल.
  • कॉम्प्रेस केलेली हिस्ट्री (Compressed history) – जुन्या संवादांचा सारांश एका लहान, वाचनीय परिच्छेदात लिहा आणि ठराविक मर्यादा (threshold) ओलांडल्यावरच तो अपडेट करा.
  • अलीकडील फेऱ्या (Recent turns) – सातत्य राखण्यासाठी शेवटचे काही संदेश जसेच्या तसे (verbatim) समाविष्ट करा.

स्थिर मजकूर आणि सारांशित करता येण्याजोगा मजकूर वेगळा केल्यामुळे तुम्ही तेच शब्द वारंवार पाठवणे टाळू शकता.

2. टूल आउटपुट्स कमी करा (Trim tool outputs)

  • एजंट प्रत्यक्षात वापरतो तेच फील्ड्स काढा; सविस्तर वर्णने काढून टाका.
  • मोठ्या रिझल्ट्सच्या जागी संक्षिप्त सारांश किंवा संदर्भ आयडी (reference ID) वापरा आणि पूर्ण डेटा डेटाबेस, कॅशे किंवा ब्लॉब स्टोअरमध्ये साठवा.
  • जेव्हा एखादे टूल लिस्ट परत करते, तेव्हा केवळ सध्याच्या निर्णयासाठी महत्त्वाच्या असलेल्या 'top-N' गोष्टी पाठवा.

3. स्मार्ट सारांश पद्धतीचा (smart summarization) वापर करा

  • प्रत्येक फेरीनंतर सारांश करणे टाळा; अतिरिक्त प्रोसेसिंगमुळे ओव्हरहेड वाढतो.
  • जुन्या संवादांची एकूण टोकन संख्या पूर्वनिर्धारित मर्यादा ओलांडल्यावरच सारांश अपडेट करा.
  • महत्त्वाचे तथ्य—आयडी, रक्कम, टाइमस्टॅम्प—गद्य स्वरूपात (prose) लिहिण्याऐवजी स्ट्रक्चर्ड स्टोअरमध्ये ठेवा, जेणेकरून सारांश संक्षिप्त राहील.

4. योग्य मेट्रिक्सचा मागोवा घ्या (Track the right metrics)

  • टोकन वापर केवळ वापरकर्त्याच्या विनंतीनुसार नाही, तर प्रत्येक मॉडेल कॉलनुसार (per model call) लॉग करा. यामुळे इनपुट बाजूला होणारी छुपी वाढ लक्षात येते.
  • प्रत्येक फेरीत जोडल्या जाणाऱ्या इनपुट टोकन्सच्या संख्येवर लक्ष ठेवा; अचानक झालेली वाढ 'drift' च्या स्रोताकडे निर्देश करते.
  • कॅश केलेले टोकन्स (मागील कॉल्समधून पुन्हा वापरलेले) आणि नवीन तयार केलेले टोकन्स वेगळे करा; केवळ पहिले टोकन्स 'drift' ला कारणीभूत ठरतात.

प्रॉम्प्टला एक मर्यादित संसाधन (finite resource) समजा, अनंत ट्रान्सक्रिप्ट नाही. मोजमाप करून, सारांशित करून आणि जाणीवपूर्वक छाटणी करून, तुम्ही तुमचा LLM एजंट वेगवान, परवडणारा आणि प्रोडक्शन स्केलसाठी तयार ठेवू शकता.

थोडक्यात महत्त्वाचे (Takeaway): Token drift खर्च चोरून वाढवते आणि एजंटचा वेग कमी करते. तुमच्या प्रॉम्प्टमधील वाढणारे भाग ओळखा, त्यांना कॉम्प्रेस करा किंवा बाह्य करा (externalize), आणि प्रत्येक कॉलवरील टोकन वापराकडे लक्ष द्या. शिस्तबद्ध दृष्टिकोन अनपेक्षित बिलांच्या धक्कादायक वाढीला एका व्यवस्थापित आणि बजेट-फ्रेंडली ऑपरेशनमध्ये बदलतो.