Ana Sayfa

RAG Boru Hatları İçin Ultra Hızlı Metin Parçalama: memchunk ve memchr

1 dk okuma

Büyük dil modelleri (LLM) ve bilgi erişim sistemleri (RAG) geliştirirken, metinleri daha küçük parçalara ayırma, yani "chunking" işlemi kritik bir rol oynar. Bu parçalar, gömme modellerine (embedding models) veya bağlam pencerelerine sığacak şekilde düzenlenir. Geleneksel olarak, metinleri sabit karakter sayısına göre bölmek gibi basit yaklaşımlar cümleleri ortadan keserek anlamsal bütünlüğü bozar ve bilgi erişim kalitesini düşürür. Bu durum, anlamsal sınırlara (noktalar, yeni satırlar, soru işaretleri gibi) dikkat ederek bölme ihtiyacını doğurur; bu sayede her parça kendi içinde tamamlanmış bir düşünceyi temsil eder.

Anlamsal sınırlara göre bölme kavramı basit olsa da, bunu yüksek hızda gerçekleştirmek zorlayıcıdır. Makale, RAG boru hatları için bir chunking kütüphanesi olan chonkie üzerinde çalışırken karşılaşılan performans sorunlarına ve bu sorunları aşmak için geliştirilen memchunk kütüphanesine odaklanıyor. Amaç, tüm soyutlamaları bir kenara bırakarak metin parçalama işleminin teorik hız sınırlarını zorlamaktır. Bu noktada, Andrew Gallant'ın memchr kütüphanesi devreye girer. memchr, bayt arama için optimize edilmiş, çok katmanlı bir kütüphanedir ve hızlı chunking'in temelini oluşturur.

memchr, hızını çeşitli optimizasyon tekniklerine borçludur. SIMD (Single Instruction, Multiple Data) talimatları olmadan bile SWAR (SIMD Within A Register) adı verilen akıllı bir yöntemle 64-bit işlemleri kullanarak aynı anda 8 baytı işleyebilir. Bu teknik, bir baytı ararken hedef baytı tüm 8 konuma yayarak XOR işlemi yapar ve eşleşen baytların sıfır olmasını sağlar. Ardından, özel bit manipülasyonları (has_zero_byte hilesi) ile sıfır bayt olup olmadığını dallanma veya döngü olmadan tespit eder. x86_64 mimarisinde SIMD desteği olduğunda ise memchr, AVX2 ve SSE2 gibi vektör talimatlarını kullanarak aynı anda 32 veya 16 baytı işleyerek performansı daha da artırır. Bu düşük seviyeli optimizasyonlar sayesinde memchunk, metin parçalama işlemlerini olağanüstü hızlara çıkarabilmektedir.

İçgörü

RAG boru hatlarında metin parçalama performansını artırmak, büyük veri kümeleriyle çalışırken verimlilik ve maliyet açısından kritik öneme sahiptir.

Kaynak