𝗥𝗮𝘁𝗲 𝗟𝗶𝗺𝗶𝘁𝗶𝗻𝗴 𝗮𝗻𝗱 𝗖𝗶𝗿𝗰𝘂𝗶𝘁 𝗕𝗿𝗲𝗮𝗸𝗲𝗿𝘀 𝗶𝗻 𝗔𝗜 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 -> AI Sistemlerinde Hız Sınırlama (Rate Limiting) ve Devre Kesiciler (Circuit Breakers)
Dağıtık AI sistemleri karmaşıktır. Devasa istek hacimlerini ve ağır model çıkarımlarını (inference) yönetirler. GPU kümelerine, veri tabanlarına ve üçüncü taraf API'lere güvenirsiniz. Tek bir hatalı bileşen veya ani bir trafik artışı tüm sisteminizin çökmesine neden olabilir.
Sisteminizi korumak için iki araca ihtiyacınız vardır: hız sınırlama (rate limiting) ve devre kesiciler (circuit breakers).
Hız Sınırlama (Rate Limiting) Hız sınırlama, tek bir kullanıcının veya servisin çok fazla kaynak kullanmasını engeller. Herkes için adil erişim sağlar.
Yaygın yöntemler:
- Token Bucket: AI için en iyisidir. Sabit bir ortalama tutarken kısa süreli aktivite patlamalarına izin verir.
- Leaky Bucket: İsteklerin sabit bir akış halinde kalmasını sağlar.
- Fixed Window: Basittir ancak yeni bir pencerenin başında ani artışlara (spike) neden olabilir.
- Sliding Window: Sabit pencerelerden daha doğrudur.
AI için ipucu: Sadece istek sayısına göre değil, token sayısına göre sınırlama yapın. 4.000 token içeren tek bir istem (prompt), 10 token içeren bir istemden daha fazla kaynak tüketir.
Devre Kesiciler (Circuit Breakers) Bir devre kesici, GPU sunucunuz veya vektör veri tabanınız gibi servislere yapılan çağrıları izler. Eğer bir servis çok fazla kez hata verirse, devre kesici açılır (opens). O servise yapılan tüm çağrıları anında durdurur. Bu, sistemin tamamen çökmesini engeller.
Devre üç durumu takip eder:
- Kapalı (Closed): Her şey normal şekilde çalışıyor.
- Açık (Open): Servis hata veriyor. Çağrılar hızlıca başarısız olur veya bir yedek mekanizma (fallback) kullanılır.
- Yarı Açık (Half-Open): Sistem, servisin düzelip düzelmediğini görmek için onu test eder.
En iyi uygulamalar:
- Yavaş çağrıları takip edin. Eğer bir LLM çok uzun sürüyorsa, bunu bir hata olarak kabul edin.
- Hata türlerini ayırın. 400 Bad Request gibi kullanıcı hataları için devre kesiciyi tetiklemeyin. Sadece bağlantı hataları veya zaman aşımları (timeouts) için tetikleyin.
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi