அலகு 4 / 11

மீட்டெடுப்பு உத்திகள்: Top-k, Hybrid, Re-ranking

ஆதாயங்கள்:

  • டாப்-கே தேர்வு மற்றும் சொற்பொருள் மற்றும் முக்கிய தேடல் ஆகியவற்றை இணைக்கும் கலப்பின தேடலை செயல்படுத்துதல்
  • மறு தரவரிசையுடன் முதல் தேடலின் துல்லியத்தை அதிகரிக்கிறது
  • வினவல் மாற்றம் மற்றும் HyDE போன்ற நுட்பங்கள் மூலம் கடினமான கேள்விகளை மேலும் தேடக்கூடியதாக மாற்றுகிறது

நீங்கள் ஆவணங்களை நன்றாக துண்டாக்கி வெக்டர் தரவுத்தளத்தில் வைத்துள்ளீர்கள். இப்போது உண்மையான வேலை: பயனர் ஒரு கேள்வியைக் கேட்கும்போது சரியான துண்டுகளைப் பெறுதல். இது மீட்டெடுப்பு என்று அழைக்கப்படுகிறது மற்றும் RAG தரத்தின் முதுகெலும்பாகும். "மீட்பு தரம் = RAG தரம்" என்ற சொற்றொடரை நினைவில் கொள்க; இந்த அலகு சரியாக அந்த தரத்தை மேம்படுத்தும் கலை. டாப்-கே தேர்வில் இருந்து ஹைப்ரிட் தேடல் வரை, மறு தரவரிசையில் இருந்து வினவல் மாற்றம் வரை நடைமுறை நுட்பங்களை நாங்கள் உள்ளடக்குவோம்.

டாப்-கே: எத்தனை துண்டுகள் கொண்டு வருவோம்?

மிக அடிப்படையான அமைப்பு: தேடலில் இருந்து எத்தனை துண்டுகள் (k) திரும்ப வேண்டும். நீங்கள் குறைவாக (k=1) கொண்டுவந்தால், சரியான துண்டை தவறவிடும் அபாயம் அதிகம்; நீங்கள் அதிகமாகச் சேர்த்தால் (k=20), அது மாதிரிக்கு சத்தத்தை சேர்க்கும் மற்றும் டோக்கன் செலவு அதிகரிக்கும்.

இரண்டு கருத்துகளை வேறுபடுத்துங்கள். நினைவுகூருங்கள்: மீட்டெடுக்கப்பட்டவற்றில் சரியான துண்டு இருக்கும் விகிதம். துல்லியம்: மீட்டெடுக்கப்படும் விகிதம் தொடர்புடையது. k ஐ அதிகரிப்பது நினைவூட்டலை அதிகரிக்கிறது ஆனால் துல்லியத்தை குறைக்கிறது. இரண்டையும் சமநிலைப்படுத்துவதே குறிக்கோள்.

மேல்-k

தாக்கம்

பொருத்தமான சூழ்நிலை

1-3

உயர் துல்லியம், தவறவிடும் ஆபத்து

எளிய, ஒரே பதில் கேள்விகள்

4-8

இருப்பு; பெரும்பாலான காட்சிகள்

பொது நிறுவன RAG

10-20

அதிக நினைவு, சத்தம் அதிகரிக்கிறது

மறு தரவரிசையுடன் (கீழே)

உதவிக்குறிப்பு: பொதுவான மற்றும் சக்திவாய்ந்த பேட்டர்ன்: அகலத்தைப் பெறவும் (k=20), பின்னர் மறு தரவரிசையில் குறுகவும் (முதல் 4). இந்த வழியில் நீங்கள் எதையும் தவறவிட மாட்டீர்கள் மற்றும் மாதிரிக்கு சுத்தமான சூழலை வழங்குகிறீர்கள்.

கலப்பின தேடல்: இரண்டு தேடல்களின் சக்தி

சொற்பொருள் (திசையன்) தேடல் பொருளைப் பிடிக்கிறது ஆனால் விஷயங்களைத் தவறவிடுகிறது: முழு தயாரிப்புக் குறியீடு ("XR-4471"), அரிதான சுருக்கம், சரியான பெயர், பதிப்பு எண். இந்த சரியான-பொருத்தப் பணிகளுக்கு, பழைய பள்ளி முக்கிய வார்த்தைகளைத் தேடுவது-குறிப்பாக BM25 எனப்படும் கிளாசிக் அல்காரிதம்-மிகவும் நல்லது.

