Галоўная / Артыкулы / Практычныя прытамулкі: Гібрыдны пошук у RAG — BM25, вектары і взаімны ранг

Практычныя прытамулкі: Гібрыдны пошук у RAG — BM25, вектары і взаімны ранг

Практычныя прыказкі: Гібрыдны пошук у RAG — BM25, вектары і взаімны ранг: контракты, пераконтроль і шаблоны коду для команд, якія викорыстоўваюць гэты патерн.

2579 слоў

У гэтым керавану практычна адбудова пацёлку ад сыр'ёчных матэрыялаў да рабочай системы для: гібрантнага пошуку ў RAG — BM25, вектараў і фюзыі взаімных рангаў у практыцы. Акцэнт ставіцца на крокі, якія можна выконваць, чыстае перакананне ў правільнасці дзействаў, а таксама на код, які можна проста дадаць у репазітарый без падозроў на неправільную інтэнцыю.

Пошук на адной лягві вектараў выклікае патыранні кодаў і ідэнтыфікатораў. BM25 з фюзыяй RRF ёсць стандартны выбар у RAG сёння — за выключэнням случаў, калі трэба самостайна пераканацца на сваёй корпусе дадзеных.

Калі сама локацыя пошуку Vector прыводзіць да падэйскаў, перш чым зменяць код, неабходна задаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перзапускіць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна аддзеўнаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не зможаць розразліць галюцинацыю ад прасоў у індэксаванні.

Асновная ідея за две хвіліны

У стадії «Асалёвая ідея» неабяжна практычна вакуумацыя інпутаў, адпаведальнага за крок і крэтарыяў выходу пры перадзмене коду. Аператары павінны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы схованага стану. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына нехаспекі павінна вказваць на адну адпаведальнасць, а не на заплутаны ланцужок задач. Наводзіце тыя часткі тексту, якія фактычна сталі падставай для адпаведнай адказы. Без ціх цитатаў аператары не зможуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.

Дапаможныя слепыя пункты

Для стадіі «Дапаможныя слепыя пункты» неабходна перад змінайом коду адзначыць вхідныя даны, адпаведальнага за крок і критэрыі завершэння. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяйце гэтай стадіі як даговору межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, адзначыце пераканальныя критэрыі і не прымайце часткова завершанне без паведамлення. Цітуйце тыя часткі, якія фактычна лежалі в основе адпаведнай адказы. Без цітатаў аператары не зможаць разлічыць галюцинацію ад прасоў у індэксаванні.

Што на самай працэ БМ25

У раздзеле «Што на самай працо лічыць BM25» неабяжна практычна адзначыць вхідныя даны, адпаведальнага за крок і критэрыі завершэння пры перадзеяванні коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не прабуючы спадарацца прыватны стан. Запісваюць час выконання і кост токеноў або запытаў разам з функцыйнаімі рэзультатамі. Відразлівае прадставленне костаў запобегае неспакойным рахункам, калі траекторыя пераходзіць з дэмавай версіі ў спяльныя среды. Адзначаюць фрагменты, якія на самай працо сталі падставай для адпаведнага адказу. Без ціх аднароджэнняў аператары не можуць разлічыць галюцинацію ад прасоў у індэксаванні.

Памылка катэгорыі, яку я сам скоўваў

Для канцэларыі класа A, якая з’яўляецца, перад змінай коду неабходна задаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перайсці на выконанне кроку з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Конфігурацыю трэба залічваць паза кодам прыкладнага програмнага забезпечэння. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Паказваць неабходна тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адпаведзі. Без цых цитатаў аператары не можаць розразліць галюцинацію ад прычыны, зв’язанай з недастаткам індэксацыі. Для канцэларыі класа A, якая з’яўляецца, перад змінай коду неабходна задаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перайсці на выконанне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Валідзіць кращэ маленькія, тэставаныя елементы, чым велікія скрыпты. Калі крок не выйшоў, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцуг задач.

