Yapay Zeka

Chunking Nedir? Yapay Zekâ Büyük Belgeleri Neden Parçalara Ayırıyor?

Chunking, belgeleri daha küçük parçalara ayırarak işlenebilir ve aranabilir hâle getirme yöntemidir. Özellikle RAG, anlamsal arama ve belge tabanlı asistanlarda bilgi hazırlama sürecinin önemli adımlarından biridir.

Chunking Nedir?

Chunking, bir metni veya belgeyi belirli ölçütlere göre daha küçük bölümlere ayırma işlemidir. Oluşturulan her bölüme chunk, yani parça adı verilir.

Parçalar sabit uzunlukta hazırlanabileceği gibi cümlelere, paragraflara, başlıklara veya anlam değişimlerine göre de oluşturulabilir. Amaç, uygulamanın ihtiyaç duyduğu bilgiyi uygun büyüklükte birimlerle işlemesini sağlamaktır.

Her chunking yöntemi anlam bütünlüğünü aynı ölçüde korumaz. Basit bir uzunluk sınırı uygulamakla belgenin yapısını dikkate almak farklı sonuçlar verebilir.

Chunking Nasıl Çalışır?

Vektör araması kullanan bir RAG uygulamasında örnek süreç şöyledir:

  1. Belge okunur: PDF, web sayfası veya metin dosyasından içerik çıkarılır.

  2. Metin düzenlenir: Gereksiz tekrarlar ve biçimlendirme sorunları temizlenir.

  3. Parçalar oluşturulur: Seçilen stratejiye göre belge bölünür.

  4. Embedding hazırlanır: Her parça sayısal bir vektörle temsil edilir.

  5. İndeksleme yapılır: Parçalar, vektörleri ve kaynak bilgileriyle kaydedilir.

  6. İlgili içerik getirilir: Kullanıcının sorusuna uygun parçalar seçilerek modele sunulur.

Microsoft’un bütünleşik vektörleştirme dokümantasyonu da belge bölme ve embedding oluşturmayı ayrı aşamalar olarak ele alır. Chunking tek başına arama yapmaz veya cevap üretmez.

Neden Bütün Belge Modele Gönderilmiyor?

Dil modellerinin aynı işlemde değerlendirebildiği içerik, bağlam penceresiyle sınırlıdır. Embedding modellerinin de girdi uzunluğu sınırları bulunabilir.

Belge bu sınırlara sığsa bile tamamını göndermek her zaman gerekli değildir. İlgisiz bölümler token kullanımını artırabilir ve soruyla ilgili bilginin seçilmesini zorlaştırabilir.

Bununla birlikte chunking her durumda daha düşük toplam maliyet sağlamaz. Çok sayıda parça oluşturmak, embedding ve depolama ihtiyacını artırabilir. Denge, belgenin yapısına ve sorguların niteliğine göre kurulmalıdır.

Başlıca Chunking Yöntemleri Nelerdir?

Sabit Uzunlukta Bölme

Metin, belirli sayıda karakter veya token içeren parçalara ayrılır. Uygulaması kolaydır; ancak cümle veya bölüm sınırlarını kesebilir.

Karakter sayısı ile token sayısı aynı değildir. Kullanılan aracın uzunluğu hangi birimle ölçtüğü kontrol edilmelidir.

Cümle ve Paragraf Temelli Bölme

Metnin doğal sınırları korunmaya çalışılır. Birbiriyle bağlantılı cümlelerin aynı parçada kalması, içeriğin anlaşılmasını kolaylaştırabilir. Ancak çok uzun paragraflar için ek bölme gerekebilir.

Recursive Chunking

Belge önce daha büyük sınırlar üzerinden bölünür. Parça hâlâ uzunsa daha küçük ayırıcılara geçilir.

Örneğin önce paragraflar, ardından daha küçük metin birimleri dikkate alınabilir. Bu yaklaşım, boyut sınırını uygularken metnin yapısını mümkün olduğunca korumayı amaçlar.

Semantic Chunking

Anlamsal bölme, cümleler arasındaki anlam ilişkilerinden yararlanarak parça sınırlarını belirler. Bazı uygulamalar bu amaçla embedding benzerliğini kullanır.

Ancak daha fazla hesaplama gerektirebilir ve her veri kümesinde basit yöntemlerden daha iyi sonuç vereceği garanti değildir.

Chunk Overlap Nedir?

Chunk overlap, komşu parçalar arasında belirli miktarda içeriğin tekrar edilmesidir. Amaç, parça sınırında bölünen bilginin bağlamını korumaya yardımcı olmaktır.

Örneğin 500 tokenlık parçalar ve 100 tokenlık örtüşme kullanılan basit bir düzende:

  • İlk parça, 1–500 arasındaki tokenları içerir.

  • İkinci parça, 401–900 arasındaki tokenları içerir.

  • Böylece 100 token iki parçada da bulunur.

Bu yaklaşım bağlam kaybını azaltabilir; ancak tekrar eden içeriği, depolama ihtiyacını ve işlem maliyetini de artırabilir. Daha fazla overlap her zaman daha iyi sonuç anlamına gelmez.

En İyi Chunk Boyutu Nedir?

Bütün belgeler için geçerli tek bir ideal boyut yoktur. Seçim yapılırken şu unsurlar değerlendirilmelidir:

  • Belgenin yapısı ve kullanılan dil.

  • Kullanıcıların soracağı sorular.

  • Embedding modelinin girdi sınırı.

  • Cevap için gerekli bağlam miktarı.

  • Getirilecek parça sayısı ve modelin bağlam kapasitesi.

Çok küçük parçalar, açıklamayla ilişkili koşulları ayırabilir. Çok büyük parçalar ise gereksiz bilgileri beraberinde getirebilir. Başlık ve kaynak bilgisinin parçalarla birlikte tutulması, bağlamın korunmasına yardımcı olabilir.

Chunking, Splitting ve Embedding Arasındaki Fark Nedir?

Chunking ve text splitting, teknik dokümantasyonda sıklıkla aynı veya örtüşen işlemler için kullanılır. Splitting’in yalnızca fiziksel, chunking’in ise mutlaka anlamı koruyan bölme olduğu şeklinde evrensel bir ayrım yoktur. LangChain ve LlamaIndex, farklı parça oluşturma yöntemlerini “splitter” adıyla sunar.

Embedding ise bölmeden farklıdır: Metni sayısal bir temsile dönüştürür. Chunking hangi metin parçalarının işleneceğini belirlerken embedding bu parçaların vektörlerle karşılaştırılabilmesini sağlar.

Başarılı chunking, belgenin yalnızca küçük parçalara ayrılması değildir. İlgili bilginin bulunmasını kolaylaştırırken cevabı anlamlı kılan bağlamın da korunması gerekir. Bu nedenle yöntem, gerçek sorular ve elde edilen sonuçlar üzerinden değerlendirilmelidir.

Kaynaklar: Microsoft Learn — Chunk Documents ve Integrated Vectorization; LangChain — TextSplitter ve Tokenizer dokümantasyonu; LlamaIndex — Node Parser Modules, Semantic Splitter ve SentenceSplitter; n8n — Recursive Character Text Splitter dokümantasyonu.

Editör Notu

Bu içerik, kamuya açık yapay zekâ kaynakları ve resmî teknik dokümantasyonlardan yararlanılarak hazırlanmış bir araştırma ve değerlendirme yazısıdır. İçerikte yer alan değerlendirmeler editoryal yorum niteliğindedir. Chunking yöntemlerinin başarısı; belge yapısına, kullanılan modellere ve uygulamanın ihtiyaçlarına göre değişebilir.