Практычныя прытамулкі: RAG — гэта не толькі адзысканне, а ўсё-такі адзысканне і ацэнка.
Практычныя прыказкі: RAG — гэта не проста выкарыстоўванне дадзеных, а таксама пошук і аналіз: контракты, перакананні, а таксама месцы для вставкі коду для команд, якія выкарыстоўваюць гэты патерн.
Існавайце гэта як перапісаны варыянт ідэй з матерыялу “RAG Is More Than Retrieval — It’s Search & Judge” для працавача-оператара: чыстыя этапы, арранжаваныя блакіты коду і прыметкі па восстановленню, якія застаюцца пасля перадачы задання.
1. Введэнне
Этап 1 “Введэнне” працюе найкраща, калі яго розглядаць як меравальную плошчу. Запісаўце адну ідеальную транскрыпцыю, адзін прыклад неудачы і прыметкі па анулюванні змян перш чым расширваць масштаб задання. Валіце маленькія, тэставальныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задання. Раздзеляйце правілы часткавання інфармацыі ад правіл яе выкарыстоўвання. Змена адных не павінна вымагаць перапісвання іншых, калі змянююцца паказнікі якосці.
2. Чаму сама толькі сэмантычная аднаковасць не дапамагае
Этап «2 прычыны: толькі сэроднечнасць» работае наяўней, калі яго спрыяваць як мерыемую велічыну. Зафіксавайце адны ідеальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Спрыяйце гэтам этапу як кантракту между вхіднымі даннымі і паўнастацэннымі выходамі. Дайце назвы артыфактам, задаць критэрыя успеху і не падзеўляйцеся частым, непаўным выкананнем задачы. Раздзеліце правілы часткавага апрацоўвання дадзеных і правілы ўзяць іх зборам. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцыся паказнікі якосці.
3. Шаблон «Пошук і адгук»
Этап «3. Суддзя пошуку» працюе наўсёрэдзей, калі яго розглядаць як вимерную плошчу. Зафіксавайце адны «золаты» прыклад рэзультата, адны прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Запісвайце час выканання аперацый, а таксу токеноў чы запитаў разам з функцыйнальнымі рэзультатамі. Відразлівае паказанне вартасцей запобегае неспадзячым расходам, калі процес пераходзіць з дэмовай среды ў спяльнаныя сераўеры. Раздзеляйце правілы часткавага обробкі дадзеных і правілы ўзяць дадзеныя. Змена аднаго з іх не должна вымагаць перапісвы другога, калі зменяюцца паказнікі якосці.
4. Чым на самай працэўнае ёсць эмбеддынгі
Методы 4 What Embeddings працююць наякша, калі іх розглядаць як вимерную паверхню. Зафіксавце адны ідеальны прыклад, адну справу з бягам і прыметку па вярнэнні да пачатковага стану пры розшырэнні масштаба. Зберагачце настройкі пазырочна ад коду прыемліка. Файлы сяродавішняе сераўісу, хранілішчы секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць аудыт без неабяжнага чытання всіх дадзеных. Раздзеляйце правілы часткавання дадзеных ад правілаў ўзяць іх. Змена адных не должна вымагаць перапісву іншых, калі зменяюцца паказнікі якосці.
5. Методы пераранжавання: што яны ўсё і калі іх вярнуць
5 методаў перыякшання рангавання: Калькі, якія работаюць наўзаемна, ёсць найэфектывнейшыя, калі іх расследжваць як вимерныя показнікі. Перш чым расширваць масштабы, зафіксавайце адны ідеальны прыклад, адну справу з бягам і прыметку пра вярнэнне да пачатковага стану. Запісвайце адночасна шлях успеху і шлях вярнэння да нормы. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў ёсць часткай продукту, а не наступным этапам дапрацоўкі. Раздзеліце правілы частковай обробкі даных ад правілаў ўзяць іх з памяці. Змена аднаго з іх не должна вымагаць перапісвання другога, калі зменяюцыся показнікі яснасці.
5.1 Взаімная фузыя рангавання (RRF)
Для стадіі 5 1 Reciprocal Rank неабяжна практыка з’явіць вхідныя даны, абонента крока і крэтынія выходу пры перадзеўцы коду. Аператары павінны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы схованы стан. Запісваць трэба час выконання і кост токенаў або запытаў разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі траекторыя пераходзіць з дэмаверсіі ў спадзеленыя сераўысы. Неабяжна цітаваць тыя часткі, якія фактычна ляглі в основу адпаведзь. Без цітатаў аператары не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.
5.2 Cross-Encoder Rerankers
Для стадіі 5 2 Cross-Encoder Rerankers неабяжна практычна апраначка: перш чым зменяць код, неабяжна задаць вхідныя даны, адпаведнага аператора і крэтыяры завершэння. Аператоры павінны магчымаць перзапуск ціх крокаў з вядомага пункту контролю, не прымушаныя здагадвацца пра схованы стан. Конфігурацыю неабяжна трываць праза код аплікацыі. Файлы сераўнавання, храненні секрэтных дадзенаў і флагі функций павінны знаходзіцца ў адном месцы, якое аператоры можаць пераглядаць, не чытаяўшы весь граф. Неабяжна цітаваць тые часткі тексту, якія фактычна лежалі в основе адпаведнай адказы. Без цітатаў аператоры не можаць разлічыць галюцинацыю ад працягу індэксавання.
5.3 ColBERT і модэлі пазнейшай взаімадзеяння
Для пады 5 3 ColBERT і ўзлокаў неабходна падазначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю без неабясненняя схованага стану. Неабходна адзначыць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Калі наступны крок — це код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакрычэнням схемы, чым вольныя тэкстовыя апісанні. Для пады 5 3 ColBERT і ўзлокаў неабходна падазначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры зміне коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю без неабясненняя схованага стану. Спрыймайце гэты узлок як кантракт межа вхіднымі данымі і перакрытымі выходнымі данымі. Падазначыце назвы артыфактав, визначыце перакрычэння успеху і не падтрымайце беззвучнае частковае завершэння.
5.4 Пераранжаванне за дапамою LLM-судды
Калі працюеце над 5-ым, 4-ым этапамі переранкавання з викорыстаннем LLM як суддзі, спачатку запісайце угоду: неабяжлівыя даннэ, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Запісвайце час выконання і кост токенав або запытаў праза функцыйнальныя рэзултаты. Відразувая візуабельнасць костаў запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавайнага режыма ў спяльныя сераўры. Зберагайце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перадзял у той жа прамэр ёсць частым выклікам зайвых витрачэнняў.
6. Как выбіраць моделі Embedding і Reranking
Калі працюеце над 6 стадзямі «Як выбраць», спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список пераканальвае ў тым, каб пазнейшыя змены коду былі чыстымі. Зберагаеце настройкі за межамі коду прыемлі. Файлы сераўнавання, храненні секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры. Зберагаеце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перадача таго ж прамэрая ёсць частым выклікам зайвых витрачэнняў.
6.1 Пачніце з задання
Калі працуеце з этапам 6.1 «Пачатак», спачатку запісайце умовы кантракту: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўвае чыстасць пазнейшых змян у кодзе. Документавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам. Змяроўвайце рэтард на фіксаваным наборы запитаў прычыну налаштавання підказак. Частае змяненне підказак рэдка калі выправляе слабкую систему адзыскання інформаціі. Калі працуеце з этапам 6.1 «Пачатак», спачатку запісайце умовы кантракту: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўвае чыстасць пазнейшых змян у кодзе. Спрытывайце гэты этап як кантракт межа даннімі і перакананымі выходамі. Дайце назвы элементам, задаць критэрыя успеху і адмовіцеся ад тыхоўага частковага завершэння.
6.2 Выбір моделі Embedding
6.2 Выбір стадіі працюе найэфектывнейша, калі яго розглядаць як вимерную плошчу. Запісаце адна «золатая» транскрыпцыя, адзін прыклад неудачы і запіс працэў па адвярненню змян пры розшырэнні масштаба. Запісвайце часы выканання і кост токенав або запытаў па боку функцыйнальных рэзультатаў. Відразлівае паказанне костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавайнтару ў спяльныя сераўы. Задаце бюджет токенав на адну партію і на адну сесыю. Інструменты-агенты актыўна расширваюць контэкст; строгія ліміты не дазволяюць дэмавайнтарам ператварыцца на неспакойныя рахунки.
6.3 Выбір модэлю пераранжавання
6.3 Выбір этапа працюе найэфектывней, калі яго розглядаць як вимерную плошчу. Зафіксавце адны ідеальны прыклад, адну справу з бягамі та прыметкі па поверненню да пачатковага стану, перш чым расширваць масштабы. Зберагаеце настройкі пазначынай ад коду прыемліка. Файлы сераўнавальной среды, хранільнікі секрэтных данных та флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль, не чытаяўшы весь структураны дадзеныя. Задаеце ліміты токенав на кожны раунд та на кожную сесію. Інструменты з агентным режымам актыўна расширваюць контекст; строгі ліміты запобегаюць таму, каб дэманстрацыі ператварыліся на неспакоючыя рахункі.
6.4 Сумарная стратэгія
Этап 6 4 The Combined работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Дакументаваць трэба як успішны, так і вярнучыся шляхы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Разлучыць політыку частковай обработкі дадзеных і політыку ўтрымання інформацыі. Змена адной з яных не должна вымагаць перапісвання другой, калі зменяюцыся паказнікі якосці. Этап 6 4 The Combined работае наяўней, калі яго спрыяваць як мерыемую паверхню. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Спрыяваць гэты этап як кантракт межа вхіднымі дадзенымі і перакананымі выходнымі рэзультатамі. Даць назвы артыфактам, задаць критэрыя успеху і не падзеўляцца частковым, некоректным завершэнням.
7. Падсумак
Для 7-го этапу падчытання неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры перадзмене коду. Аперацыйныя працавнікі павінны магчымаецца перазапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісваць час выконання і вартасць токенаў або запытак праза функцыйнае рэзультат. Відкрытая візуабілізацыя вартасцей запобегае неспакоўным рахункам, калі траекторыя пераходзіць з дэмавай версіі ў спяльныя сераўысы. Указваць часткі тексту, якія фактычна ляглі восновай для адпаведнай адказу. Без ціх цытатаў аперацыйныя працавнікі не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні.
Справакі
У стадії «Апавяранні» неабходна ўзначэнне вхідных дадзеных, адпавядаючага за крок спецыяліста і крэтарыў завершэння працы перад змянай коду. Аператары должны магчымае запускіць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба зберагчы за межамі коду прыемленае. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцый належыць у аднам месца, якое аператары можаць пераглядаць, не чытаючы весь код. Паказвайце тыя часткі тексту, якія фактычна ляглі в основу адпаведзення. Без цых цытатаў аператары не можуць разлічыць галюцинацію ад працявання з непаштоўным індэксам.
Чек-ліст для эксплуатацыі
Калі працуеце над чек-лістам для эксплуатацыі, спачатку запісуйце умовы: неабходныя вхідные дадзеныя, сігнал успеху і тое, што выканаецца у разе частковага нэўспеху. Такі чек-ліст дапамагае заставаць пасляэйшыя змяны коду чыстымі.
Лепшыя маленькія, тэставаныя елементы чым велікія скрыпты. Калі якісь крок не выйшае, адказка за гэта паталогія должна быць спрямована на адзін конкрэтны элемент, а не на заплутаны ланцюг задач.
Перад налаштаваннем запитоў трэба пераканацца, што система правільна адпавядае на фіксаваны набор запитанняў. Частае змены запітоў рэдка калі вярнуюць нормальную працэздатнась системы.
Перш чым зменіць запіты або моделі, трэба зафіксаваць нынешнія оптимальныя настройкі. Змена як самай системы, так і критэрыяў её працы можа маскаваць падвышэння кількась тыпоў паталогій.
Калі бюджет дазволяе, трэба дадаць тэст на перакананне працэздатнасі критычнага шляху ў процесе CI, выкарыстоўваючы фіксаты, а не рэальныя платныя API-сервісы.
Канфігурацыю трэба знаходзіць паза кодам прыкладнага програму. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функцыйяў должны быць аднароджаны ў аднам месца, куда аператары можу аудытаваць іх, не чытаючы весь код программы.
Перш чым запускать стак, заморозьце версіі, зафіксавце ідеальны транскрыпт для критычнага шляху і паказвце спосабы атрыбутавання. У спільных сэрвісах неабходны ліміты частоты запытоў, перакананні ў правільнасці арендавання ресурсоў і чыста вялічына адпаведальнага адносу за ротацыю секрэтных дадзеных. Лепш выбіраць простую надзею на надзейнасць, чым хітрыя експерыментальныя дэманстрацыі.
Прыметка для пакета 9f8e0364fe5b: не кладзіце ключы прадаўцоў у репазітарый, задаце верхнюю межу токенаў на кожную сесію і зберагачыце транскрыпты празаўсёды пад фіксы для ацэнкі, каб пазнейшыя замены моделей заставаліся порównанымі.
Прыметка па забезпечэнню надзейнасці 0 стадыі лепш працюе, калі яе спрыягчываюць як мераемую плошчу. Зафіксавце адны ідеальны транскрыпт, адзін прыклад неудачы і прыметку па атрыбутаванні перш чым расширваць масштаб. Канфігурацыю трэба заставляць празаўсёды за межамі коду прыемленае. Файлы сэрвісаў, хранільнікі секрэтных дадзеных і флагі функций должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць аудыт без неабходнасці чытання всей структуры.
Дзеянне паўжчання 0/875: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набора пытанняў, а не на асобістых спазыраннях, выявіце, чы рэшацца застаўляць змяну.
Для першага этапу запісу паўжчання задаць неабходна вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны процес.
Дзеянне паўжчання 1/875: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набора пытанняў, а не на асобістых спазыраннях, выявіце, чы рэшацца застаўляць змяну.
Калі працуеце над 2-й стадзіяю прыемкі з паўнейшага захавання, спачатку запісайце умовы кантракту: неабходныя даны, сігнал успеху і тое, што выходзіць па частым неудачам. Такі список контроля дапамагае заставаць пазнейшыя змены коду чыстымі. Запісвайце час выканання і вартасьць токенаў або запытак па боку функцыйнальных рэзультатаў. Відразлівае паказанне вартасцей запобегае неспадзяваным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянне прыемкі з паўнейшага захавання 2/875: замеры часу выканання, класаў паказакоў і витрачання токенаў для гэтай прыемкі, пасля чаго вынікніце рашэнне пра тое, чы хацеце застаўіць змену на адной фіксаванай сэтке пытанняў, а не на адной лічбе прыкладаў.
2-я стадзія прыемкі з паўнейшага захавання работае лепей, калі яе спрыямаць як мерыму аб’ект. Запісвайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваце сферу дзейства. Дакументавайце як успішны, так і вярнэння да пачатковага стану шляхі. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных паведамленняў є частью продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжасткі 3/875: звярніце увагу на час выканання, класы паказчыкаў і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацься застаўляць змяну.
Для 4-го этапа паўжасткі неабходна перад змянай коду чытко апісаць вхідныя даны, адпаведальнага за выкананне крока і критэрыяы завершэння. Аперацыйныя працавнікі должны магчыма было перазапускаць крок з вядомай точкі контролю, не прабуючы спадарацца прыватны стан системы. Штодзе гэты этап трэба спрыяць як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі: дайце назвы всім элементам, апісаць критэрыяы успеху і не прабывайце прыймаць часткова завершаныя рэзультаты без падтверджэння.
Дзеянне паўжасткі 4/875: звярніце увагу на час выканання, класы паказчыкаў і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацься застаўляць змяну.
Калі працуеце над 5-м падземам прыемкі забезпечэння безпекі, спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць на частым неудачам. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста і адкрыта. Зберагайце настройкі пазначыцельна ад коду прыемлена. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры.
Дзялёўка забезпечэння безпекі 5/875: вымерайце час выканання, класію каштоўкаў і выкарыстоўванне токенаў для гэтай прыемкі, а пасля выберайце, чы хацяце застаўіць змену, стварыўшы фіксаваны набор пытанняў, а не на базе індывідуальных спазыроў.
5-й падзем прыемкі забезпечэння безпекі работае лепей, калі яго спрыямаць як меравальную плошчу. Зберагайце адны ідеалны прыклад роботы, адзін кейс неудачы і прыемку для вярнення да пачатковага стану, прычым не расшырюючы сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісьць крок не выйшае, неудача должна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок дзеянняў.
Дзеянне паўжырання 6/875: звярніце увагу на час выканання, класыя ошибак і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчыне з фіксаваным наборам пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.
Для 7-го этапу дзеяння паўжырання неабходна перад змінай коду чытко вялічыць параметры, адпаведальнага за крок і критэрыяы завершэння. Аперацыйныя працавнікі должны магчымае перадзвануць гэты крок з вядомага пункта контролю, не прымуджаючыся здагадвацца пра схованы стан. Запісвайце час выканання і колькасць токенаў або запытак праза функцыйнае рэзультат. Відкрытая інформацыя пра витраты запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды.
Дзеянне паўжырання 7/875: звярніце увагу на час выканання, класыя ошибак і колькасць токенаў, якія былі выкарыстаны для гэтага зазначэння, а пасля, на аднойчыне з фіксаваным наборам пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.