Чаму не можна простаў дадаць рэйтынгі

Калі працуеце над этапам «Чаму не можна», спачатку запісайце угоду: неабяжныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контролю дапамагае заліцвачыць пазнейшыя змены ў кодзе. Спрыймайце гэты этап як угоду межа данымі і перакананымі выходамі. Дайце назвы элементам, задаце критэрыя успеху і не падтрымайце тыхнучае часткова завершэння. Замерайце ступень запам’ятовання на фіксаваным наборе пытанняў прычым рэгулюванні запрошэнняў. Частае змены запрошэнняў рэдка калі вылечваюць слабую систему адзысквання інформаціі.

Голасаванне за пазыцыяй заместо порэвання рэйтынгаў

Калі працуеце з методам голасавання на адміністрацыю заместо паэтапнага падходу, спачатку запісайце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Запісвайце час выканання і кост токена або запыту праза функцыйнальныя рэзултаты. Відразувая візуабельнасць костаў запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды. Замерайце рэкалі на фіксаванай сэтке запытаў прычым регулюванні прапаза. Частыя змены прапаза рэдка калі вядуць да павышэння якасці выкарыстоўвання данных.

Гібрыдны пошук стаў стандартам

Калі працуеце над фазай «Гібрыдны пошук», спачатку запісацеце кантракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список пераканальвае ў тым, каб пазнейшыя змены коду былі чыстымі. Зберагаеце настройкі за межамі коду прыемлі. Файлы сераўнавання, храненні секрэтных данных і флагі функций павінны знаходзіцца ў адном месцы, куды аператары можаць адбавляць без неабяжлівага чытання всей структуры. Замеряйце рэкалі на фіксаванай сэтке запытаў прычым регулюванні прапаза. Частыя змены прапаза рэдка калі выправляюць слабую систему пошуку. Калі працуеце над фазай «Гібрыдны пошук», спачатку запісацеце кантракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список пераканальвае ў тым, каб пазнейшыя змены коду былі чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неяксамоства павінны адносіцца да адной адпаведальнасці, а не да заплутанай лінійны структуры.

Косц ад другога індэксу

«Косц а стэйдж» працуе наякраўей, калі яго спрыята як мерыемую паверхню. Запісаце адны «золаты» прыклад, адну справу аб неудачы і прыметкі пра вярнэнне да пачатковага стану перш чым расширваць масштаб. Спрыяйце гэты стэйдж як кантракт межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад тыхоўскага частковага завершэння. Раздзеліце політыку часткавага абрабатвання дадзеных ад політыкі ўтрымання іх. Змена адной з яных не павінна прымусваць перапісванне другой, калі зменяюцыся паказнікі якосці.

Дзе гібрыдны пошук прасядзе

Метод гібрантнага пошуку, які прыгаець паводзяў, работае наякша, калі яго спрыймаюць як мерыемую паверхню. Запісаце адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Запісвайце часы выканання і косты токеноў або запытак праза функцыйнае рэзультаты. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавайнага режыма ў спяльныя среды. Раздзеляйце правілы часткавання дадзеных ад правілаў ўзяць іх. Змена аднаго з іх не должна вымагаць перапісвы другога, калі зменяюцца паказнікі якасці.

Другі двыгун не завжды даўае корисную інфармацыю

Этап «The Second Engine Doesn» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Храніце настройкі парадульна коду прыемлена. Файлы серавэра, базы секретных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль, не чытаючы весь граф. Раздзеляйце політыку часткавага оброблэння дадзеных і політыку ўтрымання іх. Змена адной з яных не должна вымагаць перапісвання другой, калі зменяюцца паказнікі якосці. Этап «The Second Engine Doesn» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы должна вказываць на адну конкрэтную абавязку, а не на заплутаны ланцоўкі працы.

Вета на аднойце