ஹைப்ரிட் தேடல் இரண்டையும் ஒருங்கிணைக்கிறது: சொற்பொருள் மற்றும் முக்கிய தேடல்கள் இரண்டும் வேலை செய்கின்றன, முடிவுகளை இணைக்கின்றன. இவ்வாறு, ஒரு கேள்வியில் "உத்தரவாத காலம்

இணைப்பது பொதுவாக RRF (Reciprocal Rank Fusion) மூலம் செய்யப்படுகிறது: இரண்டு பட்டியல்களிலும் அதிகமாக இருக்கும் ட்ராக் முன் வரும்.

# கலப்பின மீட்டெடுப்பு (கருத்துசார்ந்த)செம் = திசையன்_தேடல்(கேள்வி, கே=20) # அர்த்த விசை = பிஎம்25_தேடல்(கேள்வி, கே=20) # முழு வார்த்தை முடிவுகள் = ஆர்ஆர்எஃப்_மேர்ஜ்(செம், கீ)[:8] # இரண்டையும் இணைக்கவும், முதல் 8

மறு தரவரிசை: இரண்டாவது மற்றும் சிறந்த தேர்ச்சி

முதல் அழைப்பு விரைவாக ஆனால் முரட்டுத்தனமாக இருக்கலாம். முதல் தேடலின் மூலம் பெறப்பட்ட மதிப்பெண்களை மீண்டும் தரவரிசைப்படுத்துவது, மிகவும் சக்திவாய்ந்த மாதிரி (பொதுவாக ஒரு குறுக்கு-குறியாக்கி — கேள்வியையும் பத்தியையும் ஒன்றாகப் படித்து பொருத்தத்தை மதிப்பிடும் மாதிரி) மற்றும் மிகவும் பொருத்தமானவற்றை மேலே நகர்த்துகிறது.

தர்க்கம் இதுதான்: முதல் தேடல் அதிக எண்ணிக்கையிலான விண்ணப்பதாரர்களை திரும்ப அழைக்கும் (20 வேட்பாளர்கள்), மறு தரவரிசையாளர் துல்லியமாக சிறந்த 4 ஐத் தேர்ந்தெடுக்கிறார். இந்த இரண்டு-நிலை அணுகுமுறை ஒற்றை-நிலை தேடலை விட மிகவும் துல்லியமானது. இது சில தாமதம் மற்றும் கூடுதல் செயலாக்கம் செலவாகும்; ஆதாயம் என்பது தரத்தில் குறிப்பிடத்தக்க அதிகரிப்பு ஆகும்.

# இரண்டு-நிலை மீட்டெடுப்பு (கருத்துசார்ந்த) வேட்பாளர்கள் = hybrid_search(கேள்வி, k=20) # பரந்த, விரைவு மதிப்பெண் = reranker.ஸ்கோர்(கேள்வி, வேட்பாளர்கள்) # ஒவ்வொரு வேட்பாளரின் சூழலுக்கும் பொருத்தமான மதிப்பெண் = rated.rank()[:4] # top 4

வினவலை மாற்றுதல்

சில நேரங்களில் பிரச்சனை தேடலில் இல்லை, ஆனால் கேள்வியிலேயே உள்ளது. "தொலைதூர தொழிலாளர்கள் பற்றி என்ன?" என்று பயனர் கேட்டால் ', இதை மட்டும் தேட முடியாது (தொலைதூர தொழிலாளர்களுக்கு என்ன என்பது தெளிவாகத் தெரியவில்லை). வினவல் உருமாற்ற நுட்பங்கள் இங்கே:

  • மீண்டும் எழுதவும்: கேள்வியை தனித்தனியாக மாற்ற, உரையாடல் வரலாற்றைப் பயன்படுத்தவும்: "தொலைநிலைத் தொழிலாளர்களுக்கு வருடாந்திர விடுப்புக்கு என்ன உரிமை இருக்கிறது?"
  • பல வினவல்: ஒரே கேள்வியின் 3 வெவ்வேறு வெளிப்பாடுகளை உருவாக்கவும், அவை அனைத்தையும் கொண்டு தேடவும், முடிவுகளை இணைக்கவும். வெவ்வேறு வார்த்தைகள் வெவ்வேறு துண்டுகளைக் கண்டுபிடிக்கின்றன.
  • HyDE (கருமான ஆவண உட்பொதிப்புகள்): முதலில் மாதிரியில் "சாத்தியமான பதிலை" அச்சிட்டு, பின்னர் உட்பொதித்து அந்த கற்பனையான பதிலைத் தேடுங்கள். உண்மையான ஆவணத்திற்கு வார்த்தைகளில் நெருக்கமாக இருப்பதால் கற்பனையான பதில் சில நேரங்களில் சிறப்பாகக் காணப்படுகிறது.

