નફો:
- સંખ્યાત્મક રીતે ચંક કદ, ઓવરલેપ અને સિમેન્ટીક ચંકીંગ ટ્રેડઓફનું મૂલ્યાંકન કરો
- વિવિધ દસ્તાવેજ પ્રકારો (પીડીએફ, ટેબલ, કોડ, ચેટ લોગ) માટે યોગ્ય ચંકીંગ વ્યૂહરચના પસંદ કરવી
- દરેક હિસ્સામાં મેટાડેટા ઉમેરીને પુનઃપ્રાપ્તિ ગુણવત્તા અને ફિલ્ટરિંગને મજબૂત બનાવો
આરએજીમાં આ સૌથી વધુ અવગણવામાં આવતું પરંતુ સૌથી નિર્ણાયક પગલું છે: તમે દસ્તાવેજને કેવી રીતે તોડશો. આને ચંકીંગ કહેવાય છે. જો તમે સમાન મોડેલને સમાન દસ્તાવેજ આપો છો, તો પણ ખરાબ ચંકીંગને લીધે પુનઃપ્રાપ્તિ ખોટો ભાગ પરત કરે છે અને મોડેલ ક્યારેય ઉત્તમ જવાબ આપશે નહીં. આ એકમમાં, અમે ફ્રેગમેન્ટેશન વ્યૂહરચનાઓને આવરી લઈએ છીએ, તેમને દસ્તાવેજના પ્રકાર અનુસાર કેવી રીતે અનુકૂલિત કરવું અને દરેક ટુકડામાં અર્થપૂર્ણ મેટાડેટા કેવી રીતે ઉમેરવું.
શા માટે આપણે કટકા કરીએ છીએ?
ત્રણ કારણો છે. પ્રથમ, એમ્બેડિંગ મોડલ ચોક્કસ લંબાઈ સુધીના ટેક્સ્ટને અર્થપૂર્ણ વેક્ટરમાં રૂપાંતરિત કરે છે; જો આખું 40-પૃષ્ઠ પ્રકરણ એક જ વેક્ટરમાં ભેળવવામાં આવે, તો અર્થ "અસ્પષ્ટ" થઈ જાય છે. બીજું, અમે મોડેલને ફક્ત તે જ ભાગ આપવા માંગીએ છીએ જે સંદર્ભ તરીકે જરૂરી છે; સમગ્ર દસ્તાવેજને સોંપવો ખર્ચાળ અને વિચલિત કરનાર છે. ત્રીજું, પુનઃપ્રાપ્તિ ચોક્કસ થવા માટે, શોધ એકમ નાનું અને કેન્દ્રિત હોવું જોઈએ.
તેથી ચંક એ પુનઃપ્રાપ્તિનું સૌથી નાનું એકમ છે. તે ખૂબ મોટું અથવા ખૂબ નાનું હોવું જોઈએ નહીં - બરાબર.
ચંક સાઈઝ અને ઓવરલેપ બેલેન્સ
ત્યાં બે મુખ્ય સેટિંગ્સ છે: ભાગનું કદ (એક ટુકડામાં કેટલા ટોકન્સ/શબ્દો હશે) અને ઓવરલેપ (પડોશી ભાગો દ્વારા વહેંચાયેલ ભાગ).
ખૂબ જ નાના ટુકડાઓ (દા.ત. 100 ટોકન્સ): કેન્દ્રિત પરંતુ સંદર્ભથી ડિસ્કનેક્ટ. તે કહે છે "14 દિવસ માટે", પરંતુ 14 દિવસ શું છે તે પાછલા વાક્યમાં બાકી છે. ખૂબ મોટા હિસ્સા (દા.ત. 2000 ટોકન્સ): સંદર્ભ સાચવે છે પરંતુ ઘણા થ્રેડો તેમાં ભળી જાય છે; એમ્બેડિંગ ગડબડ થઈ જાય છે અને અપ્રસ્તુત વિષયો એક સાથે આવે છે.
ઓવરલેપ સીમાની સમસ્યાને હલ કરે છે. જો વાક્ય બે ભાગોની સરહદ પર બરાબર આવે છે, તો તે ઓવરલેપ થયા વિના બે ભાગમાં વહેંચાય છે અને તેનો અર્થ ખોવાઈ જાય છે. 50-100 ટોકન્સનો ઓવરલેપ ખાતરી કરે છે કે મર્યાદામાં આવતી માહિતી ઓછામાં ઓછા એક ભાગમાં અકબંધ રહે છે.
ભાગનું કદ
ફાયદો
ગેરલાભ
યોગ્ય સામગ્રી
નાનું (100-250 ટોકન્સ)
ઉચ્ચ સંવેદનશીલતા, ધ્યાન કેન્દ્રિત
સંદર્ભ તૂટી શકે છે
FAQ, ટૂંકા લેખો, વ્યાખ્યાઓ
મધ્યમ (300-600 ટોકન્સ)
સંતુલન; મોટા ભાગના દૃશ્યો
-
કાર્યવાહી, નીતિ ગ્રંથો
મોટું (800-1500 ટોકન્સ)
સંદર્ભ અખંડિતતા
અસ્પષ્ટ એમ્બેડિંગ
વર્ણનાત્મક, લાંબી સમજૂતી
ટીપ: જો તમને ખબર ન હોય કે ક્યાંથી શરૂઆત કરવી, તો 400-500 ટોકન ચંક અને 50-80 ટોકન ઓવરલેપથી શરૂઆત કરો; પછી તમારા પોતાના ડેટા સાથે માપો અને સમાયોજિત કરો. "અધિકાર" કદ સાર્વત્રિક નથી, તે સંદર્ભ પર આધાર રાખે છે.
ચંકીંગ વ્યૂહરચનાઓ
નિશ્ચિત-કદ: દરેક N ટોકન્સ ટેક્સ્ટને ટ્રિમ કરે છે. તે સરળ અને ઝડપી છે, પરંતુ મધ્ય-વાક્યને વિક્ષેપિત કરી શકે છે.
વિભાજક-આધારિત (પુનરાવર્તિત/વિભાજક): ફકરા અને પછી વાક્યની સીમાઓ અનુસાર વિભાજન; તે અર્થની અખંડિતતાને વધુ સારી રીતે સાચવે છે. મોટાભાગની ઉત્પાદન પ્રણાલીઓ આ સાથે શરૂ થાય છે.
સિમેન્ટીક ચંકીંગ: તે વાક્યોના એમ્બેડિંગ્સને જુએ છે અને જ્યાં વિષયમાં ફેરફાર થાય છે ત્યાં તેને વિભાજિત કરે છે. તે ઉચ્ચ ગુણવત્તાની પરંતુ સૌથી ખર્ચાળ પદ્ધતિ છે; મોટા જથ્થા સાથે, વ્યવહાર ખર્ચ વધે છે.
સ્ટ્રક્ચર-અવેર: ડોક્યુમેન્ટ સ્ટ્રક્ચરનો ઉપયોગ કરે છે જેમ કે હેડિંગ, સેક્શન, ટેબલ. ઉદાહરણ તરીકે, માર્કડાઉન દસ્તાવેજને મથાળાઓ દ્વારા વિભાજિત કરવું એ સુનિશ્ચિત કરે છે કે દરેક ભાગમાં તેનું પોતાનું મથાળું છે.
દસ્તાવેજના પ્રકાર દ્વારા અનુકૂલન
દરેક દસ્તાવેજ સરખા હોતા નથી. વ્યૂહરચના પ્રકાર દ્વારા બદલાય છે:
- PDF/નીતિ ટેક્સ્ટ: બુકમાર્ક-આધારિત, મધ્યમ કદ. પૃષ્ઠ ઉપર/તળિયે પુનરાવર્તન (હેડર/ફૂટર) સાફ કરો.
- કોષ્ટકો: સંદર્ભની બહાર લીટી ન લો; દરેક પંક્તિને હેડર માહિતી સાથે રાખો ("આઇટમ: X, કિંમત: Y, સ્ટોક: Z"). કાચા કોષ્ટકને સાદા ટેક્સ્ટમાં રૂપાંતરિત કરવું ઘણીવાર આવશ્યક છે.
- કોડ: કાર્ય/વર્ગની સીમાઓ દ્વારા વિભાજિત કરો; કોઈ કાર્યને માર્ગની બહાર કાઢશો નહીં.
- ચેટ/ટિકિટ રેકોર્ડિંગ: સંદેશ અથવા વાતચીત રાઉન્ડ દ્વારા વિભાજિત; કોણે શું કહ્યું તેની જાણકારી રાખો.
# કૌંસ આધારિત ચંકીંગ (વૈકલ્પિક) હિસ્સા = બોલ(ટેક્સ્ટ, ટાર્ગેટ_સાઇઝ=450, # ટોકન ઓવરલેપ=70, # ટોકન કૌંસ=["\n\n", "\n", ".", " "] # ફકરો પ્રથમ, શબ્દ છેલ્લો)
દરેક ટ્રેકમાં મેટાડેટા ઉમેરો
ચંકીંગ માત્ર "વિભાજન" નથી; દરેક ભાગને સમૃદ્ધ બનાવવાનો છે. તમે ટ્રેક સાથે જોડો છો તે દરેક ટેગ ભાવિ ફિલ્ટરિંગ અને સ્રોત ટાંકવા માટે તેનું વજન સોનામાં મૂલ્યવાન છે.
# સમૃદ્ધ હિસ્સો (વૈકલ્પિક){ "ટેક્સ્ટ": "વાર્ષિક ચૂકવણીની રજા 1-5 વર્ષની સેવા સાથે 14 દિવસની છે...", "મેટાડેટા": { "સ્રોત": "ik_el_kitabi_v7.pdf", "વિભાગ": "5.2 વાર્ષિક રજા", "પૃષ્ઠ": 23, "તારીખ"", "62 ભાગ", "202 ભાગ" "ગોપનીયતા": "આંતરિક" }}
બીજી એક શક્તિશાળી ટેકનિક એક સંદર્ભ હેડર ઉમેરી રહી છે: દરેક ભાગની શરૂઆતમાં તે પ્રકરણનું શીર્ષક લખવું. આમ, "14 દિવસ માટે" જેવો અસંબંધિત ભાગ પણ વધુ સારી રીતે જડિત અને "વાર્ષિક રજા - 14 દિવસ" તરીકે વધુ અર્થપૂર્ણ છે.
નબળા ચંકીંગ / મજબૂત ચંકીંગ
નબળું (અંધ હાર્ડકટ, કોઈ મેટાડેટા નથી):
દર 1000 અક્ષરે ટેક્સ્ટને કાપો. માત્ર ટેક્સ્ટ રાખો.# પરિણામ: કોષ્ટકો મધ્યમાં વિભાજિત છે, "14 દિવસ" સંદર્ભ વગર રહે છે, # તે કયા દસ્તાવેજમાંથી આવ્યો છે તે જાણી શકાયું નથી, કોઈ ફિલ્ટર કરી શકાતું નથી.
શક્તિશાળી (સ્ટ્રક્ચર-અવેર + હેડર + મેટાડેટા):
દસ્તાવેજને હેડિંગ દ્વારા વિભાજીત કરો; દરેક ભાગમાં વિભાગનું શીર્ષક ઉમેરો; સ્ત્રોત, પૃષ્ઠ, તારીખ અને ગોપનીયતા મેટાડેટા જોડો; ટેબલરોને તેમના હેડરો સાથે સાદા ટેક્સ્ટમાં કન્વર્ટ કરો. # પરિણામ: ધ્યાન કેન્દ્રિત, સંદર્ભિત, ફિલ્ટર કરી શકાય તેવું, સ્ત્રોત કરી શકાય તેવું.
ત્રણ મિની કેસ
કેસ 1 - પેઇન્ટિંગ આપત્તિ. ફાઇનાન્સ ટીમે 200-પૃષ્ઠોની કિંમત યાદીને બ્લાઇન્ડ હાર્ડ કટિંગ સાથે વિભાજિત કરી; કોષ્ટક પંક્તિઓ અવ્યવસ્થિત રીતે વિભાજિત કરવામાં આવી હતી. "ઉત્પાદન X ની કિંમત શું છે?" મોડેલે ખોટી લાઇન વાંચી અને ખોટી કિંમત આપી (12 માંથી 9 કેસ ખોટા છે). જ્યારે મેં ટેબલ પંક્તિઓને "ઉત્પાદન: ... | કિંમત: ... | એકમ: ..." ફોર્મેટમાં સાદા ટેક્સ્ટમાં રૂપાંતરિત કર્યું ત્યારે ભૂલ 12 માંથી 0 થઈ ગઈ.
કેસ 2 - અત્યંત મોટો ભાગ. વિકિમાં, દરેક પૃષ્ઠ એક જ ટુકડાથી બનેલું છે (કેટલાક કહે છે 3,000 ટોકન્સ). એમ્બેડિંગ અસ્પષ્ટ છે કારણ કે એક પૃષ્ઠ પર "રજા", "ઓવરટાઇમ" અને "પેરોલ" છે; રજાના પ્રશ્ન અંગે કામના કલાકોનો વિભાગ પણ અમલમાં આવ્યો. જ્યારે પૃષ્ઠોને શીર્ષક દ્વારા મધ્યમ કદમાં વિભાજિત કરવામાં આવ્યા હતા, ત્યારે recall@5 64% થી વધીને 91% થઈ ગયું છે.
કેસ 3 — ઓવરલેપ વિના કાપેલું વાક્ય. કાનૂની ટીમ માટે 250 ટોકન નિશ્ચિત કટ, કોઈ ઓવરલેપ નથી. એક નિર્ણાયક વ્યાખ્યા બે ભાગોની સરહદ પર પડી અને બે ભાગમાં વિભાજિત થઈ; એક કે બીજામાં સંપૂર્ણ જવાબ નથી. જ્યારે 60 ટોકન ઓવરલેપ ઉમેરવામાં આવ્યા હતા, ત્યારે સમાન વ્યાખ્યા એક ભાગમાં અકબંધ રહી હતી અને સાચો જવાબ પરત કરવામાં આવ્યો હતો.
સામાન્ય ભૂલો
- અંધ નિશ્ચિત કટ: મધ્યમાં વાક્યો અને કોષ્ટકોને વિભાજિત કરે છે; અર્થ ખોવાઈ જાય છે.
- ઓવરલેપને શૂન્ય પર છોડવું: સીમા પર આવતી માહિતી વિભાજિત અને ખોવાઈ જાય છે.
- મેટાડેટા ઉમેરતા નથી: ફિલ્ટરિંગ અને સ્ત્રોત પ્રદર્શન અશક્ય બની જાય છે.
- કોષ્ટકોને કાચા છોડવા: મોડેલ કોષ્ટકની રચનાને હલ કરી શકતું નથી; લીટીઓને સાદા ટેક્સ્ટમાં કન્વર્ટ કરો.
- એક વ્યૂહરચના લાદવી: પીડીએફ, કોડ અને ટેબલ સમાન પદ્ધતિ દ્વારા વિભાજિત નથી; શૈલીમાં અનુકૂલન કરો.
સાવધાન: ચંકિંગને એકવાર સેટ કરીને ભૂલી જશો નહીં. નવા દસ્તાવેજના પ્રકારો આવતાની સાથે પુનઃપ્રાપ્તિ ગુણવત્તાને ફરીથી માપો (નવી સિસ્ટમમાંથી ટિકિટ, સ્કેન કરેલી PDF). ખરાબ ઇનપુટ ડેટા એટલે ખરાબ પ્રતિસાદ ("કચરો અંદર, કચરો બહાર").
સારાંશમાં
- ચંક એ પુનઃપ્રાપ્તિનું સૌથી નાનું એકમ છે; ન તો બહુ મોટું કે નાનું પણ – તે સામગ્રી પ્રમાણે સંતુલિત હોવું જોઈએ.
- ભાગનું કદ ફોકસ-સંદર્ભ સંતુલન સૂચવે છે; ઓવરલેપ સીમા નુકશાનનું સંચાલન કરે છે.
- કૌંસ-આધારિત અને માળખું-જાગૃત ચંકીંગ એ મોટાભાગની જનરેશન સિસ્ટમ્સનું પ્રારંભિક બિંદુ છે; સિમેન્ટીક ચંકીંગ સારી ગુણવત્તા છે પરંતુ ખર્ચાળ છે.
- ટેબલ, સ્ક્રિપ્ટ અને ચેટ જેવા પ્રકારોને તેમની પોતાની વ્યૂહરચનાઓની જરૂર છે; કોષ્ટકોને સાદા ટેક્સ્ટમાં કન્વર્ટ કરો.
- દરેક ટ્રેકમાં સ્ત્રોત/તારીખ/પ્રકરણ/ગોપનીયતા મેટાડેટા અને વિભાગ શીર્ષક ઉમેરો; આ ફિલ્ટરિંગ અને ટાંકણનો આધાર છે.
એપ્લિકેશન કાર્ય
તમે પસંદ કરો છો તે દસ્તાવેજના વિભાગને ત્રણ અલગ અલગ રીતે તોડો: (1) 200 ટોકન્સના નાના ટુકડા, (2) 500 ટોકન્સના મધ્યમ ટુકડાઓ (70 ટોકન ઓવરલેપ), (3) એક મોટા ટુકડા. દરેક વ્યૂહરચના માટે સમાન 3 પ્રશ્નો પૂછો, કયો ભાગ લાવવો તે જાતે ચિહ્નિત કરો, અને તે દસ્તાવેજ માટે કઈ વ્યૂહરચના શ્રેષ્ઠ કામ કરે છે તે માટેનો તર્ક લખો. પછી દરેક ટ્રેકમાં ઓછામાં ઓછા ચાર મેટાડેટા ફીલ્ડ્સ અને "ચેપ્ટર શીર્ષક" ઉમેરો. જો દસ્તાવેજમાં કોષ્ટક હોય, તો "ક્ષેત્ર: મૂલ્ય" ફોર્મેટમાં કોષ્ટક પંક્તિને સાદા ટેક્સ્ટમાં રૂપાંતરિત કરો.
ચેકલિસ્ટ
- [ ] હું કહી શકું છું કે ભાગ એ પુનઃપ્રાપ્તિનું સૌથી નાનું એકમ છે અને કદ એ ફોકસ-સંદર્ભ સંતુલન છે.
- [ ] મને ખબર છે કે ઓવરલેપ શા માટે બાઉન્ડ્રી નુકશાન અટકાવે છે.
- [] હું કૌંસ-આધારિત, સિમેન્ટીક અને સ્ટ્રક્ચર-અવેર ચંકીંગ વચ્ચે તફાવત કરી શકું છું.
- [ ] હું ટેબલ, કોડ અને ચેટ માટે વ્યૂહરચના અપનાવી શકું છું.
- [ ] હું દરેક ટ્રેકમાં મેટાડેટા અને પ્રકરણ શીર્ષક ઉમેરીને પુનઃપ્રાપ્તિને મજબૂત બનાવું છું.