पाठ 23 / 29

Run की लागत: Context वृद्धि और Caching

प्रति कार्य लागत का अनुमान लगाएँ और समझें लंबे runs जल्दी महँगे क्यों होते हैं।

हर चरण अब तक का सब दोबारा पढ़ता है

हर चरण पर harness मॉडल को अब तक की पूरी बातचीत भेजता है, पहले के हर tool परिणाम समेत। इसलिए प्रति चरण input tokens बढ़ते हैं, और run में कुल चरणों की संख्या से तेज़ बढ़ता है (जब हर चरण समान मात्रा जोड़े तो लगभग चरणों के वर्ग के अनुपात में)। Output tokens कम पर आम तौर पर प्रति token महँगे। उत्तोलक: prompt caching (कई providers निर्देश और पिछले turns जैसे दोहराए prefixes कम दर पर बिल करते हैं), संक्षिप्त tool आउटपुट, compaction, आसान उप-चरणों (खोज, सार) के लिए छोटे मॉडल, और चरण व लागत सीमाएँ। प्रति run नहीं बल्कि प्रति पूर्ण कार्य लागत (विफल प्रयासों समेत) ट्रैक करें, और उसकी बचाए गए engineer समय से तुलना करें। उदाहरण की क़ीमतें चित्रण के लिए गढ़ी हैं।

चरणों के साथ लागत वृद्धि, चलाकर

मैंने यह सादे Python 3 (सिर्फ़ standard library) से चलाया, अस्थायी folder में बनाए throwaway project के साथ। गढ़ी क़ीमतों के साथ 5-चरण run 27,000 input tokens लेता है और लगभग $0.11 का है, जबकि 40-चरण run दस लाख से अधिक input tokens लेता है और लगभग $3.41 का: 8 गुना चरण, लगभग 30 गुना लागत। 80% input cache करने से 40-चरण लागत लगभग $1.13 रह जाती है।

# Each step re-sends the growing conversation, so input tokens grow faster than the step count.
base, per_step = 3000, 1200          # initial prompt tokens, and tokens added by every step (tool output + reply)
price_in, price_out = 3.0, 15.0      # example USD per million tokens, NOT real prices
out_per_step = 400

def run_cost(steps, cached_fraction=0.0, cache_price=0.1):
    total_in = sum(base + per_step * i for i in range(steps))
    cached = total_in * cached_fraction
    cost_in = ((total_in - cached) * price_in + cached * price_in * cache_price) / 1e6
    return total_in, cost_in + steps * out_per_step * price_out / 1e6

for steps in (5, 10, 20, 40):
    t, c = run_cost(steps)
    print(f"{steps:2d} steps: input tokens {t:8,d}  cost ${c:.3f}   (with 80% of input cached: ${run_cost(steps, 0.8)[1]:.3f})")

Output:

 5 steps: input tokens   27,000  cost $0.111   (with 80% of input cached: $0.053)
10 steps: input tokens   84,000  cost $0.312   (with 80% of input cached: $0.131)
20 steps: input tokens  288,000  cost $0.984   (with 80% of input cached: $0.362)
40 steps: input tokens 1,056,000  cost $3.408   (with 80% of input cached: $1.127)

प्रति पूर्ण कार्य लागत ट्रैक करें

विफल प्रयासों को अंततः सफल होने वाले कार्यों की लागत में शामिल करें।

त्वरित जाँच: लागत चरणों की संख्या से तेज़ क्यों बढ़ती है?

  • हर चरण लंबी होती बातचीत को input के रूप में दोबारा भेजता है
  • Run के दौरान tokens महँगे होते हैं
  • मॉडल प्रति file शुल्क लेता है
  • ऐसा नहीं होता
Answer

हर चरण लंबी होती बातचीत को input के रूप में दोबारा भेजता है — Context वृद्धि बाद के चरणों को पहले वालों से महँगा बनाती है।