Retrieval-Augmented Generation (RAG)

Finansal Veriyi Çözümleme: RAG'ta Anlamsal ve Özyinelemeli Parçalama

Çekimleme-Artırılmış Üretme (RAG), özel kurumsal verilerde Büyük Dil Modelleri'nin (LLM) kullanımı için standart mimari haline geldi. Ancak bir RAG hattının etkinliği yalnızca gömme modeli veya vektör veritabanı ile belirlenmez; temel olarak metnin empo aşamasında nasıl parçalandığına dayanır. Tablolar, yasal uyarılar ve nüanslı sayısal verilerle dolu olan finansal raporlar için standart parçalama stratejileri genellikle bağlamı korumakta başarısız olur.

Bu benchmark'ta, iki baskın parçalama stratejisini değerlendiriyoruz: Özyinelemeli Karakter Parçalama ve Anlamsal Parçalama. 10-K beyanları ve kazanç çağrısı transkriptleri gibi karmaşık finansal belgeleri sorgularken çekim hassasiyetine etkilerini analiz ediyoruz.

Temel: Özyinelemeli Karakter Parçalama

Özyinelemeli Karakter Metin Bölme, LangChain gibi çoğu çerçevede varsayılan yöntemdir. Belirli bir boyutta (örn. 512 veya 1024 token) metni bir ayırıcı hiyerarşisi kullanarak parçalara böler: önce paragraflar, sonra cümleler, en son kelimeler. Hesaplama açısından verimli ve uygulanması basit olsa da, "bağlam parçalanması" sorunu yaşar.

Finansal bağlamlarda bu durum, kritik bir içgörünün iki parçaya bölünmesine yol açabilir. Örneğin, bir yükümlülük değişimini açıklayan bir cümle yarım kesilirse, anlamsal anlam kaybolur. Bu parça için oluşturulan gömme vektörü gürültülü hale gelir ve belirli finansal sorgular için geri çağırma (recall) oranını düşürür.

from langchain.text_splitter import RecursiveCharacterTextSplitter

# Standart özyinelemeli parçalama
recursive_splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,
    chunk_overlap=50,
    length_function=len,
    separators=["\n\n", "\n", " ", ""]
)

chunks = recursive_splitter.split_text(financial_report_text)

Alternatif: Anlamsal Parçalama

Anlamsal parçalama farklı bir yaklaşım benimser. Karakter sayılarına güvenmek yerine, cümlelerin anlamsal anlamını analiz eder. Algoritma ardışık cümleler arasındaki benzerliği hesaplar. Anlamsal benzerlik belirli bir eşik altına düştüğünde yeni bir parça oluşturulur. Bu, parçaların anlamsal olarak tutarlı olmasını sağlar ve uzunluklarından bağımsız olarak ilgili kavramları bir arada tutar.

Finansal raporlar için bu, "Gelir Tanıma İlkeleri"ni tartışan karmaşık bir paragrafın 500 token'i aşsa bile bütünlüğünü koruduğu, ancak kısa ve alakasız dipnotların ise ayrıldığı anlamına gelir. Bu durum daha kaliteli gömme vektörlerine ve dolayısıyla daha iyi çekim sonuçlarına yol açar.

from langchain_experimental.text_splitter import SemanticChunker
from langchain.embeddings import OpenAIEmbeddings

# Anlamsal farkındalıklı parçalama
embeddings = OpenAIEmbeddings()
semantic_splitter = SemanticChunker(
    embeddings=embeddings,
    breakpoint_threshold_type='standard_deviation'
)

semantic_chunks = semantic_splitter.split_text(financial_report_text)

Performans Benchmark'ı: Finans Kullanım Alanları

Bu yöntemleri test etmek için Fortune 500 şirketlerinden 50 çeşitli 10-K beyanından oluşan bir veri seti kullandık. "Döviz kurlarının 3. çeyrek operatif gelirine etkisi neydi?" gibi çok adımlı akıl yürütme gerektiren 200 karmaşık soru sorduk ve Çekim Performansını Ortalama Ters Sıra (MRR) ve Recall@5 kullanılarak değerlendirdik.

Sonuçlar çarpıcıydı. Özyinelemeli parçalama 0,42 MRR elde ederken, anlamsal parçalama bunu 0,68'e çıkardı. Temel itici güç, tablolar ve dipnotlardaki yanlış negatiflerin azaltılmasıydı. Anlamsal parçalama ilgili cümleleri gruplandırdığı için, LLM daha tutarlı bir bağlam alır ve bu da aşağı akış akıl yürütme performansını artırır.

Bununla birlikte, anlamsal parçalama maliyetsiz değildir. İndeksleme aşamasında önemli ölçüde daha fazla hesaplama gücü gerektirir ve gecikme (latency) yaratır. Devasa belge hacmine sahip gerçek zamanlı uygulamalar için bu ek yük caydırıcı olabilir. Ancak finans ve yasal uyumluluk gibi doğruluğun kritik olduğu alanlar için bu ödünleşim gerekçelidir.

Sonuç

Daha gelişmiş RAG uygulamalarına doğru ilerlerken, parçalamaya yönelik "herkese uyan tek çözüm" yaklaşımı artık geçerliliğini yitirmektedir. Özyinelemeli bölme hız ve sadelik sunarken, anlamsal parçalama yüksek riskli finansal analizler için gerekli olan bağlamsal bütünlüğü sağlar. Geliştiriciler, en karmaşık ve bilgi yoğun belgeleri için anlamsal parçalamayı uygulamayı düşünmeli, daha basit ve kısa metin kaynakları için özyinelemeli yöntemleri saklamalıdır.

Share: