Kasu:
- Hinnake numbriliselt tüki suurust, kattumist ja semantilist tükeldamise kompromisse
- Erinevate dokumenditüüpide jaoks sobiva tükeldamise strateegia valimine (PDF, tabel, kood, vestluslogi)
- Tugevdage otsingu kvaliteeti ja filtreerimist, lisades igale tükile metaandmeid
See on RAG-i kõige tähelepanuta jäetud, kuid kõige otsustavam samm: kuidas te dokumenti jagate. Seda nimetatakse tükeldamiseks. Isegi kui annate samale mudelile sama dokumendi, tagastab otsimine halva tükeldamise tõttu vale osa ja mudel ei anna kunagi head vastust. Selles üksuses käsitleme killustamisstrateegiaid, nende kohandamist vastavalt dokumenditüübile ja igale fragmendile tähenduslike metaandmete lisamist.
Miks me purustame?
Põhjuseid on kolm. Esiteks teisendavad manustamismudelid teksti kuni teatud pikkuseni tähendusrikkaks vektoriks; Kui terve 40-leheküljeline peatükk on surutud ühte vektorisse, muutub tähendus "häguseks". Teiseks tahame anda mudelile ainult selle osa, mida on kontekstina vaja; kogu dokumendi üleandmine on kallis ja häirib tähelepanu. Kolmandaks, et otsimine oleks täpne, peab otsinguüksus olema väike ja keskendunud.
Seega on tükk kõige väiksem otsimisühik. See ei tohiks olla liiga suur ega liiga väike – täpselt õige.
Tüki suurus ja kattumise tasakaal
Peamiselt on kaks seadet: tüki suurus (mitu märke/sõnu ühes tükis on) ja kattumine (naabertükkide jagatud osa).
Väga väikesed tükid (nt 100 märki): keskendunud, kuid kontekstist lahti ühendatud. Ta ütleb "14 päevaks", aga see, mis 14 päeva on, jääb eelmisesse lausesse. Väga suured tükid (nt 2000 märki): säilitab konteksti, kuid paljud lõimed on segatud; põimimine läheb segaseks ja ebaolulised teemad tulevad kokku.
Kattuvus lahendab piiriprobleemi. Kui lause langeb täpselt kahe osa piirile, jagatakse see kattumata kaheks ja selle tähendus kaob. 50-100 märgi kattumine tagab, et limiidi alla jääv teave jääb vähemalt ühes osas puutumatuks.
Tüki suurus
Eelis
Puudus
asjakohane sisu
Väike (100–250 märki)
Kõrge tundlikkus, keskendunud
Kontekst võib katkeda
KKK, lühiartiklid, definitsioonid
Keskmine (300–600 märki)
Tasakaal; enamik stsenaariume
—
Protseduurid, poliitikatekstid
Suur (800–1500 märki)
Konteksti terviklikkus
udune manustamine
Narratiiv, pikad selgitused
Näpunäide. Kui te ei tea, kust alustada, alustage 400–500 märgi tükist ja 50–80 märgi kattumisest. seejärel mõõta ja kohandada oma andmetega. "Õige" suurus ei ole universaalne, see sõltub kontekstist.
Tükeldatud strateegiad
Fikseeritud suurus: kärbib teksti iga N märgi järel. See on lihtne ja kiire, kuid võib katkestada lause keskpaiga.
Eraldajapõhine (rekursiivne/eraldaja): jagab lõigu ja seejärel lause piiride järgi; See säilitab paremini tähenduse terviklikkuse. Enamik tootmissüsteeme algab sellest.
Semantiline tükeldamine: see vaatleb lausete manuseid ja jagab need seal, kus toimub subjekti muutus. See on kõrgeima kvaliteediga, kuid kõige kallim meetod; Suurte mahtude korral suurenevad tehingukulud.
Struktuuriteadlik: kasutab dokumendi struktuuri, näiteks pealkirju, jaotisi, tabeleid. Näiteks Markdowni dokumendi jagamine pealkirjade kaupa tagab, et iga osa kannab oma pealkirja.
Kohandamine dokumenditüübi järgi
Kõik dokumendid ei ole ühesugused. Strateegia on tüübiti erinev:
- PDF/poliitika tekst: järjehoidjapõhine, keskmise suurusega. Lehe üla/ala korduste kustutamine (päis/jalus).
- Tabelid: Ärge võtke rida kontekstist välja; säilitage iga rida päise teabega ("Kaup: X, Hind: Y, Laoseis: Z"). Toortabeli teisendamine lihttekstiks on sageli hädavajalik.
- Kood: jagatud funktsiooni/klassi piiride järgi; Ärge katkestage funktsiooni.
- Vestluse/piletite salvestamine: jagatud sõnumi või vestlusringiga; Säilitage teadmised selle kohta, kes mida ütles.
# sulud (kontseptuaalsed) tükid = bol( text, target_size=450, # token overlap=70, # token brackets=["\n\n", "\n", ". ", " "] # lõik esimene, sõna viimane)
Lisage igale rajale metaandmed
Tükeldamine ei ole lihtsalt "jaga"; on rikastada iga tükki. Iga silt, mille rajale kinnitate, on edaspidiseks filtreerimiseks ja allikale viitamiseks kulda väärt.
# Enriched chunk (conceptual){ "text": "Iga-aastane tasustatud puhkus on 14 päeva 1–5-aastase tööstaažiga...", "metadata": { "source": "ik_el_kitabi_v7.pdf", "section": "5.2 Annual Leave", "page": 23, "date": "2025", "IK"-":", }}
Teine võimas tehnika on kontekstuaalse päise lisamine: iga osa algusesse selle peatüki pealkirja kirjutamine, kuhu see kuulub. Seega on isegi lahutatud tükk nagu "14 päevaks" paremini manustatud ja sisukam kui "Aastapuhkus – 14 päeva".
Nõrk tükeldamine / tugev tükeldamine
Nõrk (pime kõva lõige, metaandmed puuduvad):
Kärbi teksti iga 1000 tähemärgi järel. Hoia alles ainult tekst.# Tulemus: tabelid on keskelt poolitatud, "14 päeva" jääb ilma kontekstita,# pole teada, millisest dokumendist see tuli, filtrit teha ei saa.
Võimas (struktuuriteadlik + päis + metaandmed):
Jaga dokument pealkirjade kaupa; lisage igale osale jaotise pealkiri; lisage allika, lehe, kuupäeva ja privaatsuse metaandmed; teisendada tabeliread nende päistega lihttekstiks.# Tulemus: fokusseeritud, kontekstuaalne, filtreeritav, allikas.
Kolm miniümbrist
Juhtum 1 – maalimiskatastroof. Finantsmeeskond jagas 200-leheküljelise hinnakirja pimesi kõva lõikamisega; tabeli read olid juhuslikult jagatud. "Mis on toote X hind?" Mudel luges vale rea ja andis vale hinna (9 juhul 12-st on valed). Kui teisendasin tabeli read lihttekstiks vormingus "Toode: … | Hind: … | Ühik: …", vähenes viga 0-ni 12-st.
Juhtum 2 – väga suur tükk. Vikis koosneb iga leht ühest tükist (mõni ütleb, et 3000 märgist). Manustatud on hägune, kuna ühel lehel on "puhkus", "ületunnid" ja "palk"; Puhkuse küsimusega seoses tuli mängu ka tööaja osa. Kui lehed jaotati pealkirja järgi keskmise suurusega lehtedeks, suurenes meeldetuletus@5 64%-lt 91%-le.
3. juhtum – kärbitud lause ilma kattumiseta. 250 märgi fikseeritud kärpe juriidilise meeskonna jaoks, kattumine puudub. Kriitiline määratlus langes otse kahe osa piirile ja jagunes kaheks; Ei üks ega teine ei sisalda täielikku vastust. Kui lisati 60 märgi kattuvust, jäi sama definitsioon ühes tükis puutumata ja õige vastus tagastati.
Levinud vead
- Pime fikseeritud lõige: poolitab laused ja tabelid keskel; tähendus on kadunud.
- Kattuvuse jätmine nulli: piirile langev teave jaguneb ja kaob.
- Metaandmeid ei lisata: filtreerimine ja allika kuvamine muutuvad võimatuks.
- Tabelite töötlemata jätmine: mudel ei suuda tabeli struktuuri lahendada; Teisenda read lihttekstiks.
- Ühe strateegia kehtestamine: PDF, kood ja tabel ei ole jagatud sama meetodiga; Kohanda žanriga.
Ettevaatust. Ärge määrake Chunking üks kord ja unustage see. Uute dokumenditüüpide saabumisel (piletid uuest süsteemist, skannitud PDF-id) mõõtke uuesti otsingu kvaliteeti. Halvad sisendandmed tähendavad halba vastust ("prügi sisse, prügi välja").
Kokkuvõttes
- Tükk on kõige väiksem otsimisühik; Ei liiga suur ega liiga väike – see peaks olema tasakaalus vastavalt sisule.
- Tüki suurus näitab fookuse ja konteksti tasakaalu; Kattuvus juhib piirikadu.
- Klambripõhine ja struktuuriteadlik tükeldamine on enamiku genereerimissüsteemide lähtepunkt; semantiline tükeldamine on hea kvaliteediga, kuid kallis.
- Sellised tüübid nagu tabel, skript ja vestlus nõuavad oma strateegiaid; Tabelite teisendamine lihttekstiks.
- Lisage igale rajale allika/kuupäeva/peatüki/privaatsuse metaandmed ja jaotise pealkiri; See on filtreerimise ja tsiteerimise aluseks.
Rakenduse ülesanne
Jagage valitud dokumendi osa kolmeks erinevaks viisiks: (1) väikesed tükid 200 märgist, (2) keskmised tükid 500 märgist (70 märgi kattuvad), (3) üksikud suured tükid. Esitage iga strateegia kohta samad 3 küsimust, märkige käsitsi, milline osa tuua, ja kirjutage üles põhjendus, milline strateegia selle dokumendi jaoks kõige paremini sobib. Seejärel lisage igale rajale vähemalt neli metaandmete välja ja "peatüki pealkiri". Kui dokument sisaldab tabelit, teisendage tabeli rida lihttekstiks vormingus "väli:väärtus".
kontrollnimekiri
- [ ] Võin öelda, et tükk on otsingu väikseim ühik ja suurus on fookuse ja konteksti tasakaal.
- [ ] Ma tean, miks kattumine hoiab ära piiride kadumise.
- [ ] Oskan eristada sulgudepõhist, semantilist ja struktuuriteadlikku tükeldamist.
- [ ] Oskan kohandada strateegiat tabeli, koodi ja vestluse jaoks.
- [ ] Tugevdan otsimist, lisades igale loole metaandmed ja peatüki pealkirja.