mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-09 05:12:12 +02:00
update more languages
Signed-off-by: Alex Jenkins <kjenkins60@gatech.edu>
This commit is contained in:
parent
835acaa70e
commit
16c2f12a54
249 changed files with 117186 additions and 186 deletions
|
|
@ -17,7 +17,11 @@ Bu özellik, TrustGraph'taki GraphRAG (Graf Çıkarım Destekli Üretim) algorit
|
|||
**Doğruluğu Koruyun**: Mevcut GraphRAG işlevselliğini ve sonuç kalitesini koruyun.
|
||||
**Eşzamanlılığı Etkinleştirin**: Çoklu eşzamanlı istekler için paralel işleme yeteneklerini iyileştirin.
|
||||
**Bellek Ayak İzini Azaltın**: Verimli veri yapıları ve bellek yönetimi uygulayın.
|
||||
<<<<<<< HEAD
|
||||
**Gözlemlenebilirliği Ekleyin**: Performans ölçümleri ve izleme yetenekleri ekleyin.
|
||||
=======
|
||||
**Gözlenebilirliği Ekleyin**: Performans ölçümleri ve izleme yetenekleri ekleyin.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
**Güvenilirliği Sağlayın**: Uygun hata işleme ve zaman aşımı mekanizmaları ekleyin.
|
||||
|
||||
## Arka Plan
|
||||
|
|
@ -27,6 +31,7 @@ Bu özellik, TrustGraph'taki GraphRAG (Graf Çıkarım Destekli Üretim) algorit
|
|||
### Mevcut Performans Sorunları
|
||||
|
||||
**1. Verimsiz Graf Gezinme (`follow_edges` fonksiyonu, 79-127 satırlar)**
|
||||
<<<<<<< HEAD
|
||||
Her varlık için her derinlik seviyesinde 3 ayrı veritabanı sorgusu yapar.
|
||||
Sorgu kalıbı: Her varlık için konu tabanlı, öznelik tabanlı ve nesne tabanlı sorgular.
|
||||
Toplu işleme yok: Her sorgu yalnızca bir varlığı işler.
|
||||
|
|
@ -50,19 +55,52 @@ Boyut sınırları veya TTL (Yaşam Süresi) olmadan basit bir sözlük önbelle
|
|||
Benzer istekler arasında varlık vektör benzerliği sorguları önbelleğe alınmaz.
|
||||
Tekrarlayan sorgu kalıpları için sonuç memoizasyonu yoktur.
|
||||
Yaygın erişim kalıpları için sorgu optimizasyonu eksiktir.
|
||||
=======
|
||||
Her varlık için 3 ayrı veritabanı sorgusu yapar.
|
||||
Sorgu kalıbı: her varlık için konu tabanlı, öznelik tabanlı ve nesne tabanlı sorgular.
|
||||
Toplu işleme yok: Her sorgu yalnızca bir varlığı işler.
|
||||
Döngü algılama yok: Aynı düğümlere birden çok kez geri dönülebilir.
|
||||
Memoizasyon olmadan yinelemeli uygulama, üstel karmaşıklığa yol açar.
|
||||
Zaman karmaşıklığı: O(varlıklar × maks_yol_uzunluğu × üçlü_sınırı³)
|
||||
|
||||
**2. Sıralı Etiket Çözümleme (`get_labelgraph` fonksiyonu, 144-171 satırlar)**
|
||||
Her üç bileşenli (konu, öznelik, nesne) sırayla işler.
|
||||
Her `maybe_label` çağrısı potansiyel olarak bir veritabanı sorgusu tetikler.
|
||||
Etiket sorgularının paralel yürütülmesi veya toplu işlenmesi yok.
|
||||
subgraph_size × 3 adet ayrı veritabanı çağrısına yol açar.
|
||||
|
||||
**3. Basit Önbellekleme Stratejisi (`maybe_label` fonksiyonu, 62-77 satırlar)**
|
||||
Boyut sınırları veya TTL (Yaşam Süresi Sonu) olmadan basit bir sözlük önbelleği.
|
||||
Önbellek çıkarma politikası olmaması, sınırsız bellek büyümesine yol açar.
|
||||
Önbellek hataları, ayrı veritabanı sorgularını tetikler.
|
||||
Ön yükleme veya akıllı önbellek önleme yok.
|
||||
|
||||
**4. Alt Optimum Sorgu Kalıpları**
|
||||
Benzer istekler arasında varlık vektör benzerliği sorguları önbelleğe alınmaz.
|
||||
Tekrarlayan sorgu kalıpları için sonuç memoizasyonu yok.
|
||||
Yaygın erişim kalıpları için sorgu optimizasyonu eksik.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
**5. Kritik Nesne Ömrü Sorunları (`rag.py:96-102`)**
|
||||
**GraphRag nesnesi her istek için yeniden oluşturulur**: Her sorgu için yeni bir örnek oluşturulur, böylece tüm önbellek avantajları kaybolur.
|
||||
**Sorgu nesnesi son derece kısa ömürlüdür**: Tek bir sorgu yürütmesi içinde oluşturulur ve yok edilir (201-207 satırlar).
|
||||
**Etiket önbelleği her istek için sıfırlanır**: Önbellek önleme ve birikmiş bilgi istekler arasında kaybolur.
|
||||
**İstemci yeniden oluşturma ek yükü**: Veritabanı istemcileri potansiyel olarak her istek için yeniden oluşturulur.
|
||||
<<<<<<< HEAD
|
||||
**İstekler arası optimizasyon yok**: Sorgu kalıplarından veya sonuç paylaşımından yararlanamaz.
|
||||
=======
|
||||
**Çapraz istek optimizasyonu yok**: Sorgu kalıplarından veya sonuç paylaşımından yararlanamaz.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
### Performans Etki Analizi
|
||||
|
||||
Tipik bir sorgu için mevcut en kötü senaryo:
|
||||
**Varlık Alma**: 1 vektör benzerliği sorgusu.
|
||||
<<<<<<< HEAD
|
||||
**Graf Gezinme**: varlıklar × max_path_length × 3 × triple_limit sorgusu.
|
||||
=======
|
||||
**Graf Gezinme**: varlıklar × maks_yol_uzunluğu × 3 × üçlü_sınırı sorguları.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
**Etiket Çözümleme**: subgraph_size × 3 adet ayrı etiket sorgusu.
|
||||
|
||||
Varsayılan parametreler için (50 varlık, yol uzunluğu 2, 30 üçlü sınırı, 150 alt grafik boyutu):
|
||||
|
|
@ -70,7 +108,11 @@ Varsayılan parametreler için (50 varlık, yol uzunluğu 2, 30 üçlü sınır
|
|||
**Yanıt süresi**: Orta büyüklükteki grafikler için 15-30 saniye
|
||||
**Bellek kullanımı**: Zamanla sınırsız önbellek büyümesi
|
||||
**Önbellek etkinliği**: %0 - her istekte önbellekler sıfırlanır
|
||||
<<<<<<< HEAD
|
||||
**Nesne oluşturma ek yükü**: Her istek için oluşturulan/silinen GraphRag + Sorgu nesneleri
|
||||
=======
|
||||
**Nesne oluşturma ek yükü**: Her istek için GraphRag + Sorgu nesneleri oluşturulur/silinir
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Bu özellik, toplu sorguları, akıllı önbelleği ve paralel işleme uygulayarak bu eksiklikleri giderir. Sorgu kalıplarını ve veri erişimini optimize ederek TrustGraph şunları yapabilir:
|
||||
Milyonlarca varlığa sahip kurumsal ölçekli bilgi grafiklerini destekleyin
|
||||
|
|
@ -322,12 +364,20 @@ class QueryExecutor:
|
|||
|
||||
Bu mimari değişiklik şunları sağlar:
|
||||
**Ortak ilişkileri olan grafikler için veritabanı sorgu sayısında %10-20'lik bir azalma** (şu anda %0'a kıyasla)
|
||||
<<<<<<< HEAD
|
||||
Her istek için **ortadan kaldırılan nesne oluşturma ek yükü**
|
||||
=======
|
||||
Her istek için **oluşturulan nesnelerin getirdiği ek yükün ortadan kaldırılması**
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
**Sürekli bağlantı havuzu** ve istemci yeniden kullanımı
|
||||
Önbellek TTL (Yaşam Süresi) aralıkları içinde **istemler arası optimizasyon**
|
||||
|
||||
**Önemli Önbellek Tutarlılık Sınırlaması:**
|
||||
<<<<<<< HEAD
|
||||
Uzun süreli önbellekleme, temel grafikteki varlıkların/etiketlerin silindiği veya değiştirildiği durumlarda, güncelliği kaybetme riski oluşturur. LRU (En Son Kullanılmayan) önbelleği, performans kazanımları ile veri tazeliği arasında bir denge sağlarken, gerçek zamanlı grafik değişikliklerini tespit edemez.
|
||||
=======
|
||||
Uzun süreli önbellekleme, temel grafikteki varlıkların/etiketlerin silindiği veya değiştirildiği durumlarda, verilerin güncelliğini yitirme riski oluşturur. LRU (En Son Kullanılmayan) önbelleği, performans artışları ve veri tazeliği arasında bir denge sağlar, ancak gerçek zamanlı grafik değişikliklerini tespit edemez.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
#### 1. Aşama: Grafik Gezinme Optimizasyonu
|
||||
|
||||
|
|
@ -486,7 +536,11 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
|
|||
|
||||
**Azaltma Stratejileri:**
|
||||
**Muhafazakar TTL değerleri:** Performans kazanımları (10-20%) ile veri güncelliği arasındaki denge.
|
||||
<<<<<<< HEAD
|
||||
**Önbellek geçersiz kılma kancaları:** İsteğe bağlı olarak grafik mutasyon olaylarıyla entegrasyon.
|
||||
=======
|
||||
**Önbellek geçersiz kılma mekanizmaları:** Grafik mutasyon olaylarıyla isteğe bağlı entegrasyon.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
**İzleme panoları:** Önbellek isabet oranlarını, veri güncelliği sorunlarıyla karşılaştırarak izleyin.
|
||||
**Yapılandırılabilir önbellek politikaları:** Mutasyon sıklığına göre dağıtıma özel ayarlamalar yapılmasına izin verir.
|
||||
|
||||
|
|
@ -497,14 +551,23 @@ async def execute_with_timeout(self, query_func, timeout: int = 30):
|
|||
|
||||
## Güvenlik Hususları
|
||||
|
||||
<<<<<<< HEAD
|
||||
**Sorgu Enjeksiyonunu Önleme:**
|
||||
=======
|
||||
**Sorgu Enjeksiyonu Önleme:**
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Tüm varlık tanımlayıcılarını ve sorgu parametrelerini doğrulayın.
|
||||
Tüm veritabanı etkileşimleri için parametreli sorgular kullanın.
|
||||
DoS saldırılarını önlemek için sorgu karmaşıklığı limitleri uygulayın.
|
||||
|
||||
**Kaynak Koruması:**
|
||||
<<<<<<< HEAD
|
||||
Maksimum alt grafik boyutları limitlerini uygulayın.
|
||||
Kaynak tükenmesini önlemek için sorgu zaman aşımlarını uygulayın.
|
||||
=======
|
||||
Maksimum alt grafik boyutları için limitler uygulayın.
|
||||
Kaynak tükenmesini önlemek için sorgu zaman aşımları uygulayın.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Bellek kullanımı izleme ve limitleri ekleyin.
|
||||
|
||||
**Erişim Kontrolü:**
|
||||
|
|
@ -517,7 +580,11 @@ Pahalı işlemler için hız sınırlaması uygulayın.
|
|||
### Beklenen Performans İyileştirmeleri
|
||||
|
||||
**Sorgu Azaltma:**
|
||||
<<<<<<< HEAD
|
||||
Mevcut: Tipik bir istek için ~9.000+ sorgu.
|
||||
=======
|
||||
Mevcut: Tipik bir istek için ~9.000'den fazla sorgu.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Optimize edilmiş: ~50-100 toplu sorgu (98% azalma).
|
||||
|
||||
**Yanıt Süresi İyileştirmeleri:**
|
||||
|
|
@ -537,7 +604,11 @@ Uygun kaynak temizliği sayesinde daha iyi çöp toplama.
|
|||
**Genel iyileşme:** Toplu işlemden kaynaklanan 3-4 kat yanıt süresi iyileşmesi.
|
||||
|
||||
**Ölçeklenebilirlik İyileştirmeleri:**
|
||||
<<<<<<< HEAD
|
||||
3-5 kat daha büyük bilgi grafiklerini destekler (önbellek tutarlılık ihtiyaçları ile sınırlıdır).
|
||||
=======
|
||||
3-5 kat daha büyük bilgi grafiklerini destekler (önbellek tutarlılık gereksinimleriyle sınırlıdır).
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
3-5 kat daha yüksek eşzamanlı istek kapasitesi.
|
||||
Bağlantı yeniden kullanımı sayesinde daha iyi kaynak kullanımı.
|
||||
|
||||
|
|
@ -564,7 +635,11 @@ Hata işleme ve zaman aşımı senaryoları
|
|||
|
||||
### Entegrasyon Testi
|
||||
Optimizasyonlarla uçtan uca GraphRAG sorgu testi
|
||||
<<<<<<< HEAD
|
||||
Gerçek verilerle veritabanı etkileşim testi
|
||||
=======
|
||||
Gerçek verilerle veritabanı etkileşimi testi
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Eşzamanlı istek işleme ve kaynak yönetimi
|
||||
Bellek sızıntısı tespiti ve kaynak temizleme doğrulaması
|
||||
|
||||
|
|
@ -585,9 +660,15 @@ Mevcut uygulamaya kıyasla sonuç doğruluğunu doğrulayın
|
|||
API'lerin değişmesine izin verildiğinden, geçiş karmaşıklığı olmadan doğrudan optimizasyonları uygulayın:
|
||||
|
||||
1. **`follow_edges` yöntemini değiştirin**: Yinelemeli toplu işleme ile yeniden yazın
|
||||
<<<<<<< HEAD
|
||||
2. **`get_labelgraph`'ı optimize edin**: Paralel etiket çözümlemeyi uygulayın
|
||||
3. **Uzun ömürlü GraphRag ekleyin**: Kalıcı bir örnek tutmak için İşlemci'yi değiştirin
|
||||
4. **Etiket önbelleğini uygulayın**: GraphRag sınıfına TTL ile LRU (En Son Kullanılan) önbelleği ekleyin
|
||||
=======
|
||||
2. **`get_labelgraph`'ı optimize edin**: Paralel etiket çözümlemesini uygulayın
|
||||
3. **Uzun ömürlü GraphRag ekleyin**: Kalıcı bir örnek tutmak için İşlemci'yi değiştirin
|
||||
4. **Etiket önbelleklemesini uygulayın**: GraphRag sınıfına TTL ile LRU (En Son Kullanılan) önbelleği ekleyin
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
### Değişiklik Kapsamı
|
||||
**Sorgu sınıfı**: `follow_edges` içinde ~50 satırı değiştirin, toplu işleme için ~30 satır ekleyin
|
||||
|
|
@ -599,7 +680,11 @@ API'lerin değişmesine izin verildiğinden, geçiş karmaşıklığı olmadan d
|
|||
|
||||
**1. Hafta: Temel Uygulama**
|
||||
`follow_edges`'ı toplu yinelemeli gezinmeyle değiştirin
|
||||
<<<<<<< HEAD
|
||||
`get_labelgraph` içinde paralel etiket çözümlemeyi uygulayın
|
||||
=======
|
||||
`get_labelgraph` içinde paralel etiket çözümlemesini uygulayın
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
İşlemci'ye uzun ömürlü GraphRag örneği ekleyin
|
||||
Etiket önbellekleme katmanı uygulayın
|
||||
|
||||
|
|
@ -612,7 +697,11 @@ Kod incelemesi ve optimizasyon
|
|||
**3. Hafta: Dağıtım**
|
||||
Optimize edilmiş uygulamayı dağıtın
|
||||
Performans iyileştirmelerini izleyin
|
||||
<<<<<<< HEAD
|
||||
Gerçek kullanım temelinde önbellek TTL'sini ve toplu boyutları ayarlayın
|
||||
=======
|
||||
Gerçek kullanım bazında önbellek TTL'sini ve toplu boyutları ayarlayın
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## Açık Sorular
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue