RAG'de Chunking Stratejisi: Başlık Farkındalığı Hit Oranını İkiye Katladı
RAG sistemlerinde chunking ilk ve en az ayarlanan kararlardan biri. Çoğu proje framework'ün varsayılan ayarını, genelde sabit boyutlu, örtüşen chunk'ları, alıp geçip gidiyor. Ama ya gerçek sayılar görmek istersen?
Yapılan çalışmada beş farklı chunking stratejisi FastAPI'nin İngilizce dokümantasyonu üzerinde test edildi. Corpus: 151 Markdown dosya, 1.45 milyon karakter. Gerçek teknik yazı, başlıklar, kod blokları, uyarılar ve hepsi.
Sonuç basit ama etkili: önce başlıklara göre bölümle, sonra paragrafları paketле. Bu yöntem hit@1 oranını 0.39'dan 0.71'e çıkardı. Üstüne her chunk'a başlık yolunu eklemen (heading path) oranı 0.79'a yükseltti. Yani neredeyse iki katı iyileşme.
Test 773 gerçek sorgu üzerinden yapıldı, her h2/h3 başlığı en az 300 karakter gövde ve 2+ kelime şartıyla. "Declare request example data" ya da "Dependencies with yield and except" gibi sorular. Retriever olarak BM25 kullanıldı (deterministik, tekrarlanabilir).
Praktik çıkarım: eğer RAG sisteminiz dokümantasyon ya da yapılandırılmış teknik içerik üzerinde çalışıyorsa, varsayılan fixed-size chunk'lardan kurtul. Başlık seviyesinde bölümleme ve chunk'a bağlam (heading path) eklemek, retrieval kalitesini ciddi oranda yükseltebilir. Birkaç satır kod değişikliği, %40 daha iyi sonuç.
0 yorum