കുറഞ്ഞ ചിലവിൽ ഞാൻ എങ്ങനെ AI താരതമ്യ പേജുകൾ നിർമ്മിച്ചു
എന്റെ AI ടൂൾസ് ഡയറക്ടറിക്ക് വേണ്ടി താരതമ്യ പേജുകൾ (comparison pages) നിർമ്മിക്കേണ്ട ആവശ്യമുണ്ടായിരുന്നു.
കണക്കുകൾ ഭയപ്പെടുത്തുന്നതായിരുന്നു. 200 മോഡലുകൾ ഉള്ളതുകൊണ്ട്, ഏകദേശം 20,000 ജോഡികൾ (pairs) ഉണ്ടാകാൻ സാധ്യതയുണ്ടായിരുന്നു. ഓരോ ജോഡിക്കും ഉള്ളടക്കം നിർമ്മിക്കാൻ Claude Haiku ഉപയോഗിക്കുന്നത് ദിവസവും ചെയ്താൽ വലിയ ചിലവ് വരും.
യുക്തിയും പരിധികളും ഉപയോഗിച്ച് ഞാൻ ഇത് എങ്ങനെ പരിഹരിച്ചു എന്ന് താഴെ നൽകുന്നു.
The Strategy
ഉയർന്ന താൽപ്പര്യമുള്ള ക്വറികളിൽ (high-intent queries) ഞാൻ ശ്രദ്ധ കേന്ദ്രീകരിച്ചു. ഉപയോക്താക്കൾക്ക് "Llama 3 vs Mistral" പോലുള്ള കാര്യങ്ങളാണ് അറിയേണ്ടത്. അവർക്ക് ഒരു തീരുമാനമാണ് വേണ്ടത്, വലിയൊരു ഉപന്യാസമല്ല.
ചിലവ് നിയന്ത്രിക്കാൻ ഞാൻ ഈ നിയമങ്ങൾ ഉപയോഗിച്ചു:
• മോഡലുകളെ അവയുടെ പൈപ്പ്ലൈൻ ടാഗ് (pipeline tag) അനുസരിച്ച് ഗ്രൂപ്പ് ചെയ്യുക. • ഓരോ ഗ്രൂപ്പിലും ഡൗൺലോഡ് എണ്ണം കൂടുതലുള്ള ആദ്യത്തെ 4 മോഡലുകൾ മാത്രം തിരഞ്ഞെടുക്കുക. • ആകെ ജോഡികളുടെ എണ്ണത്തിന് കൃത്യമായ ഒരു പരിധി നിശ്ചയിക്കുക.
ഇത് എന്റെ ജോഡികളുടെ എണ്ണം 20,000-ൽ നിന്ന് ഏകദേശം 50 ആയി കുറച്ചു. ഇത് ഏറ്റവും ജനപ്രിയമായ മോഡലുകളെ ഉൾക്കൊള്ളുന്നതോടൊപ്പം ചിലവ് കുറയ്ക്കാനും സഹായിക്കുന്നു.
The Technical Setup
എല്ലാ രാത്രിയിലും പ്രവർത്തിക്കുന്ന ഒരു ETL പ്രക്രിയ ഞാൻ നിർമ്മിച്ചു. ഇത് idempotent ആണ്. അതായത്, ഒരു ജോഡി എന്റെ ഡാറ്റാബേസിൽ നിലവിലുണ്ടെങ്കിൽ, സ്ക്രിപ്റ്റ് അത് ഒഴിവാക്കും.
മിക്ക രാത്രികളിലും, സ്ക്രിപ്റ്റ് 3 സെക്കൻഡിനുള്ളിൽ പ്രവർത്തിച്ചു തീരും, കൂടാതെ എല്ലാം ഒഴിവാക്കുന്നതിനാൽ ചിലവ് $0 ആയിരിക്കും.
ഇത് കാര്യക്ഷമമായി നിലനിർത്താൻ ഞാൻ ചില വിദ്യകൾ ഉപയോഗിക്കുന്നു:
• Prompt Caching: ഞാൻ ഒരു ഷെയർഡ് Claude Haiku ക്ലയന്റ് ഉപയോഗിക്കുന്നു. സിസ്റ്റം പ്രോംപ്റ്റ് (system prompt) മാറാത്തതിനാൽ, കാഷിംഗ് (caching) ഉപയോഗിക്കുന്നതിലൂടെ തുടർന്നുള്ള കോളുകൾ ഏതാണ്ട് സൗജന്യമായി ലഭിക്കുന്നു. • Lean Prompts: മോഡൽ സംഗ്രഹങ്ങൾ (summaries) 400 ക്യാരക്ടറിലേക്ക് പരിമിതപ്പെടുത്തുന്നു. ഇത് ഇൻപുട്ട് ചെറുതാക്കാനും വേഗത കൂട്ടാനും സഹായിക്കുന്നു. • Static Generation: ഡാറ്റയെ സ്റ്റാറ്റിക് JSON ഫയലുകളാക്കി മാറ്റാൻ ഞാൻ Astro ഉപയോഗിക്കുന്നു. ഉപയോക്താവിന് ഡാറ്റാബേസ് കോളുകളോ എഡ്ജ് ഫംഗ്ഷൻ ലേറ്റൻസിയോ (edge function latency) നേരിടേണ്ടി വരുന്നില്ല.
What Happens when IT fails?
AI പ്രവചനാതീതമായിരിക്കാം. ചിലപ്പോൾ Claude തെറ്റായ JSON നൽകിയേക്കാം.
ഞാൻ ഒരു ഫോളബാക്ക് സിസ്റ്റം (fallback system) തയ്യാറാക്കി. AI പരാജയപ്പെട്ടാലും പേജ് ക്രാഷ് ആകില്ല. പകരം, ഒരു സ്റ്റാൻഡേർഡ് ടെംപ്ലേറ്റ് കാണിക്കും. ഓരോ മോഡലിന്റെയും പേജുകൾ പരിശോധിക്കാൻ അത് ഉപയോക്താവിനോട് ആവശ്യപ്പെടും. പിന്നീട് വീണ്ടും ശ്രമിക്കുന്നതിനായി ഇത്തരം പരാജയങ്ങൾ ഞാൻ ഡാറ്റാബേസിൽ രേഖപ്പെടുത്തുന്നു.
What I would do differently
ഞാൻ ഇന്ന് വീണ്ടും തുടങ്ങുകയാണെങ്കിൽ, രണ്ട് കാര്യങ്ങൾ മാറ്റം വരുത്തും:
- Cross-pipeline comparisons: രണ്ട് സമാനമായ ടെക്സ്റ്റ് മോഡലുകളെ താരതമ്യം ചെയ്യുന്നതിനേക്കാൾ മൂല്യമുള്ളതാണ് ഒരു ടെക്സ്റ്റ് മോഡലിനെ ഒരു വിഷൻ മോഡലുമായി താരതമ്യം ചെയ്യുന്നത്.
- Search-driven selection: ഡൗൺലോഡ് എണ്ണത്തിന് പകരം, ഏത് ജോഡികളാണ് നിർമ്മിക്കേണ്ടതെന്ന് തീരുമാനിക്കാൻ യഥാർത്ഥ ഉപയോക്തൃ സെർച്ച് ലോഗുകൾ (user search logs) ഞാൻ ഉപയോഗിക്കുമായിരുന്നു.
പരിമിതികൾക്കുള്ളിൽ നിന്നുകൊണ്ട് നിർമ്മിക്കുന്നത് നിങ്ങളെ കൂടുതൽ ബുദ്ധിപരമായി കാര്യങ്ങൾ ചെയ്യാൻ പ്രേരിപ്പിക്കുന്നു.
Optional learning community: https://t.me/GyaanSetuAi
