Egység 3 / 11

Darabolás és dokumentumok elkészítése

Nyereség:

  • Számszerűen értékelje ki a darabméretet, az átfedést és a szemantikai csonkolási kompromisszumokat
  • Megfelelő darabolási stratégia kiválasztása különböző dokumentumtípusokhoz (PDF, táblázat, kód, chatnapló)
  • Javítsa a visszakeresés minőségét és a szűrést azáltal, hogy metaadatokat ad hozzá minden egyes darabhoz

Ez a RAG leginkább figyelmen kívül hagyott, de legdöntőbb lépése: hogyan bontja fel a dokumentumot. Ezt nevezik darabolásnak. Még ha ugyanazt a dokumentumot adja ugyanahhoz a modellhez, a rossz darabolás miatt a visszakeresés rossz darabot ad vissza, és a modell soha nem ad jó választ. Ebben az egységben bemutatjuk a töredezettségi stratégiákat, a dokumentumtípushoz igazításukat, valamint azt, hogy miként adjunk értelmes metaadatokat az egyes töredékekhez.

Miért aprítjuk?

Ennek három oka van. Először is, a beágyazó modellek egy bizonyos hosszúságú szöveget értelmes vektorokká alakítanak át; Ha egy teljes 40 oldalas fejezetet egyetlen vektorba zsúfolunk, a jelentés "elmosódik". Másodszor, csak azt a részt akarjuk megadni a modellnek, amelyre kontextusként szükség van; a teljes dokumentum átadása drága és zavaró. Harmadszor, ahhoz, hogy a visszakeresés pontos legyen, a keresőegységnek kicsinek és fókuszáltnak kell lennie.

Tehát a darab a visszakeresés legkisebb egysége. Nem lehet túl nagy vagy túl kicsi – pont megfelelő.

Darabméret és átfedési egyensúly

Két fő beállítás létezik: darabméret (hány token/szó lesz egy darabban) és átfedés (a szomszédos darabok által megosztott rész).

Nagyon kis darabok (pl. 100 token): fókuszált, de nem kapcsolódik a kontextushoz. Azt mondja, hogy "14 napig", de ami 14 nap maradt, az az előző mondatban maradt. Nagyon nagy darabok (pl. 2000 token): megőrzi a kontextust, de sok szál keveredik; a beágyazás zavarossá válik, és irreleváns témák jönnek össze.

Az átfedés megoldja a határproblémát. Ha egy mondat pontosan két rész határára esik, akkor átfedés nélkül ketté válik, és elvész a jelentése. Az 50-100 tokenek átfedése biztosítja, hogy a határon belüli információ legalább egy részben érintetlen maradjon.

Darab mérete

Előny

Hátrány

megfelelő tartalom

Kicsi (100-250 token)

Nagy érzékenység, fókuszált

A kontextus megszakadhat

GYIK, rövid cikkek, meghatározások

Közepes (300-600 token)

Egyenleg; a legtöbb forgatókönyv

Eljárások, politikai szövegek

Nagy (800-1500 token)

Kontextus integritása

homályos beágyazás

Narratíva, hosszú magyarázatok

Tipp: Ha nem tudja, hol kezdje, kezdje 400-500 token darabbal és 50-80 token átfedéssel; majd mérje meg és állítsa be saját adataival. A "megfelelő" méret nem univerzális, a kontextustól függ.

Darabolási stratégiák

Rögzített méretű: N tokenenként levágja a szöveget. Egyszerű és gyors, de megszakíthatja a mondat közepét.

Elválasztó alapú (rekurzív/elválasztó): Felosztás, majd mondathatárok szerint; Jobban megőrzi a jelentés épségét. A legtöbb termelési rendszer ezzel kezdődik.

Szemantikai darabolás: Megvizsgálja a mondatok beágyazódásait, és felosztja azokat ott, ahol az alanyváltás történik. Ez a legjobb minőségű, de legdrágább módszer; Nagy mennyiségek esetén a tranzakciós költségek nőnek.

Struktúra-tudatos: Dokumentumstruktúrát használ, például címsorokat, szakaszokat, táblázatokat. Például egy Markdown dokumentum fejlécek szerinti felosztása biztosítja, hogy minden rész saját fejlécet hordozzon.

Dokumentumtípus szerinti adaptáció

Nem minden dokumentum egyforma. A stratégia típusonként változik:

  • PDF/irányelv szövege: Könyvjelző alapú, közepes méretű. Az oldal tetején/alsó ismétlődéseinek törlése (fejléc/lábléc).
  • Táblázatok: Ne húzzuk ki a sort a szövegkörnyezetből; tartsa meg az egyes sorokat a fejlécinformációkkal ("Cikk: X, Ár: Y, Raktárkészlet: Z"). A nyers táblázat átalakítása egyszerű szöveggé gyakran elengedhetetlen.
  • Kód: Felosztás funkció/osztályhatárok szerint; Ne vágj ki egy funkciót az útból.
  • Chat/jegyrögzítés: Üzenetenként vagy beszélgetési körönként felosztva; Legyen tisztában azzal, hogy ki mit mondott.

# zárójel alapú darabolás (fogalmi) chunks = bol( text, target_size=450, # token overlap=70, # token brackets=["\n\n", "\n", ". ", " "] # bekezdés első, szó utolsó)

Adjon hozzá metaadatokat minden sávhoz

A darabolás nem csak „oszt”; minden egyes darab gazdagítása. A számhoz csatolt minden címke aranyat ér a jövőbeni szűrés és forráshivatkozás érdekében.

# Enriched chunk (conceptual){ "text": "Az éves fizetett szabadság 14 nap 1-5 év szolgálati idővel...", "metadata": { "source": "ik_el_kitabi_v7.pdf", "section": "5.2 Annual Leave", "page": 23, "date": "2025", "deternal" "0":", }}

