Yapay zeka faturanız bir gecede üç katına çıktı. Model, trafik hacmi ve hatta istem (prompt) metinleri bile aynı kaldı; suçlu, OpenAI'ın istem önbelleğini (prompt cache) bozan tek bir satır koddu.
Önbellek neden önemlidir
Sağlayıcının istem önbelleği, bayt bazında tamamen aynı olan bir önekle (prefix) başlayan her isteğin yeniden işlenmesini atlayarak size tasarruf sağlar. Eğer ilk belirteçler (tokens) önceki bir çağrıyla eşleşirse, sağlayıcı bu belirteçlerin halihazırda hesaplanmış temsilini yeniden kullanır ve yalnızca yeni sonek (suffix) için ücret alır. Kural katıdır: eşleşme sadece benzer değil, tam olmalıdır. Başlangıçtaki tek bir farklı belirteç, tüm önbellek eşleşmesini (cache hit) bozar.
Eşleşme oranını öldüren hata
Ajanımızda, modele bir "şimdi" hissi vermek için sistem isteminin en başına güncel bir zaman damgası (timestamp) yerleştirdik. Zaman damgası her saniye değiştiği için, ilk belirteç dizisi her istek için benzersizdi. Önbellek asla bir eşleşme bulamadı, bu nedenle her çağrı; araç şemaları, dokümantasyon parçacıkları, few-shot örnekleri ve sabit talimatlar gibi takip eden 18.000 statik belirteç için tam ücret ödenmesine neden oldu. Sonuç, %0 önbellek eşleşme oranı ve üç katına çıkan bir fatura oldu.
Önbelleklenebilirlik için yeniden sıralama
Çözüm basit: Hiç değişmeyen her şeyi istemin en başına koyun ve değişken verileri sona itin.
Statik önek (önbelleklenebilir)
- Araç tanımları
- Geri çağırma (retrieval) belgeleri
- Few-shot örnekleri
- Sabit sistem talimatları
Değişken sonek (önbelleklenebilir değil)
- Güncel zaman
- Oturum tanımlayıcıları
- Kullanıcı mesajları
- Canlı bağlam (context)
Eğer modelin zamana ihtiyacı varsa, onu başa eklemek yerine statik bloktan sonra ekleyin. Böylece siz sona taze bağlam sağlarken, önbellek ağır statik kısmı yeniden kullanabilir.
Yığın içindeki gizli katiller
Şablon doğru görünse bile, ara katman yazılımları (middleware) veya SDK'lar, veri yükü (payload) API'ye ulaşmadan önce isteğe meta veriler —istek kimlikleri, zaman damgaları veya diğer başlıklar— sessizce ekleyebilir. Bazı dağıtım hatları (deployment pipelines) da her yayında araç tanımlarını karıştırabilir. Bu görünmez değişiklikler bayt dizisini değiştirir ve kendi istem oluşturucunuzda hiçbir kod değişikliği yapmadan önbelleği sabote eder.
Önbellek eşleşme oranını takip edin
Önbellek eşleşme oranını herhangi bir yapay zeka ajanı için temel bir sağlık metriği olarak kabul edin. Ani bir düşüş, isteğin önündeki baytlarda bir şeyin değişken hale geldiğini gösterir. Eşleşme yüzdesini gösteren izleme araçları, maliyet anomalilerini patlamadan önce tespit etmenizi sağlar.
Özet
İstem önbelleğe alma, değişmez bir öneke dayanır. Her isteğin başında değişen herhangi bir şey —tek bir zaman damgası bile— önbelleği geçersiz kılar ve faturanızı üç katına çıkarabilir. Statik içeriği önce, değişken içeriği ise en son tutun; araç zincirinizi (toolchain) gizli ekleyiciler için denetleyin ve önbellek eşleşme oranlarını izleyin. Disiplinli bir istem düzeni, hem performansı hem de maliyetleri korur.
