पाठ 21 / 27
लागत और Latency घटाना: Caching, Batching, Model चुनाव
सबसे बड़े उत्तोलक पहले लगाएँ।
कम भेजें, ज़्यादा पुनः उपयोग करें, सही आकार चुनें
सबसे बड़े उत्तोलक, मोटे क्रम में: (1) कम tokens भेजें: छोटे system prompts, सिर्फ़ प्रासंगिक दस्तावेज़, trim इतिहास, संक्षिप्त tool परिभाषाएँ; (2) max_tokens से और संक्षिप्तता माँगकर output सीमित करें; (3) आसान कार्यों (वर्गीकरण, निष्कर्षण) के लिए छोटा, सस्ता मॉडल और मज़बूत सिर्फ़ जहाँ ज़रूरी, गुणवत्ता की पुष्टि को मूल्यांकन set के साथ; (4) prompt caching: दोनों providers लंबा अपरिवर्तित prefix (system prompt, संदर्भ दस्तावेज़, tool परिभाषाएँ) दोहराए अनुरोधों पर कम क़ीमत और कम latency से पुनः उपयोग कर सकते हैं, यदि आप स्थिर सामग्री पहले रखें; (5) ग़ैर-ज़रूरी बड़े काम के लिए batch APIs, आम तौर पर छूट पर; (6) अपने system में समान अनुरोधों का response caching; और (7) अनुभव की गति के लिए streaming। हर बदलाव के बाद अपने गुणवत्ता tests दोबारा चलाएँ।
लंबे prefix को cache करने से क्या बच सकता है, चलाकर
मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। गढ़ी क़ीमतों और cached-prefix दर 10% के साथ, 6,000-token prefix पुनः उपयोग करने वाली 1,000 calls $21.30 से $5.12 पर आ जाती हैं, लगभग 76% कम। असली छूट, न्यूनतम prefix आकार और cache अवधि provider के अनुसार अलग हैं, इसलिए इसे बचत का रूप मानें, उद्धरण नहीं।
# Prompt caching idea: a long, unchanging prefix (system prompt + docs) can be billed at a lower rate on repeat calls.
prefix_tokens, question_tokens, output_tokens, calls = 6000, 100, 200, 1000
price_in, price_out, cached_factor = 3.00, 15.00, 0.10 # example numbers, NOT real prices
no_cache = calls * ((prefix_tokens + question_tokens) * price_in + output_tokens * price_out) / 1e6
first = (prefix_tokens + question_tokens) * price_in + output_tokens * price_out
rest = (calls - 1) * (prefix_tokens * price_in * cached_factor + question_tokens * price_in + output_tokens * price_out)
with_cache = (first + rest) / 1e6
print("without caching: $%.2f" % no_cache)
print("with caching : $%.2f" % with_cache)
print("saving : %.0f%%" % (100 * (1 - with_cache / no_cache)))
Output:
without caching: $21.30 with caching : $5.12 saving : 76%
स्थिर सामग्री पहले रखें
Caching मेल खाते prefix पर काम करती है। अपरिवर्तनीय निर्देश और दस्तावेज़ शुरू में और बदलता user सवाल अंत में रखें।
त्वरित जाँच: Prompt caching का लाभ पाने के लिए prompt कैसे सजाएँ?
- बदलती सामग्री पहले
- स्थिर सामग्री पहले, बदलती सामग्री अंत में
- Random क्रम
- Caching को किसी क्रम की ज़रूरत नहीं
Answer
स्थिर सामग्री पहले, बदलती सामग्री अंत में — Caches समान prefix पर मेल करते हैं, इसलिए साझा हिस्सा पहले आना चाहिए।