குறைந்த செலவில் நான் எவ்வாறு AI ஒப்பீட்டுப் பக்கங்களை உருவாக்கினேன்
எனது AI கருவிகளின் தொகுப்பிற்காக (directory) ஒப்பீட்டுப் பக்கங்களை உருவாக்க வேண்டியிருந்தது.
கணக்கீடுகள் பயமுறுத்துவதாக இருந்தன. 200 மாடல்கள் இருந்தால், கிட்டத்தட்ட 20,000 சாத்தியமான ஜோடிகளை (pairs) உருவாக்க வேண்டியிருக்கும். ஒவ்வொரு ஜோடிக்கும் Claude Haiku மூலம் உள்ளடக்கத்தை உருவாக்கினால், அதைத் தினமும் செய்யும்போது செலவு மிக அதிகமாக இருக்கும்.
தர்க்கம் (logic) மற்றும் கட்டுப்பாடுகளைப் பயன்படுத்தி நான் இதை எவ்வாறு தீர்த்தேன் என்பதை இங்கே காணலாம்.
The Strategy
நான் அதிகத் தேடல் நோக்கமுள்ள (high-intent) வினைகளில் கவனம் செலுத்தினேன். பயனர்கள் "Llama 3 vs Mistral" என்பதைப் பற்றித் தெரிந்துகொள்ள விரும்புகிறார்கள். அவர்களுக்கு ஒரு முடிவு வேண்டுமே தவிர, நீண்ட கட்டுரை அல்ல.
செலவைக் கட்டுப்படுத்த நான் இந்த விதிகளைப் பயன்படுத்தினேன்:
• மாடல்களை அவற்றின் pipeline tag மூலம் குழுவாக்குதல். • ஒவ்வொரு குழுவிலும் பதிவிறக்க எண்ணிக்கையின் அடிப்படையில் முதல் 4 மாடல்களை மட்டும் தேர்ந்தெடுத்தல். • மொத்த ஜோடிகளுக்கு ஒரு கடுமையான வரம்பை (hard limit) நிர்ணயித்தல்.
இது எனது ஜோடிகளின் எண்ணிக்கையை 20,000-லிருந்து சுமார் 50 ஆகக் குறைத்தது. இது மிகவும் பிரபலமான மாடல்களை உள்ளடக்கிய அதே வேளையில், எனது செலவையும் குறைவாக வைத்திருக்கிறது.
The Technical Setup
ஒவ்வொரு இரவும் இயங்கும் ஒரு ETL செயல்முறையை நான் உருவாக்கினேன். இது idempotent தன்மை கொண்டது. அதாவது, ஒரு ஜோடி ஏற்கனவே எனது தரவுத்தளத்தில் (database) இருந்தால், ஸ்கிரிப்ட் அதைத் தவிர்த்துவிடும்.
பெரும்பாலான இரவுகளில், ஸ்கிரிப்ட் 3 வினாடிகளில் இயங்கிவிடும் மற்றும் அனைத்தையும் தவிர்த்துவிடுவதால் செலவு $0 ஆக இருக்கும்.
இதைத் திறமையாக வைத்திருக்க நான் சில நுணுக்கங்களைப் பயன்படுத்துகிறேன்:
• Prompt Caching: நான் ஒரு பகிரப்பட்ட Claude Haiku கிளையண்டைப் பயன்படுத்துகிறேன். சிஸ்டம் பிராம்ட் (system prompt) மாறாமல் இருப்பதால், கேச்சிங் (caching) மூலம் அடுத்தடுத்த அழைப்புகள் கிட்டத்தட்ட இலவசமாக அமைகின்றன. • Lean Prompts: மாடல் சுருக்கங்களை (model summaries) 400 எழுத்துக்களாகக் குறைக்கிறேன். இது உள்ளீட்டைச் சிறியதாகவும் வேகமாகவும் வைத்திருக்க உதவுகிறது. • Static Generation: தரவை நிலையான JSON கோப்புகளாக மாற்ற நான் Astro-வைப் பயன்படுத்துகிறேன். இதனால் பயனருக்குத் தாமதமான தரவுத்தள அழைப்புகளோ அல்லது edge function தாமதங்களோ இருக்காது.
What Happens when IT fails?
AI கணிக்க முடியாதது. சில நேரங்களில் Claude தவறான JSON-ஐத் தரும்.
நான் ஒரு fallback அமைப்பை எழுதினேன். AI தோல்வியடைந்தால், பக்கம் செயலிழக்காது (crash). அதற்குப் பதிலாக, அது ஒரு நிலையான டெம்ப்ளேட்டைக் காட்டும். தனிப்பட்ட மாடல் பக்கங்களைச் சரிபார்க்குமாறு பயனருக்கு அது அறிவுறுத்தும். நான் இந்தத் தோல்விகளை எனது தரவுத்தளத்தில் கண்காணிக்கிறேன், இதனால் பின்னர் அவற்றை மீண்டும் முயற்சிக்க முடியும்.
What I would do differently
நான் இன்று மீண்டும் தொடங்குவதாக இருந்தால், இரண்டு விஷயங்களை மாற்றுவேன்:
- Cross-pipeline ஒப்பீடுகள்: இரண்டு ஒத்த உரை (text) மாடல்களை ஒப்பிடுவதை விட, ஒரு உரை மாடலை ஒரு விஷன் (vision) மாடலுடன் ஒப்பிடுவது அதிக மதிப்புடையது.
- தேடல் சார்ந்த தேர்வு: பதிவிறக்க எண்ணிக்கையைப் பயன்படுத்துவதற்குப் பதிலாக, எந்த ஜோடிகளை உருவாக்க வேண்டும் என்பதைத் தீர்மானிக்க உண்மையான பயனர் தேடல் பதிவுகளைப் (search logs) பயன்படுத்துவேன்.
கட்டுப்பாடுகளுடன் உருவாக்குவது உங்களைச் புத்திசாலித்தனமாகச் செயல்படத் தூண்டும்.
Optional learning community: https://t.me/GyaanSetuAi
