Derin Bakış
LLM Maliyet Optimizasyonu: Cache, Batch ve Routing Rehberi
Aynı model, aynı soru, 20 kat fiyat farkı. Prompt cache, batch API, model yönlendirme ve semantik cache desenlerini rakamlarıyla ve 60.000 mesajlık bir destek botu hesabıyla anlatıyoruz.

Bir milyon giriş token'ı için 3 dolar da ödeyebilirsiniz, 15 sent de. Model aynı, soru aynı, cevap aynı. Aradaki 20 kat fark, isteği nasıl gönderdiğinizden geliyor: aynı metni her seferinde yeniden mi okutuyorsunuz, cevabı şimdi mi istiyorsunuz yoksa gece mi, her soruyu en pahalı modele mi soruyorsunuz. LLM maliyet optimizasyonu diye anılan konu, büyük ölçüde bu üç sorunun cevabından ibaret.
Sahada gördüğümüz tablo şu: API faturası şişen ekiplerin çoğu önce daha ucuz model aramaya başlıyor. Oysa fatura kalemlerini tek tek açınca, modele dokunmadan yüzde 70'in üzerinde düşüş sağlayan üç dört mimari desen ortaya çıkıyor. Bu yazı o desenleri (prompt cache, batch, model yönlendirme ve semantik cache) rakamlarıyla anlatıyor; streaming'in neden bu listede olmadığını da açıklıyor. Kümenin çatı yazısı olan AI altyapısı kararlarının patron özetinde "API ile mi, kendi sunucunuzda mı" sorusunu ele almıştık; burada API tarafını seçmiş bir ekibin faturasına odaklanıyoruz.
Bir not: fiyatlar Eylül 2026 itibarıyla ikincil kaynaklardan derlendi ve sağlayıcılar bu listeleri sık değiştiriyor. Yazıdaki oranlar (yüzde 50 batch indirimi, yüzde 90 cache indirimi gibi) mertebe olarak sağlam; kesin rakam için sözleşme öncesi resmî fiyat sayfasına bakın.
API faturası nereden şişer?
Bir LLM API faturası üç kalemden oluşur: giriş token'ı (modele gönderdiğiniz her şey), çıkış token'ı (modelin yazdığı her şey) ve istek sayısı. Çıkış token'ı giriş token'ından modele göre 3 ila 8 kat, çoğu modelde 4-5 kat pahalıdır. Faturayı şişiren ise genellikle giriş tarafındaki tekrardır: aynı sistem talimatı, aynı ürün kataloğu, aynı örnekler her istekte yeniden gönderilir.
Somut olsun. Bir müşteri destek botunun sistem talimatı 6.000 token tutuyor: iade politikası, kargo kuralları, ton talimatları, on örnek diyalog. Müşterinin sorusu 200 token, cevap 250 token. Bir mesajın giriş maliyetinin yüzde 95'i, müşterinin hiç görmediği o 6.000 token'a gidiyor. Ayda 60.000 mesajda bu, 360 milyon token'ın her ay yeniden okunması demek.
Bu yüzden ilk soru "hangi model daha ucuz" olmamalı. İlk soru şu: her istekte tekrar eden kısım ne kadar ve bunu neden her seferinde ödüyoruz?
Prompt cache faturayı gerçekten yüzde 90 düşürür mü?
Prompt cache (istem önbelleği), isteğin değişmeyen başlangıç kısmını sağlayıcının kendi tarafında saklaması ve sonraki isteklerde yeniden işlemek yerine hafızadan okumasıdır. Önbellekten okunan token, üç büyük sağlayıcıda normal giriş fiyatının yüzde 10 ile 25'i arasında ücretlendirilir; yani yüzde 75-90 indirim. Ama bu indirim yalnızca tekrar eden giriş kısmına uygulanır; çıkış token'ları ve her istekte değişen kısım tam fiyattır.
Mekanik kısaca şöyle çalışıyor. Sağlayıcı, isteğin başından itibaren birebir aynı olan bölümü tanır. Anthropic'te bu bölümü siz işaretlersiniz, OpenAI'da tanıma otomatiktir, Google'da açık (explicit) bir önbellek oluşturup ona referans verirsiniz. Üçünde de kural aynı: değişmeyen içerik en başa, değişen içerik en sona. Sistem talimatının ortasına günün tarihini ya da müşteri adını koyarsanız, o noktadan sonrası önbelleğe girmez.
Üç ayrıntı faturayı belirler:
- Yazma maliyeti. Anthropic'te önbelleğe ilk yazış normal fiyatın 1,25 katı (5 dakikalık ömür) ya da 2 katı (1 saatlik ömür). Yani önbellek, aynı içerik en az iki üç kez okunuyorsa kâra geçer; tek seferlik istekte zarar yazar. OpenAI'da ayrı yazma ücreti yok; Google'da açık önbellek için saatlik depolama ücreti var.
- Ömür. Varsayılan ömür dakikalar mertebesinde (Anthropic'te 5 dakika, her okumada yenilenir). Saatte bir istek alan bir sistem önbellekten yararlanamaz; dakikada bir istek alan sistem onu sürekli sıcak tutar.
- Alt sınır. Kısa istemler önbelleğe alınmaz; modele göre değişen, bin token civarında bir alt sınır var. 300 token'lık bir sistem talimatı için önbellek diye bir şey yok.
Yukarıdaki destek botuna dönelim: 6.000 token'lık talimat önbellekten okununca giriş maliyetinin büyük kısmı onda birine iner. Mesaj başına toplam maliyet ise çıkış token'ı sabit kaldığı için yaklaşık yüzde 70 düşer. Satıcı bloglarındaki "yüzde 90 tasarruf" başlıkları giriş kalemine bakıyor, faturanın tamamına bakmıyor.
Batch API: 24 saat bekleyebilen iş yarı fiyatına
Batch (toplu işleme) API, isteklerinizi tek bir dosyada gönderip sonuçları 24 saat içinde almanızı sağlar; karşılığında OpenAI, Anthropic ve Google giriş ve çıkış token'larında yüzde 50 indirim uygular. Anlık cevap gerektirmeyen her iş buna adaydır: gece raporları, ürün açıklaması üretimi, arşiv sınıflandırma, aylık duygu analizi.
Batch'in asıl gücü, önbellekle üst üste binmesi. Anthropic'in fiyat modelinde çarpanlar zincirlenir: 3 dolarlık giriş token'ı batch ile 1,5 dolara, üstüne önbellek okumasıyla 15 sente iner. Yazının başındaki 20 kat fark buradan çıkıyor. Pratikte her token bu orana ulaşmaz (değişen kısım ve çıkış token'ları tam batch fiyatından gider), ama tekrarlı ve sabırlı işlerde efektif indirimin yüzde 80'i geçtiği hesaplar makul.
Sahada gördüğümüz hata: ekipler batch'i "yavaş" diye eliyor. Oysa günlük 5.000 ürün açıklamasını sabah 08.00'de hazır görmek için gece 02.00'de göndermek yeterli. 24 saat üst sınır; çoğu iş saatler içinde döner. Batch'e uymayan işler bellidir: kullanıcı ekran başında bekliyorsa ya da sonuç bir sonraki adımı anında belirliyorsa.
Streaming maliyeti düşürür mü?
Hayır. Streaming (akış), cevabın token token gelmesini sağlar; toplam token sayısını ve dolayısıyla faturayı değiştirmez. Değiştirdiği şey algılanan bekleme süresidir: kullanıcı ilk kelimeyi bir saniyede görür, 20 saniyelik boş ekrana bakmaz. Streaming'in maliyete dokunduğu tek yer dolaylıdır: yarıda kesilen istekler ve çıkış uzunluğunun kontrolü.
Dolaylı etki iki kanaldan gelir. Birincisi, kullanıcı cevabın yarısında sekmeyi kapatırsa ya da "yeter" derse akışı kesebilirsiniz; üretilmemiş token'ın faturası yoktur. İkincisi, akış sırasında çıkış uzunluğunu ölçtüğünüz için hangi soruların gereksiz uzun cevap aldığını görürsünüz ve bir üst sınır (max_tokens) koyarsınız. Çıkış token'ı giriş token'ının 4-5 katı olduğu için, ortalama cevabı 400'den 250 token'a indirmek çoğu zaman modeli değiştirmekten daha fazla tasarruf sağlar.
Streaming'i "maliyet düşürme" listelerine koyan içerikler bu yüzden yanıltıcı. Doğru sınıflandırma şu: streaming bir deneyim aracı, max_tokens bir maliyet aracı; ikisi birlikte iyi çalışıyor.
Semantik cache: yüzde 95 isabet efsanesi
Semantik cache, daha önce sorulmuş benzer bir soruya verilen cevabı, modele hiç gitmeden döndürür. Prompt cache'ten farkı, birebir aynı metni değil "anlamca yakın" soruyu aramasıdır. Satıcı sayfalarındaki yüzde 90-95 isabet iddiaları üretim verisinde görülmüyor; gerçek trafikte isteklerin yüzde 15-30'u tekrardır ve yanlış isabet (farklı soruya eski cevap) riski, regüle sektörlerde bu deseni tamamen dışarıda bırakabilir.
Rakamlar konuşsun. 2024 tarihli bir akademik değerlendirmede (MeanCache, arXiv) yaygın kullanılan GPTCache aracı, bağlamsal sorgu setinde 54 yanlış isabet üretti; karşılaştırılan yöntem 3. Başka bir testte, hiç tekrar içermeyen bir sorgu kümesinde GPTCache'in bulduğu her isabet yanlıştı: benzerlik puanı yüksek diye başka bir sorunun cevabını döndürdü. "İade süresi kaç gün?" ile "İade kargo ücreti kaç lira?" metin olarak birbirine yakındır; cevapları ise bambaşkadır.
Üretim verisi üzerine yazılmış bağımsız bir analiz, kabul edilebilir yanlış isabet oranını regüle olmayan sektörde yüzde 2, finans ve sağlık gibi regüle sektörlerde yüzde 0,5 civarına koyuyor. Bu tek bir kaynağa dayanıyor; ama sıfıra yakın eşiklerin semantik cache'i çoğu ciddi işte devre dışı bıraktığı sonucu sağlam.
Semantik cache'in mantıklı olduğu dar bir alan var: cevabı değişmeyen, yanlış cevabın maliyeti düşük SSS tipi sorular. Orada bile benzerlik eşiğini yüksek tutup isabetleri örnekleyerek denetlemek gerekir. Sohbet trafiğinde yüzde 30-50 tasarruf iddiası tek bir satıcı kaynağından geliyor; biz projelerde bunu en fazla yüzde 10-15 olarak planlıyoruz.
Model yönlendirme: her soru büyük modeli hak etmiyor
Model yönlendirme (routing), her isteği önce ucuz ve küçük bir modele göndermek, yalnızca zor ya da riskli olanları büyük modele yükseltmektir. RouteLLM araştırması, kıyaslama testlerinde GPT-4 kalitesinin yüzde 95'ini koruyarak maliyeti yüzde 85 düşürdüğünü raporladı. Bu bir benchmark sonucu; sahada tasarruf iş yüküne göre yüzde 45-85 aralığında değişiyor. Kritik ön koşul, "zor soru" tanımını yapmış olmanız.
Üç yaygın uygulama var. En basiti kural tabanlı: "kargo nerede" ve "iade süresi" tipi sorular küçük modele, sözleşme yorumu ve şikâyet büyüğe. İkincisi kademeli (cascade): küçük model cevaplar, kendi güven puanı eşiğin altındaysa aynı istek büyüğe gider; iki kez ödersiniz ama nadiren. Üçüncüsü öğrenilmiş yönlendirici: geçmiş verideki "hangi soruda küçük model yetti" bilgisinden bir sınıflandırıcı eğitilir.
Yönlendirmenin görünmeyen bedeli test setidir. Küçük modelin hangi sorularda yeterli olduğunu bilmiyorsanız, yüzde 85 tasarruf yüzde 85 kalite kaybına dönüşebilir. Bunun için etiketlenmiş bir soru seti ve düzenli ölçüm gerekiyor; LLM test etme rehberinde anlattığımız golden set burada doğrudan devreye giriyor. Çok ajanlı kurulumlarda konu daha da ağırlaşıyor: çok ajanlı sistemlerin 15 kat token yaktığını yazmıştık; ajanların çoğunun küçük modelle çalışması o çarpanı ciddi biçimde kırpıyor.
Somut hesap: ayda 60.000 destek mesajı
İstanbul'da 40 kişilik bir e-ticaret firmasının destek botu ayda 60.000 mesaj alıyor; 6.000 token'lık sabit talimat, 200 token soru, 250 token cevap. Sonnet sınıfı bir modelde (giriş 3, çıkış 15 dolar / milyon token) ham fatura ayda yaklaşık 1.340 dolar. Sırayla önbellek, yönlendirme ve gece işleri için batch uygulandığında aynı hizmet 200 dolar civarına iniyor. Rakamlar, sahada kurduğumuz benzer bir sistemin yuvarlanmış ve sadeleştirilmiş hali; oranlar rakamlardan daha önemli.
Adım adım:
- Başlangıç: giriş 372 milyon token × 3 dolar = 1.116 dolar; çıkış 15 milyon token × 15 dolar = 225 dolar. Toplam 1.341 dolar.
- Prompt cache: 6.000 token'lık talimat önbellekten 0,30 dolara okunuyor: 360 milyon × 0,30 = 108 dolar. Değişen 200 token tam fiyat: 36 dolar. Trafik sürekli olduğu için önbellek sıcak kalıyor; yazma maliyeti ayda 10 doları geçmiyor. Çıkış aynı, 225 dolar. Toplam yaklaşık 380 dolar, yüzde 72 düşüş.
- Yönlendirme: mesajların yüzde 70'i (kargo, iade, sipariş durumu) küçük modele gidiyor (giriş 1, çıkış 5 dolar mertebesi; önbellek okuması 0,10). O dilimde çıkış maliyeti 157 dolardan 52 dolara, giriş kalemi de yaklaşık üçte birine iniyor. Toplam yaklaşık 210 dolar.
- Batch: gece koşan işler (60.000 mesajın konu etiketlemesi ve haftalık özet raporu) batch'e alınıyor; bu kalem zaten küçük, 40 dolardan 20 dolara iniyor. Yeni toplam 190 dolar civarı.
Bu tabloda semantik cache yok: firmanın sorularının yüzde 20'si tekrar olsa bile, iade politikası gibi konularda yanlış cevap riskini göze almadılar. Modeli değiştirmeden ve kalite ölçümünü koruyarak yüzde 85 düşüş; en büyük dilim ilk adımdan, üç günlük bir mühendislik işinden geldi.
Sık sorulan sorular
Prompt cache ile semantik cache aynı şey mi?
Hayır. Prompt cache, sağlayıcının kendi tarafında, isteğin birebir aynı olan başlangıç kısmını saklamasıdır; cevap yine model tarafından üretilir, yalnızca okuma ucuzlar. Semantik cache sizin tarafınızda çalışır ve benzer soruya eski cevabı model hiç çalışmadan döndürür. İlki güvenli ve neredeyse her zaman mantıklı; ikincisi riskli ve dar bir alana uygun.
Batch ile önbellek indirimi birleşir mi?
Anthropic'te evet, çarpanlar üst üste biner (0,5 × 0,1). OpenAI'da yeni nesil modellerde batch içinde önbellek fiyatı geçerli görünüyor; Google'da da çarpımsal olduğu belirtiliyor, ama indirim oranı kaynaklar arasında yüzde 75 ile 90 arasında değişiyor. Kendi sağlayıcınızın fiyat sayfasında "batch" ve "cached input" satırlarını birlikte okuyun.
Küçük modele geçmek kaliteyi ne kadar düşürür?
Soruya bağlı; genel bir yüzde yok. Sınıflandırma, özetleme, bilgi çekme gibi dar görevlerde küçük modeller çoğu zaman büyükle aynı sonucu verir; çok adımlı akıl yürütme ve uzun belge yorumunda fark açılır. Tek güvenilir yöntem, kendi sorularınızdan 100-200 tanelik etiketli bir set üzerinde iki modeli yan yana ölçmektir.
Bu desenler için ne kadar kod değişikliği gerekir?
Prompt cache için istem sıralamasını düzenlemek ve (Anthropic'te) bir işaret eklemek yeterli; genellikle bir günlük iş. Batch, ayrı bir gönderim ve sonuç toplama akışı ister; birkaç gün. Yönlendirme, test seti ve eşik tasarımıyla birlikte bir iki haftalık bir proje. Uygulama sırası da bu: önce cache, sonra batch, sonra routing.
Fatura yüzde 80 düştüyse kendi sunucumu düşünmeye gerek kalır mı?
Çoğu KOBİ için hayır. Kendi sunucunuz, aylık API faturası binlerce doları aştığında ve veri egemenliği gerekçesi olduğunda gündeme gelir; kendi sunucunuzda model çalıştırmanın ne zaman mantıklı olduğunu ayrı bir yazıda hesapladık. Bu yazıdaki desenler o eşiği daha da yukarı taşıyor.
Peki siz ne yapmalısınız?
- Faturayı üç kaleme ayırın. Tekrar eden giriş, değişen giriş, çıkış. Hangi kalem yüzde 50'den büyükse ilk desen oraya.
- Prompt cache'i bu hafta açın. Sabit içeriği başa alın, değişkenleri sona; bin token altındaki istemlerde beklenti kurmayın.
- "Şimdi mi lazım?" listesi çıkarın. Kullanıcının ekran başında beklemediği her iş batch'e; tipik firmada iş hacminin üçte biri bu gruba giriyor.
- max_tokens koyun, streaming'i deneyim için tutun. Ortalama cevap uzunluğunu ölçün ve bir tavan belirleyin.
- Yönlendirmeyi test setiyle birlikte kurun. Etiketli soru seti yoksa routing de yok; semantik cache'i yalnızca yanlış cevabın ucuz olduğu yerde deneyin.
Sahada şu ana kadar gördüğümüz her projede en pahalı çözüm model değiştirmek, en ucuz çözüm isteğin sırasını değiştirmek oldu; bu sıralamanın tersine döndüğü bir örnek henüz yok. Kendi faturanızı üç kaleme ayırırken kullandığımız hesap şablonunu isteyen ekiplere gönderiyoruz, bir e-posta yeterli.

Yazan
Muhammet Fatih Batman
Kurucu & Editör
Web tasarım ve yazılım geliştirmede 20 yılı aşkın deneyime sahip, YZ Uzman'ın kurucusu.
Yorumlar
Henüz yorum yapılmamış. İlk yorumu sen yap!