Для стадіі The Consensus Veto неабяжна ўзначыць вхідныя даны, адпаведальнага за выкананне крока і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяйце цій стадіі як даговору межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, узначыць крэтырыя успеху і адмовіцеся ад беззвучнага частковага завершэння. Цітуйце тыя часткі, якія фактычна сталі падставай для адпаведнай адказы. Без цітатаў аперацыйныя працавнікі не зможу разлічыць галюцинацію ад прасоў у індэксаванні.

Фільтрацыя да з’еднання, а не пасля яго

Для стадіі «Фільтрацыя пры ўз’еднанні, але не раней» неабходна пазначыць вхідныя даны, адпаведальнага за этап і крэтыры завершэння пры змяне коду. Аператары должны магчыма ўвайсці этап з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Запісвайце час выконання і вартасьць токенаў або запытак па боку функцыйнальных рэзультатаў. Відразлівая вартасьці з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды. Указвайце тыя часткі тексту, якія фактычна ляглі в основу адпаведнай адказы. Без цых цітатаў аператары не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.

Што гэта значыць для архітектара

Для этапа «Што гэта значыць» неабяжна прадзефінаваць вхідныя даны, адпаведальную за крок особу і критэрыя завершэння пры зміне коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначкай занятым ад коду прыемліка. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцый належыць у аднам месца, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не можаць разлічыць галюцинацію ад працягу ў індэксаванні. Для этапа «Што гэта значыць» неабяжна прадзефінаваць вхідныя даны, адпаведальную за крок особу і критэрыя завершэння пры зміне коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцуг задач.

Заканчэнне

Працюючы на стадіўцы заканчэння, спачатку запісайце кантракт: неабходныя даны, сігнал успеху і тое, што выходзіць, калі адбываецца частковая нявыплата. Такі список пераконтроўкі дапамагае заліцварыць пазнейшыя змены ў кодзе. Спрыятлівае ставленне да гэтай стадійкі — як да кантракта межу данымі і перакананымі выходамі. Дайце назву артыфактам, задацьце критэрыя успеху і адмовіцеся ад тыхоўкага частковага завершэння. Перад налаштаваннем запитоў пераканайцеся ў памяці на адмечаныя запитанні. Рэдкаколі змена запитоў выправляе слабую структуру адзысквання інформаціі.

Чэк-ліст для эксплуатацыі

Стадійка чэк-ліста для эксплуатацыі працюе найэфектывней, калі яе спрыятаць як меруючую структуру. Зафіксуйце адна ідеальная транскрыпцыя, адзін прыклад нявыплаты і прыметку па адкатацыі перш чым расширваць масштаб. Дакументавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не пазнейшым дапрацоўкам.

Раздзеліце політыку часткавання ад політыке выявлення дадзейнаў. Змена адной з іх не павінна прымусваць перапісванне другой, калі зменяюцыся паказнікі якосці.

Дадзейснюйце тэст на працяванне критычнага маршруту ў системе CI з викорыстанням фіксатываючых элементаў, а не рэальных платных API, калі тое дазволяе бюджет.

Вядзьміце прыоритэт над малымі, тэставанымі елементамі працэўнікамі над вялікімі скрыптамі. Калі які-небудзь крок не выйшае, адказнасць за гэта павінна быць прызначана конкрэтна, а не расплутвацца ў цэлай ланцужку працэў.

Раздзеліце політыку часткавання ад політыке выявлення дадзейнаў. Змена адной з іх не павінна прымусваць перапісванне другой, калі зменяюцыся паказнікі якосці.

Перад апраноўкай всей структуры захаваце версіі, зробіце копію критычнага маршруту для пазнікання і пераканайцеся ў наявнасці крокаў для адката. У спакульнаваных средах неабходны ліміты частоты запытоў, перакананні ў правах на выкарыстоўванне ресурсоў і чысткі власнік для змены секрэтных даных. Вядзьміце прыоритэт над надзейнымі рашэннямі працэўнікамі над красавымі, але еднакратнымі дэманстрацыямі.

