உங்கள் AI கட்டணம் ஒரே இரவில் மூன்று மடங்காக அதிகரித்தது. மாடல், டிராஃபிக் அளவு மற்றும் ப்ராம்ப்ட்களின் உரை கூட மாறவில்லை; OpenAI-ன் ப்ராம்ப்ட் கேச் (prompt cache) முறையைச் சிதைத்த ஒரு சிறிய வரி குறியீடுதான் இதற்குப் பொறுப்பு.

கேச் (cache) ஏன் முக்கியமானது

வழங்குநரின் (provider) ப்ராம்ப்ட் கேச், ஒரு கோரிக்கையின் (request) தொடக்கத்தில் உள்ள பைட்டுகளுக்கு இடையிலான (byte-for-byte) அடையாளம் மாறாமல் இருந்தால், அந்தத் தகவலை மீண்டும் செயலாக்குவதைத் தவிர்ப்பதன் மூலம் உங்கள் பணத்தைச் சேமிக்கிறது. முதல் டோக்கன்கள் (tokens) முந்தைய அழைப்போடு ஒத்துப்போனால், வழங்குநர் ஏற்கனவே கணக்கிடப்பட்ட அந்த டோக்கன்களின் பிரதிநிதித்துவத்தையே மீண்டும் பயன்படுத்துவார், மேலும் புதிய சப்ஃபிக்ஸிற்கு (suffix) மட்டுமே கட்டணம் வசூலிப்பார். இதன் விதி மிகவும் கடுமையானது: ஒற்றுமை என்பது வெறும் ஒற்றுமையாக இருக்கக்கூடாது, அது துல்லியமாக இருக்க வேண்டும். தொடக்கத்தில் உள்ள ஒரு டோக்கன் மாறினாலும், முழு கேச் பயன்பாடும் (cache hit) பாதிக்கப்படும்.

பயன்பாட்டு விகிதத்தைக் (hit rate) குறைத்த தவறு

எங்கள் ஏஜென்ட்டில் (agent), மாடலுக்கு "தற்போதைய நேரம்" குறித்த உணர்வை வழங்க, சிஸ்டம் ப்ராம்ப்ட்டின் (system prompt) மிக உச்சியில் தற்போதைய நேர முத்திரையை (timestamp) வைத்திருந்தோம். நேர முத்திரை ஒவ்வொரு வினாடியும் மாறுவதால், முதல் டோக்கன் வரிசை ஒவ்வொரு கோரிக்கைக்கும் தனித்துவமாக இருந்தது. கேச் முறையால் எந்த ஒற்றுமையையும் கண்டறிய முடியவில்லை, எனவே ஒவ்வொரு அழைப்பிற்கும் பின்னால் இருந்த 18,000 நிலையான டோக்கன்களுக்கு (tool schemas, documentation snippets, few-shot examples and fixed instructions) முழு விலையையும் செலுத்த வேண்டியிருந்தது. இதன் விளைவாக, கேச் பயன்பாட்டு விகிதம் 0% ஆகக் குறைந்ததுடன், கட்டணமும் மூன்று மடங்கு அதிகரித்தது.

கேச் செய்யக்கூடிய வகையில் வரிசைப்படுத்துதல்

இதற்குத் தீர்வு எளிது: மாறாத அனைத்தையும் ப்ராம்ப்ட்டின் முன்னால் வைத்துவிட்டு, அடிக்கடி மாறும் தரவுகளை (volatile data) இறுதியில் சேர்க்கவும்.

நிலையான முன்னொட்டு (cacheable)

  • கருவி வரையறைகள் (Tool definitions)
  • மீட்டெடுப்பு ஆவணங்கள் (Retrieval documents)
  • ஃபு-ஷாட் உதாரணங்கள் (Few-shot examples)
  • நிலையான சிஸ்டம் அறிவுறுத்தல்கள் (Fixed system instructions)

மாறக்கூடிய பின்னொட்டு (non-cacheable)

  • தற்போதைய நேரம்
  • செஷன் அடையாளங்காட்டிகள் (Session identifiers)
  • பயனர் செய்திகள்
  • நேரடி சூழல் (Live context)

மாடலுக்கு நேரம் தேவைப்பட்டால், அதை முன்னால் சேர்க்காமல், நிலையான தொகுப்பிற்குப் பிறகு சேர்க்கவும். இதன் மூலம், நீங்கள் இறுதியில் புதிய சூழலை வழங்கினாலும், கேச் முறையினால் அந்தப் பெரிய நிலையான பகுதியை மீண்டும் பயன்படுத்த முடியும்.

தொழில்நுட்ப அடுக்குகளில் (stack) மறைந்திருக்கும் ஆபத்துகள்

டெம்ப்ளேட் சரியாகத் தெரிந்தாலும், மிட்ல்வேர் (middleware) அல்லது SDK-கள், தரவு API-ஐ அடைவதற்கு முன்பே மெட்டாடேட்டா (metadata) — கோரிக்கை ஐடிகள் (request IDs), நேர முத்திரைகள் அல்லது பிற ஹெடர்களை (headers) — அமைதியாகச் சேர்த்திருக்கலாம். சில வரிசைப்படுத்தல் வழிமுறைகளும் (deployment pipelines) ஒவ்வொரு முறையும் கருவி வரையறைகளை மாற்றியமைக்கலாம். இந்தத் தெரியாத மாற்றங்கள் பைட் வரிசையை (byte sequence) மாற்றி, உங்கள் ப்ராம்ப்ட் பில்டரில் எந்த மாற்றமும் செய்யாமலேயே கேச் முறையைச் சிதைத்துவிடும்.

கேச் பயன்பாட்டு விகிதத்தைக் (cache hit rate) கவனியுங்கள்

எந்தவொரு AI ஏஜென்ட்டிற்கும் கேச் பயன்பாட்டு விகிதத்தை ஒரு முதன்மையான ஆரோக்கியக் குறியீடாகக் கருதவும். திடீரென ஏற்படும் சரிவு, கோரிக்கையின் தொடக்கப் பகுதிகளில் ஏதோ ஒன்று மாறிக் கொண்டிருப்பதை உணர்த்துகிறது. பயன்பாட்டு சதவீதத்தைக் காட்டும் கண்காணிப்புக் கருவிகள் (monitoring tools), செலவு அதிகரிப்புப் பிரச்சனைகள் வெடிப்பதற்கு முன்பே அவற்றைக் கண்டறிய உதவும்.

முக்கியக் கருத்து

ப்ராம்ப்ட் கேச்சிங் என்பது மாற்ற முடியாத முன்னொட்டை (immutable prefix) அடிப்படையாகக் கொண்டது. ஒவ்வொரு கோரிக்கையின் தொடக்கத்திலும் மாறும் ஏதேனும் ஒரு விஷயம் — ஒரு சிறிய நேர முத்திரை கூட — கேச் முறையைச் செயலிழக்கச் செய்து உங்கள் கட்டணத்தை மூன்று மடங்கு அதிகரிக்கலாம். நிலையான உள்ளடக்கத்தை முதலில், மாறக்கூடிய உள்ளடக்கத்தை இறுதியில் வைக்கவும், மறைமுகமாகத் தரவுகளைச் சேர்க்கும் உங்கள் கருவிச் சங்கிலியை (toolchain) ஆய்வு செய்யவும், மற்றும் கேச் பயன்பாட்டு விகிதங்களைக் கண்காணிக்கவும். முறையான ப்ராம்ப்ட் அமைப்பு, செயல்திறன் மற்றும் செலவு ஆகிய இரண்டையும் பாதுகாக்கும்.