Chunking

Představte si chunking jako rozstříhání tlusté knihy na menší kartičky – každá obsahuje právě jednu ucelenou myšlenku nebo odstavec. Když pak chcete najít konkrétní informaci, nelistujete celou knihou. Sáhnete přímo po té kartičce, která se vašemu dotazu věcně nejvíc podobá. Bez tohoto rozdělení by AI musela při každém dotazu probírat celé dokumenty najednou, narazila by na limity své paměti a odpovědi by byly méně přesné.

Chunking je technika dělení delšího textového dokumentu na menší, sémanticky soudržné části – tzv. chunks. Jde o klíčový předzpracovací krok v architektuře Retrieval-Augmented Generation (RAG) a obecně v jakémkoli systému, který staví na vektorovém vyhledávání. Důvod je dvojí: jazykové modely mají omezené kontextové okno, takže do něj nelze vložit celé rozsáhlé dokumenty, a zároveň přesnost vyhledávání klesá, pokud se v jedné indexované jednotce mísí příliš mnoho různých témat. Krátký, tematicky čistý chunk se v sémantickém vyhledávání nachází mnohem spolehlivěji než dlouhá pasáž, která zmiňuje pět věcí zároveň.

V praxi existuje několik strategií, jak dokument rozdělit. Nejjednodušší je dělení podle pevné velikosti (například 512 tokenů na jeden chunk), které je rychlé, ale často přeruší myšlenku uprostřed věty. Sliding window k tomu přidává překryv (overlap) mezi sousedními chunks, aby se kontext neztratil na hranici. Pokročilejší strukturní chunking respektuje přirozenou strukturu dokumentu a dělí podle nadpisů, odstavců nebo seznamů. Nejsofistikovanější je sémantický chunking, který hranice mezi bloky umisťuje tam, kde se v textu mění téma – ne tam, kam padne číslovaný limit. Každý vzniklý chunk se následně převede embedding modelem na vektor a uloží do vektorové databáze, kde se při dotazu hledá nejpodobnější.

Je pro vás článek užitečný a čerpáte z něj? Zkopírujte si citaci