Запіска параграфу ea848bdcc23b: не трэба кантрацяваць ключы прадастоўцаў у репазітарыі, задаць максімальную кантэйнернасць токена на адну сесію, а таксама зберагчы транскрыпціі праза фіксатуры адлічэння, каб пазнейшыя замены моделей заставаліся порównаннымі.

Для запіскі параграфу 0 пра зміцнэнне: перад зменай коду неабходна адзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння. Аперацыёныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы схованы стан. Неабходна фіксавацыя часу выкарыстоўвання, а таксама косту токена чы супылкі праза функцыйнае рэзультаты. Відкрытая інформацыя пра косты запобегае неспадзеваным рачункам, калі парадокс пераходзіць з дэмовых у спадзеленыя сераверы.

Дакладнасць параграфу 0/957 пра зміцнэнне: неабходна вимерваць час выкарыстоўвання, класію памылак і колькасць токенаў, якія былі выкарыстаны для гэтай запіскі, а пасля — вырашыць, чы трэба заставіць змяну на адной пазычанай сэткі пытанняў, а не на адной лячбе.

Калі працуеце над першым этапам зміцнення, спачатку запісайце угоду: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага неудачы. Такі список контроля дапамагае залічваць будучыя змены коду чыста і адкрыта.

Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не чымсь, што дадзецца дагэтуль.

Деталі зміцнення 1/957: вымерайце час выканання, класію памылак і колькасць выкорыстоўваных токенав для гэтага пункту, а потым выберайце, чы робіць змену на адной пазначанай базе пытанняў, а не на адной лічбе прыкладаў.

Этап зміцнення 2 працюе лепей, калі яго спрыяглядаць як меравальную плошчу. Запісайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і запіску пра вярненне да пачатковага стану, перш чым расширваць масштабы. Спрыяглядайце гэты этап як угоду межа данымі і перакананымі выходамі. Дайце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад тыхнай частковай, непазначанай роботы.

Дзеянне паўжасткі 2/957: звярніце увагу на час выканання, класы памылак і витрату токенаў для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рашыцца застаўіць змяну.

Для 3-й стадзіі паўжасткі зьязку абмовіцеся пра вхідныя даны, адпаведальнага за крок і критэрыяях завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымае перадзьвяжаць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Канфігурацыю трэба зберагчы за межамі коду прыемленае. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функцый павінны знаходзіцца ў адном месцы, якое працавнікі можуць пераглядаць, не чытаючы весь граф.

Дзеянне паўжасткі 3/957: звярніце увагу на час выканання, класы памылак і витрату токенаў для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рашыцца застаўіць змяну.

Калі працуеце над 4-й стадзіяю практыкы забезпечэння безпекі, спачатку запісайце умовы кантракта: неабяжлівыя данні, сігнал успеху і тое, што выходзіць на падзею частковага нявыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.

Дзялянка 4/957 практыкы забезпечэння безпекі: замерайце час выканання, класы каштоўкаў і витраты токенав для гэтай дзялянкі, а пасля вырашайце, чы робіць змены на адной основе фіксаванага набору пытанняў, а не на адной лячбе.

4-я стадзія практыкы забезпечэння безпекі працуе лепей, калі яе спрыяваць як меравальную плошчу. Запісайце адны ідеальны прыклад роботы, адзін кейс нявыпання і прыказку па адкатаванні, перш чым расширваць масштаб. Запісвайце часы выканання і вартасць токенав або запыткаў разам з функцыйнальнымі рэзултатамі. Відкрытая інформацыя пра вартасці запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.

Дзеянне паўжасткі 5/957: звярніце увагу на час выканання, класы паказчаў і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.

Для 6-й стадзіі паўжасткі неабходна перад змянай коду чытко апісаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыйныя працавнікі должны магчымае перадзвануць гэты крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Таксама неабходна апісаць як шлях успеху, так і шлях вярнення да нормальнага стану. Праказы, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.

Дзеянне паўжасткі 6/957: звярніце увагу на час выканання, класы паказчаў і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.