Пайдалар:
- Бөлүмдүн өлчөмүн, бири-бирин кайталоону жана семантикалык бөлүктөрүн сандык жактан баалаңыз
- Документтин ар кандай түрлөрү үчүн ылайыктуу топтоочу стратегияны тандоо (PDF, таблица, код, чат журналы)
- Ар бир бөлүккө метадайындарды кошуу менен издөө сапатын жана чыпкалоону күчөтүңүз
Бул RAGдагы эң көз жаздымда калган, бирок эң чечүүчү кадам: документти кантип бузуп жатасыз. Бул чыңдоо деп аталат. Бир эле документти бир эле моделге берсеңиз да, туура эмес кесилгендиктен, издөө туура эмес бөлүгүн кайтарып берет жана модель эч качан сонун жооп бербейт. Бул бөлүмдө биз фрагментация стратегияларын, аларды документтин түрүнө жараша кантип адаптациялоону жана ар бир фрагментке кандай мааниге ээ метаберилиштерди кошууну карайбыз.
Эмне үчүн биз майдалайбыз?
Мунун үч себеби бар. Биринчиден, кыстаруу моделдери белгилүү бир узундукка чейинки текстти маанилүү векторго айландырышат; Эгерде бүтүндөй 40 барактан турган бөлүм бир векторго тыгылып калса, анда анын мааниси “булуңдап” калат. Экинчиден, биз моделге контекст катары керектүү бөлүгүн гана бергибиз келет; бүт документти тапшыруу кымбат жана алаксытат. Үчүнчүдөн, издөө так болушу үчүн, издөө бирдиги кичинекей жана багытталган болушу керек.
Ошентип, кесек - издөөнүн эң кичинекей бирдиги. Бул өтө чоң же өтө кичинекей болбошу керек - туура.
Бөлүмдүн өлчөмү жана кайталануу балансы
Эки негизги жөндөө бар: кесектин өлчөмү (бир бөлүктүн ичинде канча токен/сөз болот) жана кабатталыш (коңшу бөлүктөр менен бөлүшүлгөн бөлүк).
Абдан кичинекей бөлүктөр (мисалы, 100 токендер): багытталган, бирок контексттен ажыратылган. “14 күнгө” дейт, бирок 14 күн деген эмне, мурунку сүйлөмдө калды. Абдан чоң бөлүктөр (мисалы, 2000 токендер): контекстти сактайт, бирок көптөгөн жиптер аралаштырылган; кыстаруу аралашып, тиешеси жок темалар биригет.
Кайталануу чек ара маселесин чечет. Сүйлөм эки бөлүктүн чегине так түшсө, бири-бирин кайталабастан экиге бөлүнүп, мааниси жоголот. 50-100 токендердин бири-бирине дал келиши чектин чегине түшкөн маалымат жок дегенде бир бөлүгүндө сакталып калышын камсыздайт.
Чоң өлчөмү
Артыкчылык
Кемчилик
ылайыктуу мазмун
Кичинекей (100-250 токендер)
Жогорку сезгичтик, багытталган
Контекст бузулушу мүмкүн
Көп берилүүчү суроолор, кыска макалалар, аныктамалар
Орто (300-600 токен)
Баланс; көпчүлүк сценарийлер
—
Процедуралар, саясаттын тексттери
Чоң (800-1500 токендер)
Контексттин бүтүндүгү
бүдөмүк кыстаруу
Баяндама, узун түшүндүрмө
Кеңеш: Эгер сиз эмнеден баштоону билбей жатсаңыз, 400-500 токен бөлүгү жана 50-80 токендин дал келиши менен баштаңыз; анда өлчөө жана өз маалыматтары менен тууралоо. "Туура" өлчөм универсалдуу эмес, ал контекстке жараша болот.
Бөлүү стратегиялары
Туруктуу өлчөм: текстти ар бир N белгиден кыркып салат. Бул жөнөкөй жана тез, бирок сүйлөмдүн ортосун үзгүлтүккө учуратышы мүмкүн.
Бөлүүчүгө негизделген (рекурсивдүү/бөлүүчү): абзацка, анан сүйлөмдүн чектерине ылайык бөлөт; Маанинин бүтүндүгүн жакшыраак сактайт. Көпчүлүк өндүрүш системалары ушундан башталат.
Семантикалык бөлүкчөлөр: Ал сүйлөмдөрдүн кириштерин карап, аларды тема өзгөргөн жерде бөлөт. Бул эң сапаттуу, бирок эң кымбат ыкма; Чоң көлөмдө транзакциялык чыгымдар көбөйөт.
Структурадан кабардар: аталыштар, бөлүмдөр, таблицалар сыяктуу документ структурасын колдонот. Мисалы, Markdown документин темалар боюнча бөлүү ар бир бөлүктүн өз аталышын алып жүрүүсүн камсыздайт.
Документтин түрү боюнча адаптациялоо
Ар бир документ бирдей эмес. Стратегия түрүнө жараша өзгөрөт:
- PDF/саясат тексти: Кыстармаларга негизделген, орточо өлчөмдө. Барактын үстүнкү/төмөнкү кайталоолорун тазалоо (башкы колонтитул).
- Таблицалар: сызыкты контексттен чыгарбагыла; ар бир сапты баш маалымат менен сактаңыз ("Персе: X, Баасы: Y, Сток: Z"). Таблицаны жөнөкөй текстке айландыруу көбүнчө маанилүү.
- Код: Функция/класс чектери боюнча бөлүү; Функцияны жолдон чыгарбаңыз.
- Чат/билет жазуу: Билдирүү же сүйлөшүү раунду боюнча бөлүү; Ким эмне дегенин билиңиз.
# кашаанын негизинде кесилген (концептуалдык) бөлүктөр = bol( text, target_size=450, # token overlap=70, # token brackets=["\n\n", "\n", ". ", " "] # абзац биринчи, акыркы сөз)
Ар бир трекке метадайындарды кошуу
Бөлүнүү жөн эле "бөлүү" эмес; ар бир бөлүгүн байытуу болуп саналат. Сиз трекке тиркөөчү ар бир тег келечекте чыпкалоо жана булакка шилтеме берүү үчүн алтын менен бааланат.
# Байытылган бөлчөк (концептуалдык){ "текст": "Жылдык акы төлөнүүчү өргүү 1-5 жылдык эмгек стажы менен 14 күндү түзөт...", "металымат": { "булак": "ik_el_kitabi_v7.pdf", "бөлүм": "5.2 Жылдык өргүү", "бет": 23, "дата": "IK": "2-бөлүм" "купуялык": "ички" }}
Дагы бир күчтүү ыкма - контексттик башты кошуу: ар бир бөлүмдүн башында ал тиешелүү бөлүмдүн аталышын жазуу. Ошентип, "14 күн бою" сыяктуу ажырагыс чыгарма да "Жылдык өргүү - 14 күн" катары жакшыраак камтылган жана андан да маанилүү.
Алсыз Чунинг / Стронг Чунинг
Алсыз (сокур ката, метадайындар жок):
Текстти ар бир 1000 белгиден кыскартуу. Текстти гана сактаңыз.# Натыйжа: таблицалар ортосунан бөлүнөт, "14 күн" контекстсиз калат,# кайсы документтен келгени белгисиз, чыпка жасоого болбойт.
Күчтүү (түзүмүн билген + баш + метадайындар):
Документти аталыштар боюнча бөлүңүз; ар бир бөлүккө бөлүмдүн аталышын кошуу;булакты, баракты, датаны жана купуялык метадайындарын тиркеңиз; таблицаларды алардын аталыштары менен жөнөкөй текстке айландырыңыз.# Натыйжа: багытталган, контексттик, чыпкалоочу, булактуу.
Үч мини Case
1-жагдай - сүрөт кырсыгы. А каржы командасы сокур катуу кесүү менен 200 барак прейскурант бөлүнгөн; столдун катарлары туш келди бөлүнгөн. "Х продуктунун баасы канча?" Модель туура эмес сапты окуп, туура эмес бааны берген (12 учурдун 9у туура эмес). Мен таблица саптарын "Продукт: … | Баасы: … | Бирдиги: …" форматында жөнөкөй текстке айландырганда ката 12ден 0гө чейин төмөндөдү.
2-жагдай - Өтө чоң кесек. Викиде ар бир барак бир бөлүктөн турат (айрымдары 3000 токен деп айтышат). Кыстаруу бүдөмүк, анткени бир баракта "эс алуу", "ашыкча иштөө" жана "эмгек акы" бар; Жумуш убактысы бөлүмү да өргүү маселеси боюнча оюнга кирди. Барактар аталышы боюнча орто өлчөмдөгүгө бөлүнгөндө, recall@5 64% дан 91% га чейин көбөйгөн.
3-жагдай - Үчүнчүсү жок кыскартылган сүйлөм. Юридикалык топ үчүн 250 токен белгиленген кесилген, бири-бирине дал келбейт. Критикалык аныктама эки бөлүктүн чегине туура келип, экиге бөлүнгөн; Биринде да, экинчисинде да толук жооп жок. 60 токендин бири-бирине дал келиши кошулганда, ошол эле аныктама бир бөлүктө сакталып, туура жооп кайтарылды.
Жалпы каталар
- Сокур туруктуу кесүү: Сүйлөмдөрдү жана таблицаларды ортого бөлөт; мааниси жоголот.
- Кайталанууну нөлгө калтыруу: Чек арага түшкөн маалымат бөлүнөт жана жоголот.
- Метадайындарды кошпогондо: чыпкалоо жана булакты көрсөтүү мүмкүн эмес болуп калат.
- Таблицаларды чийки калтыруу: Модель столдун структурасын чече албайт; Саптарды жөнөкөй текстке айландырыңыз.
- Бир стратегияны таңуулоо: PDF, код жана таблица бир эле ыкма менен бөлүнбөйт; Жанрга ылайыкташуу.
Эскертүү: Chunkingди бир жолу коюп, аны унутпаңыз. Документтин жаңы түрлөрү келгенден кийин издөө сапатын кайра өлчөңүз (жаңы системадан билеттер, сканерленген PDF файлдары). Начар киргизилген маалыматтар жаман жоопту билдирет ("таштанды кирди, таштанды чыгаруу").
Кыскача айтканда
- Chunk - издөөнүн эң кичинекей бирдиги; Өтө чоң да, өтө кичине да эмес - мазмунуна жараша тең салмактуу болушу керек.
- Бөлүмдүн көлөмү фокус-контекст балансын көрсөтөт; Кайталануу чек арадагы жоготууларды башкарат.
- Кронштейнге негизделген жана түзүмүн түшүнгөн чыңдоо көпчүлүк муун системаларынын баштапкы чекити болуп саналат; семантикалык топинг сапаттуу, бирок кымбат.
- Таблица, сценарий жана чат сыяктуу түрлөрү өздөрүнүн стратегияларын талап кылат; Таблицаларды жөнөкөй текстке айландыруу.
- Ар бир трекке булак/дата/бөлүм/купуялык метадайындарын жана бөлүмдүн аталышын кошуу; Бул чыпкалоо жана цитатанын негизи болуп саналат.
Колдонмо тапшырмасы
Сиз тандаган документтин бир бөлүгүн үч түрдүү жолго бөлүңүз: (1) 200 токендин кичинекей бөлүктөрү, (2) 500 токендин орто бөлүктөрү (70 токендин бири-бирине дал келиши), (3) жалгыз чоң бөлүктөр. Ар бир стратегияга бирдей 3 суроо бериңиз, кайсы бөлүгүн алып келүүнү кол менен белгилеңиз жана ал документке кайсы стратегия эң ылайыктуу экендигинин жүйөлөрүн жазыңыз. Андан кийин ар бир трекке кеминде төрт метадайын талаасын жана "бөлүмдүн аталышын" кошуңуз. Документте таблица бар болсо, таблицанын сабын "талаа: маани" форматындагы жөнөкөй текстке айландырыңыз.
текшерүү тизмеси
- [ ] Мен кесек издөөнүн эң кичине бирдиги, ал эми көлөмү фокус-контекст балансы деп айта алам.
- [ ] Эмне үчүн Overlap чек аранын жоголушуна жол бербей турганын билем.
- [ ] Мен кашаанын негизиндеги, семантикалык жана структураны түшүнгөн чыңдоолорду айырмалай алам.
- [ ] Мен стол, код жана чат үчүн стратегияны ыңгайлаштыра алам.
- [ ] Ар бир трекке метадайындарды жана бөлүмдүн аталышын кошуу менен издөөнү күчөтөм.