LLM Çağrıları Sırasında Neden DB Bağlantılarını Tutmamalısınız
Yapay zeka gecikmesi (latency) sadece modelin düşünmek için harcadığı süre değildir. Aynı zamanda veritabanı bağlantılarını nasıl yönettiğinizle de ilgilidir.
Bir LLM veya embedding API'sini beklerken DB bağlantısını açık tutmak, bağlantı havuzunuzu (connection pool) tüketebilir. Yavaş harici çağrılar, oturumları (sessions) ihtiyaç duyulandan çok daha uzun süre açık tutar.
Çözümlerini görmek için Honcho reposunu inceledim. Tek bir uzun ömürlü oturum yerine, kısa ve göreve özel oturumlar kullanmaya başlamışlar.
Eski Yöntem
- DB oturumunu aç
- Kullanıcı ayarlarını oku
- LLM çağrısı yap (yavaş)
- Embedding API çağrısı yap (yavaş)
- Sonuçları kaydet
- DB oturumunu kapat
Yeni Yöntem
- Ön kontroller için DB oturumunu aç
- Gerekli değerleri değişkenlere oku
- DB oturumunu kapat
- LLM ve Embedding API'lerini çağır (DB bağlantısı tutulmaz)
- Sonuçları kaydetmek için yeni ve kısa bir DB oturumu aç
- DB oturumunu kapat
Amaç veritabanından vazgeçmek değil; işlem tutarlılığını (transaction consistency) ağ bekleme süresinden ayrı tutmaktır.
Bağlantılarınızı yönetmek için beş adım
- Tutarlılık sınırlarınızı belirleyin.
- Herhangi bir harici API çağrısından önce gerekli tüm değerleri değişkenlere aktarın.
- Veritabanı kapsamını (scope) kapatın.
- Yavaş harici görevleri gerçekleştirin.
- Nihai sonuçları kalıcı hale getirmek için yeni ve kısa bir yazma kapsamı (write scope) açın.
Not: Eğer pgvector kullanıyorsanız, arama veritabanı içinde çalışır; bu nedenle bu işlem sırasında oturumu açık tutmalısınız.
Oturum ömrünü kısaltmak ölçeklenebilirliği artırır, ancak ORM'nizdeki detached-object hatalarına karşı dikkatli olun ve verilerin işlem anlık görüntülerinde (transaction snapshots) tutarlı kaldığını doğrulayın.
Kaynak: https://dev.to/junhyun-dev/neurin-llm-hocul-jung-db-connectioneul-jabji-anhneun-iyu-3abg
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi
