Bloga dön

Maliyet optimizasyonuKılavuz

Bir model turnuvasının API maliyetini çalıştırmadan önce tahmin edin

Koltuk başına tokenları sayın, oyun ve taraf değişimleriyle çarpın ve Python'da sert bir üst sınır belirleyin: 6 koltuklu, 60 oyunluk bir model turnuvası için işlenmiş bir tahmin.

Yazan: CheapTokens TeamYayınlanma tarihi: 5 dk okuma

Kapak: bir model turnuvasının çalışmadan önceki maliyeti, koltuk ve turlardan büyüyen geçmişe ve bütçe sınırına
Bu sayfada
  1. 20.000 dolarlık bir manşetin size ne söylediği ve söylemediği
  2. Tek koltuk: girdi neden sürekli büyüyor
  3. Tek koltuktan tüm turnuvaya
  4. Koda sert bir üst sınır koyun
  5. İlk çalıştırma için güvenli bir sıra

Bir model turnuvasının faturasını ilk istekten önce bilebilirsiniz: bir koltuğun tüm oyun boyunca gönderdiği tokenları sayın, koltuk ve oyun sayısıyla çarpın ve koda sert bir üst sınır koyun. İnsanların gözden kaçırdığı kısım geçmiş. Her turda o ana kadar söylenen her şey yeniden gönderilir, bu yüzden girdi tur sayısından çok daha hızlı büyür.

20.000 dolarlık bir manşetin size ne söylediği ve söylemediği#

5 Kasım 2026'da podcast yapımcısı Dwarkesh Patel, modellerin birbirine karşı sosyal çıkarım oyunu Blood on the Clocktower oynadığı Clocktower Bench adlı kıyaslamayı yayımladı. Harness'ı kurmak için yaklaşık 20.000 dolarlık API kredisi harcadığını ve bunun büyük kısmının planladığı tokenlardan çok, ortam tasarımı üzerinde iterasyon yapmaya gittiğini söylüyor.