# பல வினவல் (கருத்துநிலை) மாறுபாடுகள் = model.uret("இந்தக் கேள்வியை 3 வெவ்வேறு வழிகளில் வெளிப்படுத்தவும்: " + கேள்வி)tum_sonuc = []வகைகளில் v க்கு: all_sonuc += vector_intermediate(v, k=6)சூழல் = ஒருமை_மற்றும்_வரிசை(tum_result)[:6]

பலவீனமான மீட்டெடுப்பு / வலுவான மீட்டெடுப்பு

பலவீனம் (ஒற்றை நிலை, சொற்பொருள் மட்டும், மாறிலி k=3):

முடிவு = vector_search(question, k=3)# சிக்கல்: தயாரிப்பு குறியீடு தவறிவிட்டது, கடினமான கேள்விகளில் சரியான பகுதி 3 ஐ உள்ளிட முடியாது.

சக்தி வாய்ந்தது (கலப்பின + அகலம் + மறு தரவரிசை + தேவைப்பட்டால் பல வினவல்):

வேட்பாளர்கள் = hybrid_search(rewrite(question, past), k=20)context = reranker.score(question, candidates).first(4)# இரண்டும் சரியான பொருத்தம் மற்றும் பொருள் கைப்பற்றப்பட்டது; இது சிறந்த 4 மாடல்களுக்கு செல்கிறது.

மூன்று சிறிய வழக்குகள்

வழக்கு 1 - தயாரிப்பு குறியீடு தப்பித்தது. "RTX-9080 இயக்கி பிழை" என்ற கேள்வியில் "RTX-9080" என்ற சொற்றொடரைக் கண்டுபிடிக்க முடியவில்லை. இதே பெயர்களில் வேறு பொருட்களை கொண்டு வந்தார். கலப்பினத் தேடலைச் சேர்த்தபோது, ​​சரியான குறியீடு பொருத்தம் ஏற்பட்டது மற்றும் சரியான கட்டுரைகளைத் திரும்பப் பெறுவதற்கான விகிதம் 58% இலிருந்து 92% ஆக அதிகரித்தது.

வழக்கு 2 - மறு தரவரிசை வேறுபாடு. ஒரு சட்டப்பூர்வ அதிகாரி k=5 உடன் பணிபுரிந்தார், ஆனால் பெரும்பாலான நேரங்களில் சரியான உருப்படி 7-10 ஆகும். அவர் வரிசையில் தங்கியிருந்தார். k=20 + மறு தரவரிசை அறிமுகப்படுத்தப்பட்டபோது, ​​முதல் 3 இல் உள்ள சரியான கட்டுரையின் விகிதம் 61% இலிருந்து 94% ஆக அதிகரித்தது; தாமதம் 300ms மட்டுமே அதிகரித்துள்ளது - ஏற்றுக்கொள்ளக்கூடிய சமரசம்.

வழக்கு 3 - சூழல் இல்லாமல் பின்தொடர்தல் கேள்வி. ஒரு HR உதவியாளரில், பயனர் "பகுதி நேர பணியாளர்களைப் பற்றி என்ன?" நான் கேட்டபோது, ​​கணினி பொருத்தமற்ற பகுதிகளைக் கொண்டு வந்தது. வினவலை மீண்டும் எழுதுவதன் மூலம் (கடந்த காலத்திலிருந்து "வருடாந்திர விடுப்பு" சூழலை இழுத்து, "பகுதிநேர ஊழியர்கள் வருடாந்திர விடுப்புக்கு தகுதியுடையவர்கள்" என்று சேர்ப்பதன் மூலம்), சரியான பதில் விகிதம் 40% இலிருந்து 86% ஆக அதிகரித்துள்ளது.

பொதுவான தவறுகள்

  • சொற்பொருள் தேடலை மட்டுமே நம்பியிருப்பது: தயாரிப்பு குறியீடு, சுருக்கம், சரியான பெயர் தவறவிட்டன; கலப்பினத்தைச் சேர்க்கவும்.
  • k ஐ மிகவும் சிறியதாக வைத்தல்: சரியான துண்டு பட்டியலில் உள்ளிட முடியாது; அதை அகலமாக்கி மறு தரவரிசையில் சுருக்கவும்.
  • மறு தரவரிசை பற்றி யோசிக்கவே இல்லை: முதல் தேடல் முரட்டுத்தனமானது; இரண்டாவது ஸ்மார்ட் பாஸ் தரத்தை கணிசமாக மேம்படுத்துகிறது.
  • பின்தொடர்தல் கேள்விகளைத் தேடுவது: சூழல் இல்லாத கேள்வி அர்த்தமற்றதைத் தேடுகிறது; மீண்டும் எழுது.
  • கண்மூடித்தனமாக அதிகரிக்கும் k (மறு தரவரிசை இல்லாமல்): மாதிரி சத்தத்தால் நிரப்பப்படுகிறது, பதில் சிதைந்து, செலவு அதிகரிக்கிறது.
