LLM கேட்வேகள்: ரூட்டிங், ஃபால்பேக்ஸ் மற்றும் செமாண்டிக் கேச்சிங்
ஒரே ஒரு வரி குறியீடு உங்கள் AI பட்ஜெட்டைச் சிதைத்துவிடக்கூடும்.
உங்கள் செயலியில் (app) ஒரு குறிப்பிட்ட மாடல் வழங்குநரை (model provider) மட்டும் நீங்கள் நேரடியாகக் குறியீடு செய்தால் (hardcode), நீங்கள் மூன்று அபாயங்களைச் சந்திக்க நேரிடும்:
- எளிய பணிகளுக்கு அதிக செலவு.
- ஒரு வழங்குநர் செயலிழக்கும்போது முழுமையான சேவைத் தடை.
- ஒரே பதிலுக்காக ஆயிரக்கணக்கான முறை பணம் செலுத்துதல்.
ஒரு LLM கேட்வே, உங்கள் செயலிக்கும் உங்கள் மாடல்களுக்கும் இடையே ஒரு ப்ராக்ஸியாக (proxy) செயல்படுகிறது. இது ரூட்டிங் (routing), ஃபால்பேக்ஸ் (fallbacks) மற்றும் கேச்சிங் (caching) ஆகிய மூன்று முக்கியமான பணிகளைக் கையாள்கிறது.
- Routing பெரும்பாலான செயலிகள் ஒவ்வொரு கோரிக்கையையும் (request) மிகவும் விலையுயர்ந்த மாடலுக்கே அனுப்புகின்றன. இது வீணானது. எளிய பணிகளை மலிவான மாடல்களுக்கு அனுப்ப ரூட்டிங்கைத் பயன்படுத்தவும்.
- Static routing: பயனர் நிலைகள் (user tiers) அல்லது பணி வகைகளின் அடிப்படையில் விதிகளைப் பயன்படுத்தவும்.
- Cost/Latency routing: கிடைக்கும் மாடல்களில் வேகமான அல்லது மலிவான மாடலைத் தேர்ந்தெடுக்கவும்.
- Difficulty routing: ஒரு பணிக்கு பெரிய மாடல் தேவையா என்பதைத் தீர்மானிக்க ஒரு சிறிய மாடலைப் பயன்படுத்தவும். புத்திசாலித்தனமான ரூட்டிங் மூலம் தரத்தைப் பராமரித்தவாறே செலவுகளை 80%-க்கும் மேல் குறைக்க முடியும் என்று ஆய்வுகள் காட்டுகின்றன.
- Fallbacks வழங்குநர்கள் தோல்வியடையலாம். அவர்கள் ரேட் லிமிட்களை (rate limits) எட்டலாம் அல்லது ஆஃப்லைனில் செல்லலாம். ஒரு கேட்வே ஃபால்பேக் சங்கிலியை (fallback chain) நிர்வகிக்கிறது. உங்கள் முதன்மை மாடல் தோல்வியடைந்தால், கேட்வே தானாகவே உங்கள் பட்டியலில் உள்ள அடுத்த மாடலை முயற்சிக்கிறது. சேவைத் தடைகளைத் தீவிரமாக்குவதைத் தவிர்க்க, இந்த முறைகளைப் பயன்படுத்தவும்:
- Exponential backoff: போராடிக்கொண்டிருக்கும் ஒரு வழங்குநரை மேலும் திணறடிக்காமல் இருக்க, மீண்டும் முயற்சிக்கும் நேர இடைவெளியை அதிகரிக்கவும்.
- Circuit breaking: தோல்வியடையும் ஒரு வழங்குநருக்கு ஒரு குறிப்பிட்ட காலத்திற்குப் போக்குவரத்தை (traffic) அனுப்புவதை நிறுத்தவும். இது டைம்அவுட்களுக்காகக் காத்திருப்பதைத் தவிர்த்து, உடனடி ஃபெயில்ஓவர் (failover) செய்ய அனுமதிக்கிறது.
- Semantic Caching வழக்கமான கேச்சிங் (Standard caching) துல்லியமான உரைப் பொருத்தங்களைத் (exact text matches) தேடுகிறது. பயனர்கள் கேள்விகளை வெவ்வேறு விதமாகத் கேட்பதால், இது LLM-களுக்குப் பொருந்தாது. செமாண்டிக் கேச்சிங் (Semantic caching) பொருளைக் கவனிக்கிறது. இது ஒரு ப்ராம்ப்ட்டை (prompt) வெக்டராக (vector) மாற்றி, உங்கள் தரவுத்தளத்தில் (database) அது போன்ற கேள்வி ஏதேனும் உள்ளதா என்று சரிபார்க்கிறது.
- பயன்: ஒரு கேச் ஹிட் (cache hit) 5ms மட்டுமே எடுக்கும் மற்றும் செலவு $0. ஆனால் ஒரு மாடல் அழைப்பு (model call) பல வினாடிகள் எடுக்கும் மற்றும் டோக்கன்களுக்கான (tokens) செலவை ஏற்படுத்தும்.
- ஆபத்து: உங்கள் ஒற்றுமை வரம்பை (similarity threshold) மிகக் குறைவாக அமைப்பது தவறான பதில்களைத் தரும். வரம்பு மிகவும் தளர்வாக இருந்தால், "கடவுச்சொல்லை மீட்டமைப்பது" (resetting a password) பற்றிய கேள்விக்கு "மின்னஞ்சலை மாற்றுவது" (changing an email) பற்றிய பதில் கிடைக்கக்கூடும்.
Build or Buy?
- Build: அடிப்படை ஃபால்பேக்ஸ் அல்லது துல்லியப் பொருத்தம் கொண்ட கேச்சிங் போன்ற எளியத் தேவைகளுக்குச் சிறந்தது.
- Buy/Open Source: உங்களுக்கு செமாண்டிக் கேச்சிங், கண்காணிப்பு (observability) மற்றும் சிக்கலான ஃபெயில்ஓவர் லாஜிக் தேவைப்படும்போது LiteLLM போன்ற கருவிகள் அல்லது நிர்வகிக்கப்படும் சேவைகளைப் (managed services) பயன்படுத்தவும்.
ஒரு கேட்வே என்பது உள்கட்டமைப்பு (infrastructure), அது ஒரு அம்சம் (feature) அல்ல. உங்கள் codebase முழுவதும் மாடல் அழைப்புகளைத் தூவிக்கொண்டிருப்பதை நிறுத்துங்கள். உங்கள் செலவுகளையும் நம்பகத்தன்மையையும் கட்டுப்படுத்த முன்னால் ஒரு கேட்டை (gate) வையுங்கள்.
Source: https://dev.to/nazar_boyko/llm-gateways-routing-fallbacks-and-semantic-caching-1n2b
Optional learning community: https://t.me/GyaanSetuAi