Egy másik hatékony technika a kontextuális fejléc hozzáadása: minden egyes darab elejére írja be annak a fejezetnek a címét, amelyhez tartozik. Így még egy olyan szétválasztott darab is, mint a „14 napra”, jobban beágyazható és értelmesebb, mint „Éves szabadság – 14 nap”.

Gyenge darabolás / Erős darabolás

Gyenge (vak hardcut, nincs metaadat):

Szöveg csonkolása 1000 karakterenként. Csak a szöveg maradjon meg.# Eredmény: a táblázatok középen kettéválnak, a "14 nap" szövegkörnyezet nélkül marad,# nem tudni melyik dokumentumból származott, szűrőt nem lehet csinálni.

Erőteljes (struktúra-tudatos + fejléc + metaadatok):

Ossza fel a dokumentumot címsorok szerint; szakaszcím hozzáadása minden részhez; forrás, oldal, dátum és adatvédelmi metaadatok csatolása; táblázatsorokat egyszerű szöveggé alakítani fejlécükkel.# Eredmény: fókuszált, kontextuális, szűrhető, forrásolható.

Három mini tok

1. eset – Festési katasztrófa. A 200 oldalas árlistát egy pénzügyi csapat vakon kemény vágással osztotta fel; táblázat sorai véletlenszerűen lettek felosztva. "Mi az X termék ára?" A modell rossz sort olvasott és rossz árat adott (12 esetből 9 hibás). Amikor a táblázat sorait egyszerű szöveggé konvertáltam "Termék: … | Ár: … | Egység: …" formátumban, a hiba 0-ra csökkent a 12-ből.

2. eset – Rendkívül nagy darab. A wikiben minden oldal egyetlen darabból áll (egyesek szerint 3000 token). A beágyazás elmosódott, mert egy oldalon van "szabadság", "túlóra" és "bérszámfejtés"; A szabadság kérdésével kapcsolatban a munkaidő-rész is szóba került. Amikor az oldalakat cím szerint közepes méretűre osztották, a visszahívás@5 64%-ról 91%-ra nőtt.

3. eset – Csonka mondat átfedés nélkül. 250 token fix vágás egy jogi csapat számára, nincs átfedés. Egy kritikai meghatározás pont két rész határára esett és kettévált; Sem az egyik, sem a másik nem tartalmazza a teljes választ. Amikor 60 token átfedést adtunk hozzá, ugyanaz a definíció egy darabban érintetlen maradt, és a helyes választ adtuk vissza.

Gyakori hibák

  • Vak rögzített vágás: mondatokat és táblázatokat oszt fel középen; értelme elvész.
  • Az átfedés nullán hagyása: A határra eső információ megoszlik és elveszik.
  • Nem ad hozzá metaadatokat: A szűrés és a forrásmegjelenítés lehetetlenné válik.
  • Táblázatok nyersen hagyása: A modell nem tudja feloldani a táblázat szerkezetét; A sorokat sima szöveggé alakíthatja.
  • Egyetlen stratégia előírása: a PDF, a kód és a táblázat nem ugyanazzal a módszerrel van felosztva; Alkalmazkodni a műfajhoz.
Figyelem: Ne állítsa be egyszer a Chunking-ot, és ne felejtse el. Mérje meg újra a visszakeresés minőségét, amint új dokumentumtípusok érkeznek (jegyek új rendszerből, beszkennelt PDF-ek). A rossz bemeneti adatok rossz választ jelentenek ("szemét be, szemét ki").

Összefoglalva

  • A darab a visszakeresés legkisebb egysége; Se nem túl nagy, se nem túl kicsi – a tartalom szerint kell egyensúlyba hozni.
  • A darab mérete a fókusz-kontextus egyensúlyát jelzi; Az átfedés kezeli a határveszteséget.
  • A legtöbb generációs rendszer kiindulópontja a zárójel-alapú és szerkezet-tudatos darabolás; a szemantikai darabolás jó minőségű, de drága.
  • Az olyan típusoknak, mint a táblázat, a szkript és a chat, saját stratégiákra van szükségük; A táblázatok átalakítása egyszerű szöveggé.
  • Forrás/dátum/fejezet/adatvédelmi metaadatok és szakaszcím hozzáadása minden számhoz; Ez a szűrés és hivatkozás alapja.

Pályázati feladat

A kiválasztott dokumentum egy részét három különböző módon bonthatja fel: (1) 200 tokenből álló kis darabokra, (2) 500 tokenből álló közepes darabokra (70 token átfedés), (3) nagy darabokra. Tegye fel ugyanazt a 3 kérdést minden stratégiához, kézzel jelölje meg, hogy melyik részt kell bevinni, és írja le az indoklást, hogy melyik stratégia működik a legjobban az adott dokumentumhoz. Ezután adjon hozzá legalább négy metaadatmezőt és egy „fejezetcímet” minden sávhoz. Ha a dokumentum tartalmaz táblázatot, alakítsa át a táblázat sorát egyszerű szöveggé "mező:érték" formátumban.

ellenőrző lista

  • [ ] Azt tudom mondani, hogy a darab a visszakeresés legkisebb egysége, a méret pedig a fókusz-kontextus egyensúlya.
  • [ ] Tudom, hogy az átfedés miért akadályozza meg a határvesztést.
  • [ ] Meg tudom különböztetni a zárójel alapú, a szemantikai és a szerkezettudatos darabolást.
  • [ ] Tudom adaptálni a stratégiát asztalhoz, kódhoz és chathez.
  • [ ] A visszakeresést úgy erősítem, hogy metaadatokat és fejezetcímeket adok minden számhoz.