Projenin README dosyası (8 Kasım 2026'da kontrol edildi) kurulumu şöyle anlatıyor: 11 model, manşet sıralaması için 386 oyun, bir model tüm iyi koltukları, bir diğeri tüm kötü koltukları oynuyor, 10–12 oyuncu, saatler süren oyunlar. Her dağıtım taraflar yer değiştirilerek tekrar oynanıyor, böylece hiçbir model daha kolay rolü almıyor. Ayrıca ücretsiz bir deneme çalıştırması (--model random) sunuyor, harcamayı games/ledger.jsonl dosyasına yazıyor ve varsayılanı 1.000 dolar olan bir --budget üst sınırı var.

Vermediği şey oyun başına token sayısı. Yani kopyalayacak bir şey yok; tahmini kendiniz kuruyorsunuz. Bu makalenin geri kalanı da bunu yapıyor, kendi değerlerinizle değiştirebileceğiniz belirtilmiş varsayımlarla.

Tek koltuk: girdi neden sürekli büyüyor#

Daha küçük bir oyun çalıştırdığınızı varsayalım: 6 koltuk, her koltuk kendi konuşmasına sahip bir model, koltuk başına 20 tur. 2.000 tokenlık bir sistem istemi (kurallar ve koltuğun rolü), her turdan önce gelen 600 yeni token masa konuşması ve 300 tokenlık bir yanıt varsayın. API'nin hafızası yok, bu yüzden her istek tüm konuşmayı yeniden taşır (uzun bir sohbet neden daha pahalı).

1. tur 2.000 + 600 = 2.600 token gönderir. 20. tur 2.000 + 600 × 20 + 300 × 19 = 19.700 gönderir. Son sayıyı kendiniz deneyin:

Sayıyı tahmin et

Bir koltuk 20. turunda kaç girdi tokenı gönderir?

Cevabı göster

Cevap: 19.700

19.700: 2.000 tokenlık sistem istemi, 20 × 600 yeni konuşma ve her biri 300 olan 19 önceki yanıt. Her eski yanıt ve her eski mesaj geri gönderilir.

Bir koltuk için 20 turun tamamını toplayın: 2.000 × 20 + 600 × 210 + 300 × 190 = 40.000 + 126.000 + 57.000 = 223.000 girdi tokenı. Çıktı ise yalnızca 20 × 300 = 6.000. Her mesajı bir kez saysaydınız 2.000 + 20 × 600 = 14.000 elde eder ve on altı kat yanılırdınız.

Bir koltuk için 20 tur boyunca bir kez saymak ile geçmişi yeniden göndermek
Tek koltuk, 20 tur: mesajları bir kez saymak 14.000 girdi tokenı verir, geçmişi yeniden göndermek 223.000 verir. Bu makalenin varsayımları.

Çıktı tarafı neredeyse hiç değişmiyor. Para girdiye gidiyor ve oyunlar uzadıkça kötüleşen taraf da bu.

Tek koltuktan tüm turnuvaya#

Şimdi bunu üç çarpanla ölçekleyin.

  • Koltuklar. 6 koltuk × 223.000 = 1.338.000 girdi tokenı ve oyun başına 6 × 6.000 = 36.000 çıktı tokenı.
  • Taraf değişimi. Round robin'de 3 model alın: 3 eşleşme. Her eşleşmede 10 dağıtım oynayın, her biri taraflar yer değiştirilerek iki kez: 3 × 10 × 2 = 60 oyun.
  • Oyunlar. Turnuva için 60 × 1.338.000 = 80.280.000 girdi ve 60 × 36.000 = 2.160.000 çıktı tokenı.
Tek koltuktan 60 oyuna: çarpanlar
Bu makalenin varsayımları: 6 koltuk, 3 eşleşme × 10 dağıtım × 2 taraf = 60 oyun.

DeepSeek-V4-Flash üzerinde bir oyun $0.0237 tutuyor. Aşağıdaki tablo, 60 oyunluk turnuvanın tamamını sanki o tek model her koltuğu oynamış gibi fiyatlandırıyor, böylece CheapTokens'in bu tür uzun konuşmalı işler için sunduğu üç modeli karşılaştırabilirsiniz. Girdi ve çıktı birlikte sayıldığında, toplamda her biri son sütundaki OpenRouter referansından daha ucuz.

Model İstek başına 60 istek OpenRouter, 60 istek
GLM-5.3-Flash $0.0282 $1.69 $2.87
DeepSeek-V4-Flash $0.0237 $1.42 $5.92
MiniMax-M2.7 $0.0723 $4.34 $52.06

İstek başına 1.338.000 giriş ve 36.000 çıkış token'ı. 1M token başına fiyatlar günceldir ve tarifelerimizle birlikte değişir; OpenRouter sütunu aynı iş yükü için referans fiyatları gösterir.

Bütçe açısından bütün hile bu: üç modelden hangisinin bir müzakere oyununu daha iyi oynadığını öğrenmek için 20.000 dolarlık bir kaleme ihtiyacınız yok. Yukarıdaki tahmine ve ardından bunu doğrulayacak gerçek bir pilot çalışmaya ihtiyacınız var.

Hızlı kontrol

6 koltuklu oyununuz koltuk başına 20 turdan 40 tura çıkıyor. Girdi faturasına ne olur?

Cevabı göster

Cevap: Yaklaşık 3,6 kat büyür

40 tur için aynı formül 2.000 × 40 + 600 × 820 + 300 × 780 = 806.000 girdi tokenı verir; 20 tur için bu 223.000'di. Geçmiş terimi tur sayısının karesiyle büyür.

Böyle bir sayıya güvenmeden önce iki kontrol yapın. Birincisi, en büyük istek modelin penceresine sığmalı. 20 turda en büyük istek 19.700 token, sorun yok. Koltuk başına 200 turluk saatler süren bir oyun 2.000 + 600 × 200 + 300 × 199 = 181.700'e, yaklaşık 182K'ya ulaşır, bu yüzden oyunu tasarlamadan önce modelin sayfasındaki bağlam boyutunu okuyun. DeepSeek-V4-Flash'in 380K penceresi ve 32.768'e kadar çıktı tokenı var; bkz. model sayfası. İkincisi, bir model uzun akıl yürütme üretirse 300 çıktı tokenınız artar (toplu bir işte düşünme tokenları).

Koda sert bir üst sınır koyun#

README'deki --budget bayrağı doğru fikir ve kendi harness'ınıza kopyalamak on satır sürer. Aşağıdaki betik çalışmadan önce tahmin yapar, toplamı üst sınırın üzerine çıkarabilecek bir istek göndermeyi reddeder ve her çağrıyı bir defter dosyasına kaydeder. İçindeki fiyatlar bir örnektir: güncel olanları fiyatlandırma tablosundan alın.

python
import json, os
from openai import OpenAI

client = OpenAI(
    base_url='https://api.cheaptokens.dev/v1',
    api_key=os.environ['CHEAPTOKENS_API_KEY'],
)
MODEL = 'deepseek-ai/DeepSeek-V4-Flash-0731'
PRICE_IN, PRICE_OUT = 0.10, 0.40  # per 1M tokens: example, substitute current
CAP_USD = 5.00
spent = 0.0


def cost(tin, tout):
    return (tin * PRICE_IN + tout * PRICE_OUT) / 1_000_000


def estimate(seats, turns, system=2000, new_in=600, out=300):
    tin = sum(system + new_in * k + out * (k - 1) for k in range(1, turns + 1))
    return seats * tin, seats * turns * out


def ask(seat, history, max_out=400):
    global spent
    rough_in = sum(len(m['content']) for m in history) // 3  # pessimistic
    if spent + cost(rough_in, max_out) > CAP_USD:
        raise SystemExit(f'cap reached: ${spent:.4f} spent')
    r = client.chat.completions.create(
        model=MODEL, messages=history, max_tokens=max_out)
    u = r.usage
    spent += cost(u.prompt_tokens, u.completion_tokens)
    with open('ledger.jsonl', 'a') as f:
        f.write(json.dumps({'seat': seat, 'in': u.prompt_tokens,
                            'out': u.completion_tokens,
                            'spent': round(spent, 6)}) + '\n')
    return r.choices[0].message.content


print(estimate(6, 20))  # (1338000, 36000) per game

estimate(6, 20), yukarıdakiyle aynı oyun başına sayıları, (1338000, 36000) yazdırır, böylece kod ve aritmetik birbirini kontrol eder. usage.prompt_tokens ve usage.completion_tokens yanıttan gelir ve faturalandırıldığınız değerlerdir; ön kontrol kötümser bir karakter sayımı kullanır çünkü gerçek sayı ancak çağrıdan sonra bilinir. Proje bazlı defterler hakkında daha fazlası Python'da ajan token maliyetini izleme yazısında.

İlk çalıştırma için güvenli bir sıra#

Deponun kendi sırası iyi bir model: önce ücretsiz, sonra ucuz, en son pahalı. Şu adımları sıraya koyun:

Sıraya koy

Güvenli bir ilk çalıştırmanın adımlarını sıraya koyun

  1. Rastgele bir oyuncuyla deneme çalıştırması, API çağrısı yok
  2. estimate() çalıştırın ve üst sınırınızla karşılaştırın
  3. Bir gerçek oyun oynayın ve defteri okuyun
  4. Varsayımları gerçek token sayılarıyla düzeltin
  5. Üst sınır açıkken tam turnuvayı başlatın

README, ucuz modellerde bir demo oyunun yaklaşık 2–5 dolar tuttuğunu söylüyor. Bu yazarın ifadesi ve modeller adlandırılmamış, bu yüzden bunu kurulumunuz için bir fiyat teklifi değil, bir akıl sağlığı aralığı olarak görün. Kendi pilot oyununuz önemli olan sayıyı verir: defteri 1.338.000 varsaydığınız yerde 1.500.000 girdi tokenı gösteriyorsa, bunu 40. oyunda değil birkaç kuruş karşılığında öğrenmiş olursunuz.

Daha uzun deneyler için olağan kaldıraçlar sohbet geçmişini kırpma yazısında: her koltuğun yeniden okumak zorunda olduğu şeyi azaltın, karesel terim de onunla birlikte küçülür. Çalıştırmaya hazır olduğunuzda dokümanlarda uç nokta ve model kimlikleri var.