ஜாக்கிரதை: ஒவ்வொரு நுட்பமும் செலவு மற்றும் தாமதத்தை சேர்க்கிறது. பல வினவல் என்றால் 3 மடங்கு தேடல், மறு தரவரிசை என்பது கூடுதல் மாதிரி அழைப்பு. முதலில் எளிய கலப்பு + நியாயமான k உடன் தொடங்கவும்; உண்மையில் தேவைப்படும் இடங்களில் கனமான நுட்பங்களை அளந்து சேர்க்கவும். அளவிடாமல் சேர்த்தல்.

சுருக்கமாக

  • Top-k என்பது நினைவு மற்றும் துல்லியத்திற்கு இடையே உள்ள சமநிலை ஆகும்; பொதுவாக 4-8 ஒரு நல்ல தொடக்கமாகும்.
  • ஹைப்ரிட் தேடல் சொற்பொருள் தேடலை முக்கிய வார்த்தையுடன் (BM25) ஒருங்கிணைக்கிறது; சரியான பொருத்தங்களை மீட்டெடுக்கிறது.
  • மறு-தரவரிசையானது ஒரு வலுவான மாதிரியுடன் கூடிய பரந்த ஆரம்ப தேடலில் இருந்து விண்ணப்பதாரர்களை மறுமதிப்பீடு செய்து சிறந்தவற்றைத் தேர்ந்தெடுக்கிறது.
  • வினவல் மாற்றம் (திரும்ப எழுதுதல், பல வினவல், HyDE) கடினமான மற்றும் சூழல் இல்லாத கேள்விகளைத் தேடக்கூடியதாக ஆக்குகிறது.
  • வலுவான முறை: பரந்த பெறுதல் → கலப்பினத்துடன் ஒன்றிணைத்தல் → மறு தரவரிசையுடன் குறுகியது; ஆனால் ஒவ்வொரு நுட்பத்தையும் அதை அளவிடுவதன் மூலம் சேர்க்கவும்.

விண்ணப்ப பணி

முந்தைய யூனிட்களின் தரவைக் கொண்டு 6 கடினமான கேள்விகளைத் தயாரிக்கவும்: குறைந்தபட்சம் 2 சரியான பொருத்தங்கள் (தயாரிப்பு குறியீடு, சுருக்கம், தேதி), 2 சொற்பொருள் (வெவ்வேறு சொற்களுடன் ஒரே தலைப்பு), 2 பின்தொடர்தல் கேள்விகள். (1) முதலில் ஒவ்வொரு கேள்வியையும் ஒரு தூய சொற்பொருள் தேடலாக நினைத்து, எந்தப் பகுதிகள் வரும் என்பதை கைமுறையாகக் குறிக்கவும். (2) அதே கேள்விகளை கலப்பினத்துடன் மறுமதிப்பீடு செய்து மறு தரவரிசை சேர்க்கப்பட்டது. (3) சூழல் இல்லாமல் பின்தொடர்தல் கேள்விகளை மீண்டும் எழுதவும். எந்த கேள்வி வகைகளில் எந்த நுட்பம் வித்தியாசத்தை ஏற்படுத்துகிறது என்பதை அட்டவணை வடிவத்தில் குறிப்பிடவும்.

சரிபார்ப்பு பட்டியல்

  • டாப்-கே என்பது திரும்ப அழைக்கும் துல்லிய சமநிலை மற்றும் நியாயமான தொடக்க வரம்பு என்பது எனக்குத் தெரியும்.
  • [ ] கலப்பின தேடல் ஏன் சரியான பொருத்தங்களை மீட்டெடுக்கிறது என்பதை என்னால் விளக்க முடியும்.
  • [ ] மறு தரவரிசையின் இரண்டு-படி தர்க்கத்தை என்னால் பயன்படுத்த முடியும் (பரந்த → ஸ்மார்ட் குறுகிய).
  • [ ] பின்தொடர்தல் கேள்விகளை சூழல் இல்லாமல் மீண்டும் எழுத வேண்டியதன் அவசியத்தை நான் அங்கீகரிக்கிறேன்.
  • [ ] நான் கனமான நுட்பங்களை அளவிடுவதன் மூலம் சேர்த்துள்ளேன் என்பதை உறுதிப்படுத்துகிறேன், அளவிடுவதன் மூலம் அல்ல.