Büyük Dil Modelleri (BDM'ler), metin oluşturma, çeviri, soru yanıtlama ve daha fazlası gibi karmaşık görevleri mümkün kılarak, yapay zeka ile etkileşim şeklimizde devrim yarattı. Ancak, özellikle gelişmiş istemlerle bu güçlü modellerle etkileşim kurmak, önemli hesaplama maliyetlerine ve gecikmelere neden olabilir. Birçok uygulama, benzer veya kısmen aynı istemleri tekrar tekrar göndermeyi içerir. Sabit bir sistem istemi, aynı talimatlarla parçaları işleyen bir belge analiz aracı veya tutarlı araç tanımlamaları kullanan bir temsilciye sahip bir sohbet robotu düşünün. Bu senaryolarda, BDM, aynı ilk bilgileri (istem öneki) tekrar tekrar işleyerek, hesaplamayı boşa harcar ve yanıt sürelerini artırır.
İstem önbelleğe alma, bu verimsizliği gidermek için güçlü bir optimizasyon tekniği olarak ortaya çıkıyor. BDM sağlayıcılarının, bir istemin ilk, statik bölümüyle (önek) ilişkili ara hesaplama durumunu depolamasına olanak tanır. Sonraki istekler aynı öneki kullandığında, model bu önbelleğe alınmış durumu yeniden kullanabilir, gereksiz hesaplamayı atlayabilir ve yalnızca istemin yeni, dinamik bölümünü (son ek) işleyebilir. Bu, hem gecikmede hem de maliyette önemli iyileştirmelere yol açarak, BDM uygulamalarını daha hızlı ve daha ekonomik hale getirir.
Bu kılavuz, istem önbelleğe almanın kapsamlı bir genel görünümünü, nasıl çalıştığını, faydalarını, uygulama ayrıntılarını (Anthropic'in API'sine odaklanarak, bu da AWS Bedrock'taki Claude modelleri için de geçerlidir), fiyatlandırma hususlarını, sınırlamalarını ve en iyi uygulamalarını sunmaktadır.
Maksimum verimlilikle birlikte çalışmak için Geliştirici Ekibiniz için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!

İstem Önbelleğe Alma Nasıl Çalışır: Mekanizma
Temelinde, istem önbelleğe alma, birçok BDM etkileşiminin tekrarlayan doğasından yararlanır. Bir BDM'ye bir istem gönderdiğinizde, model, bir iç temsil veya durum oluşturmak için giriş belirteçlerini sırayla işler. İstem önbelleğe alma bu süreci keser.
- Önbellek Hatası (İlk İstek / Değiştirilmiş Önek): Bir istek, yakın zamanda görülmemiş veya mevcut hiçbir önbellek girdisiyle eşleşmeyen bir istem önekiyle geldiğinde, BDM tüm istemi her zamanki gibi işler. Ancak, belirli bir önek sınırı için önbelleğe alma etkinleştirilmişse, sistem, bu öneke karşılık gelen iç model durumunu, onu işledikten sonra depolar. Bu genellikle bir önbellek yazma olarak adlandırılır. Genellikle önek içeriğinin (sistem istemleri, araç tanımlamaları ve önbellek noktasına kadar olan mesajlar dahil) kriptografik bir karması olan benzersiz bir tanımlayıcı, bu depolanmış durumla ilişkilendirilir ve önbellek anahtarı olarak görev yapar.
- Önbellek İsabeti (Sonraki İstek): Sonraki bir istek, önbelleğin Yaşam Süresi (TTL) içinde gelirse ve öneki, depolanmış bir önbellek anahtarıyla ilişkili içerikle tam olarak eşleşirse, sistem kaydedilmiş iç durumu alır. BDM, onu yeniden işlemden geçirmeden önekin sonuna doğru etkili bir şekilde hızlıca ilerler. Daha sonra yalnızca istemin yeni bölümünü (son ek) işlemesi gerekir. Bu, bir önbellek okuma veya önbellek isabeti olarak bilinir.
Önbelleğe Alınan Önek:
"Önek" tam olarak neyden oluşur, API'ye ve isteğinizi nasıl yapılandırdığınıza bağlıdır. Genel olarak, çağrılar arasında yeniden kullanmayı amaçladığınız isteminizin statik kısımlarını içerir. Örneğin, Anthropic'in API yapısını referans olarak kullanırsak:
- Araçlar: Mevcut araçların/işlevlerin tanımları.
- Sistem İstemleri: Model için üst düzey talimatlar veya bağlam.
- Mesajlar: İlk kullanıcı/asistan mesajları, örneğin birkaç deneme örneği veya konuşma geçmişi.
Sıra genellikle önemlidir (örneğin, Anthropic araçları
, ardından sistemi
, ardından mesajları
işler). Önbelleğe alınabilir önekin nerede bittiğini, belirli API parametrelerini kullanarak belirlersiniz.
Önbellek Özellikleri:
- Yaşam Süresi (TTL): Önbellekler kalıcı değildir. Bir TTL'ye sahiptirler. Örneğin, Anthropic'in önbelleği, önbellek girdisine her erişildiğinde (bir önbellek isabeti) yenilenen en az 5 dakikalık bir TTL'ye sahiptir. Bir önbellek girdisi TTL'si içinde kullanılmazsa, süresi dolar ve bir sonraki ilgili istekte yeniden oluşturulması gerekir. Şu anda, çoğu uygulama, nispeten kısa ömürlü "geçici" önbelleğe alma sunmaktadır.
- Kapsam ve Gizlilik: Önbelleğe alma, gizlilik göz önünde bulundurularak tasarlanmıştır. Önbellekler tipik olarak organizasyon veya hesap düzeyinde ayrılır. İki farklı organizasyon tam olarak aynı istem önekini gönderse bile, bir önbellek girdisini paylaşmazlar. Bir organizasyon içinde, aynı önekleri gönderen kullanıcılar, ekip uygulamaları için verimliliği artırarak, potansiyel olarak bir önbellek girdisini paylaşabilirler. Anahtarlar için kriptografik karmaların kullanılması, yalnızca aynı öneklere sahip isteklerin belirli bir önbelleğe erişebilmesini sağlar.
- Tam Eşleşme: Önbelleğe alma, önek içeriğinin tam eşleşmelerine dayanır. Belirlenen önek içinde, ne kadar küçük olursa olsun (boşluk dahil) herhangi bir değişiklik, bir önbellek hatasıyla sonuçlanacak ve yeni bir önbellek yazma gerektirecektir.
Neden İstem Önbelleğe Alma Kullanmalısınız?
İstem önbelleğe almayı uygulamak, öncelikle performans ve maliyet verimliliğine odaklanan önemli avantajlar sunar.
- Azaltılmış Gecikme Süresi: Bu genellikle en doğrudan faydadır. Potansiyel olarak binlerce önek belirtecinin yeniden işlenmesini atlayarak, BDM, ilgili yeni bilgileri (istem son eki) çok daha hızlı işlemeye başlayabilir. Bu, doğrudan son kullanıcı için daha hızlı yanıt sürelerine dönüşür. Sohbet robotları veya kod asistanları gibi gerçek zamanlı etkileşim gerektiren uygulamalar için bu hızlanma çok önemlidir. AWS Bedrock, desteklenen modeller için potansiyel olarak %85'e varan gecikme azaltmaları bildirmektedir.
- Azaltılmış Maliyet: BDM API'leri tipik olarak işlenen giriş ve çıkış belirteçlerinin sayısına göre ücretlendirilir. Bir önbellek isabeti oluştuğunda, önbellekten okunan belirteçler için genellikle standart giriş belirteci oranına kıyasla önemli ölçüde daha düşük bir ücretlendirilirsiniz. Yalnızca son ekteki yeni belirteçler (ve potansiyel olarak ilk önbellek yazma için biraz daha yüksek bir oran) için standart giriş oranını ödersiniz. Büyük, statik öneklerle yapılan birçok çağrı üzerinden, bu önemli maliyet tasarruflarına yol açabilir. AWS Bedrock, %90'a varan maliyet azaltmalarının mümkün olduğunu öne sürüyor.
- Yaygın Kullanım Durumları için Optimize Edilmiş Performans: Önbelleğe alma, doğal olarak istem tekrarını içeren uygulamalar için özellikle etkilidir:
- Alım-Destekli Oluşturma (RAG) / Belge Soru-Cevap: Büyük belgeler veya bağlam parçacıkları, genellikle yalnızca kullanıcının sorusu değişirken, istemin bir parçası olarak tekrar tekrar beslenir. Belge bağlamını önbelleğe almak, o belge üzerindeki Soru-Cevap'ı önemli ölçüde hızlandırır.
- Birkaç Deneme İstemleri: İstem içinde birden fazla örnek sağlamak (birkaç deneme öğrenme) model performansını artırır ancak istem uzunluğunu artırır. Bu statik örnekleri önbelleğe almak, her yeni sorgu için yeniden işlenmelerini önler.
- Temsilci İş Akışları: Yapay zeka temsilcileri genellikle karmaşık sistem istemlerine, ayrıntılı talimatlara ve sabit bir araç tanımı kümesine dayanır. Bu sabit öğeleri önbelleğe almak, özellikle çok adımlı süreçlerde, görev yürütmeyi hızlandırır.
- Sohbet Robotları / Çok Turlu Konuşmalar: Konuşma geçmişi büyürken, ilk sistem istemi ve talimatlar genellikle aynı kalır. Sistem istemini ve potansiyel olarak konuşmanın turlarını artımlı olarak önbelleğe almak, bağlam penceresi dolarken bile etkileşimi canlı tutar.
- Kod Asistanları: Statik kod bağlamı, kitaplık dokümantasyonu veya hazır talimatlar önbelleğe alınabilir ve asistanın hesaplamayı kullanıcının belirli kodlama sorgusuna odaklamasına olanak tanır.
- Kesintisiz Entegrasyon: İstem önbelleğe alma, diğer BDM özellikleriyle birlikte çalışacak şekilde tasarlanmıştır. Örneğin, Temsilciler ve Koruma Rayları gibi AWS Bedrock özellikleriyle entegre olur ve tekrarlanan bileşenler için tam gecikme cezasına maruz kalmadan karmaşık kurulumlardan yararlanmanıza olanak tanır.
İstem Önbelleğe Alma Nasıl Etkinleştirilir
İstem önbelleğe almayı etkinleştirmenin tam yöntemi, BDM sağlayıcıları ve API'leri arasında biraz farklılık gösterir. Burada, Anthropic'in Mesajlar API'sini kullanarak uygulamaya odaklanacağız; bu, doğrudan Anthropic aracılığıyla veya AWS Bedrock gibi platformlar aracılığıyla Claude modelleri için geçerlidir.
Genel İlke: İsteminizi Yapılandırın
Anahtar, API çağrılarınızı, statik, yeniden kullanılabilir içeriğin önce, ardından dinamik içeriğin gelmesi için yapılandırmaktır.
+-------------------------+--------------------------+
| STATİK ÖNEK | DİNAMİK SON EK |
| (Sistem İstemleri, Araçlar, | (Yeni Kullanıcı Sorgusu, En Son |
| Birkaç Deneme Örnekleri, | Konuşma Turu, vb.)|
| İlk Bağlam) | |
+-------------------------+--------------------------+
^
|
Burada Önbellek Kesme Noktası
Anthropic API Uygulaması (cache_control
)
Anthropic, önbelleğe almayı etkinleştirmek ve yönetmek için Mesajlar API istek gövdesi içinde cache_control
parametresini kullanır.
- Etkinleştirme: Önbelleğe alınabilir önekin sonu olarak dahil etmek istediğiniz bloklardan birinin içine bir
cache_control
nesnesi ekleyin. Şu anda, desteklenen tektype
"ephemeral"
'dir. - Yerleştirme:
cache_control
bloğunu şunlara yerleştirebilirsiniz: sistem
istem mesajı.- Belirli bir
mesaj
nesnesi (kullanıcı veya asistan turu). - Bir
araç
tanım bloğu (daha az yaygın, ancak mümkün). - Önbellek Oluşturma Sırası: Önbellek öneki, standart sırayı izleyerek,
araçlar
->sistem
->mesajlar
,cache_control
ile işaretlenmiş bloğu dahil olmak üzere içeriğe göre oluşturulur. - Çoklu Kesme Noktaları: Birden fazla bloğa
cache_control
ekleyerek, tek bir istekte en fazla 4 önbellek kesme noktası tanımlayabilirsiniz. Sistem, bu potansiyel kesme noktalarına göre en uzun eşleşen önbelleğe alınmış öneki bulmaya çalışacaktır.
Örnek (Anthropic Python SDK): Bir Sistem İstemini Önbelleğe Alma
import anthropic
client = anthropic.Anthropic(api_key="YOUR_API_KEY")
# İlk İstek (Önbellek Yazma)
response1 = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
system=[
{
"type": "text",
# Bu sistem istemi, önbelleğe almak istediğimiz içeriktir
"text": "Astrofizik konusunda uzmanlaşmış, yardımcı bir asistansınız. Bilgi tabanınız, yıldız evrimi, kozmoloji ve gezegen bilimi hakkında kapsamlı ayrıntıları içerir. Doğru ve öz bir şekilde yanıt verin.",
"cache_control": {"type": "ephemeral"} # Önbelleğe alma için işaretle
}
],
messages=[
{
"role": "user",
# Bu, öneke önbelleğe alınmayan dinamik kısımdır
"content": "Chandrasekhar limiti nedir?"
}
]
)
print("İlk Yanıt:", response1.content)
print("Kullanım (Yazma):", response1.usage)
# Örnek kullanım çıktısı şöyle görünebilir:
# Usage(Write): Usage(input_tokens=60, output_tokens=50, cache_creation_input_tokens=60, cache_read_input_tokens=0)
# Sonraki İstek (Önbellek İsabeti - TTL içinde, örneğin, < 5 dakika sonra)
response2 = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
system=[
{
"type": "text",
# Öncekiyle TAM OLARAK aynı sistem istemi
"text": "Astrofizik konusunda uzmanlaşmış, yardımcı bir asistansınız. Bilgi tabanınız, yıldız evrimi, kozmoloji ve gezegen bilimi hakkında kapsamlı ayrıntıları içerir. Doğru ve öz bir şekilde yanıt verin.",
"cache_control": {"type": "ephemeral"} # Tekrar işaretle
}
],
messages=[
{
"role": "user",
# Yeni dinamik sorgu
"content": "Karanlık enerji kavramını açıklayın."
}
]
)
print("\\\\nİkinci Yanıt:", response2.content)
print("Kullanım (İsabet):", response2.usage)
# Örnek kullanım çıktısı şöyle görünebilir:
# Usage(Hit): Usage(input_tokens=8, output_tokens=75, cache_creation_input_tokens=0, cache_read_input_tokens=60)
Bu örnekte:
- İlk çağrı, sistem isteminin 60 belirtecini ve kullanıcı mesajının 8 belirtecini işler. Sistem istemini önbelleğe alır (
cache_creation_input_tokens: 60
). - İkinci çağrı, aynı sistem istemi için bir önbellek isabeti bulur (
cache_read_input_tokens: 60
). Yalnızca yeni kullanıcı mesajının 8 belirtecinin standart girdi olarak işlenmesi gerekir (input_tokens: 8
).
Örnek (Konuşmada Artımlı Önbelleğe Alma):
Konuşma geçmişini önbelleğe almak için, sonraki tur için önbelleğe dahil etmek istediğiniz son mesajın üzerine cache_control
yerleştirebilirsiniz.
# 1. Tur (Kullanıcı sorar, Asistan yanıtlar - Önbellek Sistem + 1. Tur)
response_turn1 = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=500,
system=[{"type": "text", "text": "Dostça bir kişiliği koruyun."}], # Bunu da önbelleğe alın
messages=[
{"role": "user", "content": "Merhaba Claude!"},
{"role": "assistant", "content": "Merhaba! Bugün size nasıl yardımcı olabilirim?", "cache_control": {"type": "ephemeral"}} # Buraya kadar önbelleğe alın
]
)
# Kullanıcının 2. Tur için başka bir mesaj eklediğini varsayalım
# 2. Tur (Sistem + 1. Tur için önbellek isabeti, 2. Tur için önbellek yazma)
response_turn2 = client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=500,
system=[{"type": "text", "text": "Dostça bir kişiliği koruyun."}], # Aynı sistem istemi
messages=[
{"role": "user", "content": "Merhaba Claude!"}, # Artık önbelleğe alınmış önekin bir parçası
{"role": "assistant", "content": "Merhaba! Bugün size nasıl yardımcı olabilirim?"}, # Artık önbelleğe alınmış önekin bir parçası
{"role": "user", "content": "Bana eğlenceli bir gerçek söyleyin."}, # Yeni dinamik içerik
{"role": "assistant", "content": "Balın asla bozulmadığını biliyor muydunuz?", "cache_control": {"type": "ephemeral"}} # 2. Turun sonuna kadar önbelleğe alın
]
)
# 2. Tur kullanımı, Sistem+1. Tur için cache_read_input_tokens'u gösterir
# ve 2. Turun yeni kullanıcı/asistan mesajları için cache_creation_input_tokens'u
Önbellek Performansını İzleme:
API yanıtı, önbelleğin nasıl kullanıldığını ortaya koyan kullanım ölçümlerini içerir:
input_tokens
: İşlenen önbelleğe alınmamış giriş belirteçlerinin sayısı (dinamik son ek).output_tokens
: Yanıtta oluşturulan belirteçlerin sayısı.cache_creation_input_tokens
: Bu istekte önbelleğe işlenen ve yazılan giriş belirteçlerinin sayısı (bir önbellek hatasında oluşur).cache_read_input_tokens
: Bu istekte önbellekten yüklenen giriş belirteçlerinin sayısı (bir önbellek isabetinde oluşur).
Bu alanları izlemek, önbelleğe alma stratejinizin etkili olup olmadığını anlamak için çok önemlidir. Zaman içinde cache_read_input_tokens
'un cache_creation_input_tokens
'a göre yüksek olması, başarılı önbelleğe almayı gösterir.
AWS Bedrock:
AWS Bedrock aracılığıyla erişilen Anthropic Claude gibi modeller için, önbelleğe alma mekanizması tipik olarak, model çağırma istek gövdesi (InvokeModel
veya InvokeModelWithResponseStream
'e geçirilen application/json
formatı) içinde aynı cache_control
parametresi kullanılarak etkinleştirilir. JSON gövdesini, belirli modelin gereksinimlerine (örneğin, Anthropic'in Mesajlar API formatı) göre yapılandırır ve yukarıda gösterildiği gibi cache_control
alanını eklersiniz. Kullandığınız model sağlayıcısı için belirli Bedrock belgelerini kontrol edin.
İstem Önbelleğe Alma için Fiyatlandırma Nedir?
İstem önbelleğe alma, standart belirteç maliyetlerine kıyasla daha nüanslı bir fiyatlandırma yapısı sunar. Genel olarak faydalı olsa da, dahil olan farklı belirteç türlerini anlamak önemlidir:
- Temel Giriş Belirteçleri: Bunlar, önbelleğe alınmış bir önekin parçası olmayan (yani, bir önbellek isabeti senaryosunda dinamik son ek veya önbelleğe alma kullanılmazsa veya başarısız olursa tüm istem) standart giriş belirteçleridir. Modelin standart giriş belirteci oranında ücretlendirilirler.
- Önbellek Yazma Belirteçleri (
cache_creation_input_tokens
): Bir önek ilk kez işlendiğinde (veya bir önbellek hatasından sonra) ve önbelleğe yazıldığında, bu önekle ilişkili belirteçler genellikle premium bir oranda ücretlendirilir. Örneğin, Anthropic, önbellek yazmalar için temel giriş belirteci oranından %25 daha fazla ücret alır. Bu, hem önbellek girdisini işleme hem de depolama maliyetini yansıtır. - Önbellek Okuma Belirteçleri / Önbellek İsabet Belirteçleri (
cache_read_input_tokens
): Bir önbellek isabeti oluştuğunda, önbellekten yüklenen öneke karşılık gelen belirteçler önemli ölçüde indirimli bir oranda ücretlendirilir. Örneğin, Anthropic, önbellek okumalar için temel giriş belirteci oranının yalnızca %10'unu ( %90 indirim) ücretlendirir. Bu, hesaplama tasarruflarını yansıtır. - Çıkış Belirteçleri: Yanıtta BDM tarafından oluşturulan belirteçler, giriş için önbelleğe alma kullanılıp kullanılmadığına bakılmaksızın, modelin standart çıkış belirteci oranında ücretlendirilir.
Örnek Fiyatlandırma Tablosu (Anthropic Claude Modelleri - örnek oranlar):
Model | Temel Giriş (/MTok) | Önbellek Yazma (/MTok) (+%25) | Önbellek Okuma (/MTok) (-%90) | Çıkış (/MTok) |
---|---|---|---|---|
Claude 3.5 Sonnet | $3.00 | $3.75 | $0.30 | $15.00 |
Claude 3 Haiku | $0.25 | $0.30 | $0.03 | $1.25 |
Claude 3 Opus | $15.00 | $18.75 | $1.50 | $75.00 |
(Not: En güncel oranlar için her zaman Anthropic ve AWS Bedrock'in resmi fiyatlandırma sayfalarına bakın.)
Maliyet etkinliği, verilen bir önek için önbellek isabetlerinin önbellek hatalarına kıyasla ne sıklıkta oluştuğuna büyük ölçüde bağlıdır. Büyük bir önek birçok kez yeniden kullanılırsa, önbellek yazmanın ilk yüksek maliyeti, sonraki önbellek okumalarından elde edilen önemli tasarruflarla hızla dengelenir.
İstem Önbelleğe Almanın Sınırlamaları
Güçlü olsa da, istem önbelleğe almanın dikkate alınması gereken sınırlamaları ve faktörleri vardır:
Önbelleğe Alınabilir Minimum Uzunluk: Modeller, önbelleğe alınmaya uygun bir önek için genellikle minimum bir belirteç gereksinimine sahiptir. Bu sınırdan daha kısa istemler, cache_control
ile işaretlense bile önbelleğe alınamaz.
- Anthropic Claude 3.7/3.5 Sonnet & Opus: Minimum 1024 belirteç.
- Anthropic Claude 3.5/3 Haiku: Minimum 2048 belirteç.
Önbellek Geçersiz Kılma (Önbellek Kırma): Önbellek, önekteki değişikliklere karşı son derece duyarlıdır. Herhangi bir değişiklik önbelleği bozacak ve yeni bir yazma zorlayacaktır:
- Önekin bir parçası olarak belirlenen
sistem
,araçlar
veyamesajlar
blokları içindeki herhangi bir metin içeriğini değiştirmek. araç
tanımlarının sırasını veya sayısını değiştirmek.tool_choice
parametrelerini değiştirmek (örneğin,auto
'dan belirli bir araca geçmek).- İstem içindeki görüntüleri eklemek, kaldırmak veya değiştirmek (çok modlu modeller için).
- İlk işlemeyi etkileyen diğer model parametrelerini değiştirmek de önbelleği bozabilir (örneğin, Anthropic'in genişletilmiş düşünme ayarları mesaj önbelleklerini geçersiz kılabilir).
Önbellek Yaşam Süresi (TTL): Önbelleğin geçici olduğunu unutmayın (örneğin, Anthropic için 5 dakikalık minimum TTL, kullanımda yenilenir). TTL içinde yeniden kullanılmayan öneklerin süresi dolar. Şu anda, önbelleği otomatik davranışının ötesinde manuel olarak temizlemenin veya uzatmanın bir yolu yoktur.
Eşzamanlılık: İlk istek bitip girdiyi önbelleğe yazmadan önce, bir öneği hedefleyen birçok aynı isteği eşzamanlı olarak gönderirseniz, sonraki istekler ilk yazma tamamlanana kadar önbellek hatalarıyla sonuçlanabilir. Paralel senaryolarda garantili isabetler için, diğerlerini göndermeden önce ilk yanıtı beklemeniz gerekebilir.
Desteklenen Modeller: İstem önbelleğe alma, tüm modellerde veya sağlayıcılarda evrensel olarak mevcut değildir. Her zaman kullanmayı düşündüğünüz belirli modelin belgelerini kontrol edin. (Şu anda çeşitli Claude 3 ve 3.5 modelleri için onaylanmıştır).
Hata Ayıklama: Önbellek hatalarına neden olan ince değişiklikleri belirlemek bazen zor olabilir. Çağrılar arasındaki tam önek içeriğinin dikkatli bir şekilde karşılaştırılması gerekir.
Etkili Önbelleğe Alma için En İyi Uygulamalar
İstem önbelleğe almanın faydalarını en üst düzeye çıkarmak için:
- İstemleri Akıllıca Yapılandırın: En kararlı, yeniden kullanılabilir bilgileri (sistem istemleri, talimatlar, araç tanımlamaları, bağlam belgeleri, birkaç deneme örnekleri) istem dizinizin başlangıcına yerleştirin. Dinamik, sık değişen bilgileri (kullanıcı sorguları, en son konuşma turları) önbellek kesme noktasından sonra yerleştirin.
- Optimal Kesme Noktalarını Belirleyin:
cache_control
'ü (veya eşdeğer mekanizmayı) kasıtlı olarak kullanın. Gerçekten statik içeriğin mümkün olan en büyük bloğunun sonunu işaretleyin. Birden fazla kesme noktası kullanıyorsanız (Anthropic'in izin verdiği gibi), istem yapınızdaki farklı kararlılık seviyelerini göz önünde bulundurun. - Önbellek Kullanımını İzleyin: API yanıtlarınızdaki
cache_creation_input_tokens
vecache_read_input_tokens
'u düzenli olarak kontrol edin. Zaman içinde yazmalara göre yüksek bir okuma oranı hedefleyin. Çoğunlukla yazma görürseniz, önekleriniz çok sık değişiyor olabilir veya önbelleğe alınabilir minimum uzunluğun altında olabilirler. - Gereksiz Değişikliklerden Kaçının: Önekin içeriğine yapılan (bir boşluk eklemek veya noktalama işaretlerini değiştirmek gibi) küçük, önemsiz değişikliklerin bile önbelleği bozacağını unutmayın. Öneklerin nasıl oluşturulduğunda tutarlılık sağlayın.
- Maliyet Takaslarını Göz Önünde Bulundurun: Önbelleğe alma, uzun ve sık sık yeniden kullanılan önekler için en etkilidir. Çok kısa önekleri önbelleğe almayın, çünkü potansiyel tasarruflar minimumdur ve karmaşıklığa değmeyebilir. Yüksek oranda değişken kullanıcı girdilerini önbelleğe almaktan kaçının.
- Test Edin ve Yineleyin: Belirli uygulamanızın iş yükü ve kullanım kalıpları için en uygun stratejiyi bulmak için farklı istem yapılarını ve önbellek kesme noktalarını deneyin.
Sonuç
İstem önbelleğe alma, büyük dil modelleri üzerine uygulamalar geliştiren herkes için hayati bir optimizasyon tekniğidir. Statik istem öneklerinin hesaplama durumunu akıllıca depolayarak ve yeniden kullanarak, uzun veya tekrarlayan istemlerle ilişkili gecikme ve maliyet zorluklarını doğrudan ele alır. Önbelleğe almanın nasıl çalıştığını, seçtiğiniz BDM sağlayıcınız (Anthropic'in cache_control
'ü gibi) için belirli uygulama ayrıntılarını, ilgili fiyatlandırma nüanslarını ve sınırlamalarını anlamak, daha verimli, duyarlı ve ekonomik yapay zeka uygulamaları tasarlamanıza olanak tanır. BDM kullanım durumları karmaşıklık ve ölçekte büyüdükçe, istem önbelleğe alma gibi özelliklerden yararlanmak, performanslı ve sürdürülebilir çözümler oluşturmak için giderek daha önemli olacaktır.
Maksimum verimlilikle birlikte çalışmak için Geliştirici Ekibiniz için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
