Garfield
YZF Admin
Anlama dayalı parçalama, uzun bir metni sabit karakter veya kelime sayısına göre değil, anlam bütünlüğünü koruyan bölümlere ayırma yöntemidir. Özellikle RAG tabanlı asistanlarda, arama için daha ilgili parçalar üretir: kullanıcı bir soru sorduğunda sistem başlık, paragraf veya konu bütünlüğü bozulmamış bölümleri getirir ve modelin daha isabetli yanıt vermesi beklenir. Ancak bu yöntem tek başına doğru yanıtı garanti etmez; parçaların içeriği, kullanılan gömme modeli, arama ayarları ve kaynak metnin kalitesi de sonucu etkiler.
Geleneksel parçalama metni örneğin her 500 karakterde bir böler. Bu yaklaşım hızlıdır ancak cümlenin ortasında, bir açıklama ile örneği birbirinden ayırabilir. Anlama dayalı parçalama ise metindeki başlıkları, paragrafları, cümleleri ve konu geçişlerini değerlendirir. Birbirine anlamsal olarak yakın bölümler aynı parçada tutulurken konu değişimi belirginleştiğinde yeni parça başlatılır.
Bunu yapmak için sistem genellikle metni önce daha küçük birimlere ayırır. Ardından her birim için anlamsal temsil, yani gömme vektörü oluşturur. Ardışık birimler arasındaki anlam benzerliği düşerse bu nokta bir parçalama sınırı olarak kabul edilir. Benzerlik eşiği düşükse daha büyük ve daha az parça, yüksekse daha küçük ve daha fazla parça oluşur.
Örneğin aşağıdaki varsayımsal metin üç paragraftan oluşsun:
İlk paragraf Excel verisini API ile okumayı, ikinci paragraf kimlik bilgilerini korumayı, üçüncü paragraf ise RAG kullanımını anlatır. Konu geçişlerine göre ayarlanmış bir yöntem bu metni üç parçaya ayırabilir; gerçek sınırlar kullanılan gömme modeli ve eşiğe bağlıdır. Sabit uzunluklu bir yöntem ise güvenlik uyarısını ilk paragrafın ortasına veya RAG açıklamasını güvenlik bilgisinin sonuna ekleyebilir.
Örneğin üç parçalık bir bölünme seçilirse, aşağıdaki satırlar parçaların konu özetlerini gösterir; gerçek RAG parçalarında kaynak metnin ilgili cümleleri korunur. Bu konu etiketleri tek başına kaynak parçaların yerine kullanılmamalıdır:
Buradaki amaç yalnızca parçaları küçültmek değildir. Her parçanın, kaynağından koparıldığında da ne anlattığının mümkün olduğunca anlaşılır kalmasıdır. Bu nedenle başlık, bölüm adı, belge kimliği veya sayfa bilgisi gibi üst bağlamlar çoğu sistemde parçaya eklenir.
Seçim, veri türüne ve arama hedefinize bağlıdır. Her durumda anlama dayalı parçalama daha iyi sonuç vermez; düzenli yapıya sahip belgelerde sabit veya başlık tabanlı parçalama daha basit ve daha öngörülebilir olabilir.
Tablonun gösterdiği ayrım şudur: belge zaten iyi yapılandırılmışsa başlık ve paragraf sınırlarını kullanmak yeterli olabilir. Metin içinde konu geçişleri düzensizse anlama dayalı yöntem daha uygun bir adaydır. Kararı yalnızca parçaların sayısına göre vermeyin; kullanıcı sorusuna karşılık doğru bağlamın bulunup bulunmadığını ölçün.
Bir RAG akışında tipik sıra şöyledir: belgeler alınır, metin bölümlere ayrılır, her bölüm vektörleştirilir ve bir vektör veritabanına kaydedilir. Kullanıcı soru sorduğunda soru da vektörleştirilir; en benzer parçalar seçilerek modele bağlam olarak gönderilir.
Anlama dayalı parçalama burada iki sorunu azaltmayı hedefler. Birincisi, yanıt için gerekli cümlenin başka bir parçaya dağılmasını önlemektir. İkincisi, birbirinden farklı konuların aynı parçada birleşmesi nedeniyle arama sonucunun gereksiz bilgiyle dolmasını azaltmaktır. Örneğin “API anahtarı nerede saklanmalı?” sorusunda Excel hücrelerinin nasıl okunacağını anlatan bölümün getirilmesi, parçaların konu sınırlarının iyi belirlenmediğini gösterebilir.
Buna rağmen yöntem şu sonuçları kanıtlamaz:
İyi bir parça tek başına okunduğunda temel konusunu belli eder, soruyla doğrudan ilişkilidir ve önemli koşulları dışarıda bırakmaz. “Bu”, “yukarıdaki yöntem” veya “ikinci seçenek” gibi ifadeler parçanın önceki metne aşırı bağımlı olduğunu gösteriyorsa başlık ya da kısa bağlam bilgisi eklemek gerekir.
Örneğin “Bu değer daha sonra gönderilir” cümlesi tek başına belirsizdir. Parça şu biçimde düzenlenirse aramada daha kullanılabilir olur: “Excel API’sinden alınan hücre değeri, doğrulama adımından sonra HTTP isteğinin gövdesinde gönderilir.” İkinci ifade hem nesneyi hem işlemi açıklar; ancak bu cümlenin kaynakta bulunmayan bir bilgiyle sonradan uydurulmaması gerekir.
Anlama dayalı parçalama, özellikle farklı konuların aynı belgede arka arkaya işlendiği, başlık yapısının zayıf olduğu veya soru-cevap tabanlı bir asistanın belirli bağlamı bulması gereken metinlerde değerlendirilebilir. Başlangıçta küçük bir belge kümesi ve gerçek kullanıcı sorularından oluşan bir test seti kullanmak, eşik değerini rastgele belirlemekten daha güvenilir sonuç verir.
Anlama dayalı parçalama nasıl çalışır?
Geleneksel parçalama metni örneğin her 500 karakterde bir böler. Bu yaklaşım hızlıdır ancak cümlenin ortasında, bir açıklama ile örneği birbirinden ayırabilir. Anlama dayalı parçalama ise metindeki başlıkları, paragrafları, cümleleri ve konu geçişlerini değerlendirir. Birbirine anlamsal olarak yakın bölümler aynı parçada tutulurken konu değişimi belirginleştiğinde yeni parça başlatılır.
Bunu yapmak için sistem genellikle metni önce daha küçük birimlere ayırır. Ardından her birim için anlamsal temsil, yani gömme vektörü oluşturur. Ardışık birimler arasındaki anlam benzerliği düşerse bu nokta bir parçalama sınırı olarak kabul edilir. Benzerlik eşiği düşükse daha büyük ve daha az parça, yüksekse daha küçük ve daha fazla parça oluşur.
Örneğin aşağıdaki varsayımsal metin üç paragraftan oluşsun:
Kod:
Excel dosyaları API ile okunabilir. Bunun için çalışma kitabı seçilir ve ilgili sayfadaki hücreler alınır.
API anahtarı güvenli biçimde saklanmalıdır. Anahtarı doğrudan iş akışına yazmak yerine ortam değişkeni veya gizli bilgi alanı kullanılmalıdır.
RAG sistemlerinde alınan hücre verisi, kullanıcı sorusuyla birlikte modele gönderilebilir. Model yalnızca getirilen bağlama dayanarak yanıt üretmelidir.
İlk paragraf Excel verisini API ile okumayı, ikinci paragraf kimlik bilgilerini korumayı, üçüncü paragraf ise RAG kullanımını anlatır. Konu geçişlerine göre ayarlanmış bir yöntem bu metni üç parçaya ayırabilir; gerçek sınırlar kullanılan gömme modeli ve eşiğe bağlıdır. Sabit uzunluklu bir yöntem ise güvenlik uyarısını ilk paragrafın ortasına veya RAG açıklamasını güvenlik bilgisinin sonuna ekleyebilir.
Örneğin üç parçalık bir bölünme seçilirse, aşağıdaki satırlar parçaların konu özetlerini gösterir; gerçek RAG parçalarında kaynak metnin ilgili cümleleri korunur. Bu konu etiketleri tek başına kaynak parçaların yerine kullanılmamalıdır:
Kod:
Parça 1: Excel dosyasının API ile okunması ve hücre verisinin alınması.
Parça 2: API anahtarının güvenli saklanması.
Parça 3: Hücre verisinin RAG bağlamı olarak kullanılması.
Buradaki amaç yalnızca parçaları küçültmek değildir. Her parçanın, kaynağından koparıldığında da ne anlattığının mümkün olduğunca anlaşılır kalmasıdır. Bu nedenle başlık, bölüm adı, belge kimliği veya sayfa bilgisi gibi üst bağlamlar çoğu sistemde parçaya eklenir.
Sabit parçalama ile farkı nedir?
Seçim, veri türüne ve arama hedefinize bağlıdır. Her durumda anlama dayalı parçalama daha iyi sonuç vermez; düzenli yapıya sahip belgelerde sabit veya başlık tabanlı parçalama daha basit ve daha öngörülebilir olabilir.
| Yöntem | Nasıl böler? | Uygun olduğu durum | Temel sınırlama |
|---|---|---|---|
| Sabit uzunluklu | Karakter, kelime veya belirteç sayısına göre | Hızlı prototipler ve düzenli metinler | Anlam veya cümle ortasında kesebilir |
| Başlık/paragraf tabanlı | Belge yapısındaki başlık ve paragraflara göre | Kılavuzlar, raporlar ve düzenli belgeler | Belgenin biçimlendirmesine bağımlıdır |
| Anlama dayalı | Birimler arasındaki anlamsal yakınlığa göre | Konu geçişleri bulunan karma metinler | Daha fazla hesaplama ve ayar gerektirir |
RAG ve otomasyon akışlarında ne işe yarar?
Bir RAG akışında tipik sıra şöyledir: belgeler alınır, metin bölümlere ayrılır, her bölüm vektörleştirilir ve bir vektör veritabanına kaydedilir. Kullanıcı soru sorduğunda soru da vektörleştirilir; en benzer parçalar seçilerek modele bağlam olarak gönderilir.
Anlama dayalı parçalama burada iki sorunu azaltmayı hedefler. Birincisi, yanıt için gerekli cümlenin başka bir parçaya dağılmasını önlemektir. İkincisi, birbirinden farklı konuların aynı parçada birleşmesi nedeniyle arama sonucunun gereksiz bilgiyle dolmasını azaltmaktır. Örneğin “API anahtarı nerede saklanmalı?” sorusunda Excel hücrelerinin nasıl okunacağını anlatan bölümün getirilmesi, parçaların konu sınırlarının iyi belirlenmediğini gösterebilir.
Buna rağmen yöntem şu sonuçları kanıtlamaz:
- Kaynak belgenin doğru veya güncel olduğunu kanıtlamaz.
- Modelin yalnızca getirilen parçaya dayanacağını garanti etmez.
- Düşük kaliteli veya belirsiz metni otomatik olarak doğru bilgiye dönüştürmez.
- Her soru için en uygun parçanın bulunacağını garanti etmez.
Başarılı bir parça nasıl anlaşılır?
İyi bir parça tek başına okunduğunda temel konusunu belli eder, soruyla doğrudan ilişkilidir ve önemli koşulları dışarıda bırakmaz. “Bu”, “yukarıdaki yöntem” veya “ikinci seçenek” gibi ifadeler parçanın önceki metne aşırı bağımlı olduğunu gösteriyorsa başlık ya da kısa bağlam bilgisi eklemek gerekir.
Örneğin “Bu değer daha sonra gönderilir” cümlesi tek başına belirsizdir. Parça şu biçimde düzenlenirse aramada daha kullanılabilir olur: “Excel API’sinden alınan hücre değeri, doğrulama adımından sonra HTTP isteğinin gövdesinde gönderilir.” İkinci ifade hem nesneyi hem işlemi açıklar; ancak bu cümlenin kaynakta bulunmayan bir bilgiyle sonradan uydurulmaması gerekir.
Anlama dayalı parçalama, özellikle farklı konuların aynı belgede arka arkaya işlendiği, başlık yapısının zayıf olduğu veya soru-cevap tabanlı bir asistanın belirli bağlamı bulması gereken metinlerde değerlendirilebilir. Başlangıçta küçük bir belge kümesi ve gerçek kullanıcı sorularından oluşan bir test seti kullanmak, eşik değerini rastgele belirlemekten daha güvenilir sonuç verir.
Son düzenleme: