मैंने कम बजट में AI तुलना (Comparison) पेज कैसे बनाए
मुझे अपने AI टूल्स डायरेक्टरी के लिए तुलना (comparison) पेज बनाने की ज़रूरत थी।
गणित डरावना था। 200 मॉडल्स के साथ, मेरे सामने लगभग 20,000 संभावित जोड़े (pairs) थे। अगर मैं हर जोड़े के लिए कंटेंट जनरेट करने के लिए Claude Haiku का रोज़ाना इस्तेमाल करता, तो इसकी लागत बहुत अधिक होती।
यहाँ बताया गया है कि मैंने तर्क (logic) और सीमाओं (limits) का उपयोग करके इसे कैसे हल किया।
रणनीति
मैंने हाई-इंटेंट (high-intent) क्वेरीज़ पर ध्यान केंद्रित किया। उपयोगकर्ता "Llama 3 vs Mistral" जानना चाहते हैं। उन्हें एक निर्णय चाहिए, न कि कोई लंबा निबंध।
मैंने लागत को नियंत्रित करने के लिए इन नियमों का उपयोग किया:
• मॉडल्स को उनके पाइपलाइन टैग के आधार पर ग्रुप करें। • प्रत्येक ग्रुप में डाउनलोड काउंट के आधार पर केवल शीर्ष 4 मॉडल्स चुनें। • कुल जोड़ों (pairs) पर एक सख्त सीमा निर्धारित करें।
इससे मेरे जोड़े 20,000 से घटकर लगभग 50 रह गए। इससे सबसे लोकप्रिय मॉडल्स को कवर करते हुए मेरी लागत कम रहती है।
तकनीकी सेटअप
मैंने एक ETL प्रोसेस बनाया जो हर रात चलता है। यह idempotent है। इसका मतलब है कि यदि जोड़ा पहले से ही मेरे डेटाबेस में मौजूद है, तो स्क्रिप्ट उसे छोड़ देती है।
ज़्यादातर रातों में, स्क्रिप्ट 3 सेकंड में चल जाती है और इसकी लागत $0 होती है क्योंकि यह सब कुछ स्किप कर देती है।
इसे कुशल बनाए रखने के लिए मैं कई ट्रिक्स का उपयोग करता हूँ:
• Prompt Caching: मैं एक साझा Claude Haiku क्लाइंट का उपयोग करता हूँ। चूंकि सिस्टम प्रॉम्प्ट समान रहता है, इसलिए कैशिंग (caching) के कारण बाद वाली कॉल्स लगभग मुफ्त हो जाती हैं। • Lean Prompts: मैं मॉडल सारांश (summaries) को 400 कैरेक्टर्स तक सीमित कर देता हूँ। इससे इनपुट छोटा और तेज़ रहता है। • Static Generation: मैं डेटा को स्टैटिक JSON फाइलों में बदलने के लिए Astro का उपयोग करता हूँ। उपयोगकर्ता के लिए कोई धीमे डेटाबेस कॉल या edge function लेटेंसी नहीं होती है।
जब यह विफल हो जाता है तो क्या होता है?
AI अप्रत्याशित हो सकता है। कभी-कभी Claude खराब JSON लौटाता है।
मैंने एक फॉलबैक (fallback) सिस्टम लिखा है। यदि AI विफल हो जाता है, तो पेज क्रैश नहीं होता है। इसके बजाय, यह एक मानक टेम्पलेट दिखाता है। यह उपयोगकर्ता को व्यक्तिगत मॉडल पेज देखने के लिए कहता है। मैं इन विफलताओं को अपने डेटाबेस में ट्रैक करता हूँ ताकि मैं बाद में उन्हें फिर से प्रयास (retry) कर सकूँ।
मैं क्या अलग करता
अगर मैं आज फिर से शुरुआत करता, तो मैं दो चीजें बदलता:
- Cross-pipeline comparisons: दो समान टेक्स्ट मॉडल्स की तुलना करने के बजाय एक टेक्स्ट मॉडल की तुलना विज़न मॉडल से करना अधिक मूल्यवान है।
- Search-driven selection: डाउनलोड काउंट का उपयोग करने के बजाय, मैं यह तय करने के लिए वास्तविक उपयोगकर्ता सर्च लॉग का उपयोग करता कि किन जोड़ों को बनाना है।
बाधाओं (constraints) के साथ निर्माण करना आपको अधिक समझदारी से काम करने के लिए मजबूर करता है।
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi
