Практычныя прытамулі: RAG — гэта не проста вектарная пацукання.
Практычныя прыказкі: RAG — гэта не проста векторная пацьворка: контракты, перакантрольваннія і месцы для коду для команд, якіе викорыстоўваюць гэты патэрн.
У гэтым керавану парадоксальна дорага ад сыр'ёў да рабочай системы прадстаўлена для: RAG — гэта не проста вектарны пошук. Акцэнт ставіцца на практычныя крокі, чысткія перакананні та код, які можна проста дадаць у репазітарый без неабяснення меты. У стадзіі агляду неабходна з'явіць вхідныя даны, адпаведальнага за крок та критэрыя завершэння прычым перад зменай коду. Аперацыйныя працавнікі должны магчымае перадзначыць крок з вядомай точкі контролю без неабяснення схованага стану. Запісваюцца часы выконання та вартасць токенав або запытак праза функцыйнальныя рэзултаты. Відразувая візуабельнасць вартасцей запобегае неспадзянаным рахункам, калі дорага пераходзіць з дэмавай версіі ў спакульнаныя сераўеры.
Embed → Search → Generate
① Прыйом дадзеных: якосць выкарыстоўвання дадзеных вялічыцца ўжо перад самым пошукам
Калі працюеце над стадзіяй кантролі якасці адгэтування дадзейн, спачатку запісайце умовы кантракту: неабяжныя вхідныя даны, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераканаецца дапамагчы правядзіць змяны ў коде чыста і прозрачна. Зберагайце настройкі паза кодам прыемніка. Файлы сераўіса, хранільнікі секрэтных дадзейн і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжнага чытання всіх элементаў системы. Перад налагоджэннем запитоў пераканайце рэкалі на фіксаваным наборы пытанняў. Частае змена запитоў рэдка калі вярнуе слабую якасць адгэтування дадзейн.
Аналізаваць трэба па структуре, а не толькі як звычны текст
Калі працуеце з методам разбору па структуре, а не па этапах, спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выходзіць пад часты няудачны результат. Такі список контроля дапамагае заліцварыць будучыя змены ў кодзе.
Разделяйце на часткі па значэнні, а не толькі па розмеру
Калі працуеце над часткай, яка зусім не стосуецца этапаў, спачатку запісайце угоду: неабходныя даны, сигнал успеху і тое, што вядзецца пад частковым нявыпаннем. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы працы над велікімі скрыптамі. Калі якісь крок не выпанаецца, прычына нявыпання павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Перад налаштаваннем запитоў пераканайцеся ў рэгулярнасці адпаведзей на фіксаваны набор запитанняў. Частае зміненне запитоў рэдка калі-небудзь выправляе слабкую систему адналёгчэння інформацыі. Калі працуеце над часткай, яка зусім не стосуецца этапаў, спачатку запісайце угоду: неабходныя даны, сигнал успеху і тое, што вядзецца пад частковым нявыпаннем. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Запісвайце час выканання і вартасць токеноў або запитаў разам з функцыональнымі рэзултатамі. Відразувыя даны пра вартасці запобегаюць неспакойным рахункам, калі праця пераходзіць з дэмаверсій на спакульнаныя сераўры.
Дадзіце контекст пры вбудоўванні
Этап дадзення контэксту пры вбудоўванні работае наяўней, калі яго спрыятаць як мерыемую велічыну. Зберагучы адна ідеальная транскрыпцію, адзін прыклад неудачы і запіс пра абратку, перш чым расширваць масштаб. Хавайце настройкі за межамі коду прыемліка. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функций павінны знаходзіцца ў адном месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Раздзеляйце політыку часткавання дадзеных ад політыки ўзяць іх. Змена адной з яных не павінна вымагаць перапісву другой, калі зменяюцыся паказнікі якосці.
Даўжыце метададзеныя
Этап дадзення мета-даных працюе наяўней, калі яго спрыяваць як мерыемую велічыну. Зберагучы адна ідеальная версія, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Дакументаваць трэба як успішны, так і вярнучыся шляхы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Неабходна разлучыць правілы частковай обработкі дадзеных ад правілаў ўтрымання іх. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцыся показнікі якосці.
② Утрыманне: гэта канвейер, а не пошук
Этап адзыявання дадзеных працуе наўжней, калі яго спрыяваць як меравальную плошчу. Зберагачыце адні «золатыя» прыклады выкарыстоўвання, адні прыклады неудач і прыказы па абратанню змян перш чым расширваць сферу дзеяння. Валічыце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцужок задач. Раздзеляйце правілы часткавання дадзеных і правілы адзыявання. Змена ў одных не павінна вымагаць перапісву іншых, калі зменяюцца паказнікі якасці. Этап адзыявання дадзеных працуе наўжней, калі яго спрыяваць як меравальную плошчу. Зберагачыце адні «золатыя» прыклады выкарыстоўвання, адні прыклады неудач і прыказы па абратанню змян перш чым расширваць сферу дзеяння. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўысы.
1. Перапісваць
Для стадіі перапісву 1 неабяцо пазначыць вхідныя даны, адпаведнага адпаведальніка за крок і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымае перадзваніць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць паза кодам прыемпле. Файлы серавэра, хранілішча секретных дадзеных і флагі функцыйяў павінны знаходзіцца ў адном месцы, якое аперацыйныя працавнікі могу пераглядаць, не чытаючы весь структураны код. Паказваць неабяцо тые часткі тексту, якія фактычна лежалі в основе адпаведзення. Без цых цытатаў аперацыйныя працавнікі не зможуць адразліць галюцинацыю ад прасоўкі ў індэксаванні.
2. Межы пошуку
Для двух режыма працы перад стадіяй пошуку неабходна прадзеявленне вхідных дадзеных, адміністратара крока і крэтарыяў завершэння працы перад зменым коду. Аператары должны магчыма было перзапускать крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна аддзекаваць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не зможаць разлічыць галюцинацію ад працявання з індэксам.
3. Працаваць па шырокім і вузкім пошуку
Для стадіі «3 Search both ways» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выканаецца, прычына неудачы должна вказываць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач. Прытамульвайце тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх прытамульванняў аперацыйныя працавнікі не зможуць адразліць галюцинацыю ад працягу індэксавання. Для стадіі «3 Search both ways» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выканання і вартасьць токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасьць вартасцей з самага пачатку запобегае неспакою, калі процес пераходзіць з дэмовай среды ў спакульнаваныя сераўы.
ERR_CONNECTION_RESET
SKU-48392
API-v3-beta
4. Fuse
Калі працуеце над стадзіяй 4 Fuse, спачатку запісайце умовы: неабяжлівыя даннэ, сигнал успеху і тое, што выходзіць пад частыя неудачы. Такі список контроля дапамагае заліцварыць пазнейшыя змены ў кодзе. Храніце настройкі параду ўнутры коду прыемлівача. Файлы сераўнавання, сховішчы секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжлівага чытання всей структуры. Перад налаштаваннем запитоў пераканайцеся ў рэальным рівні вярнага аднаходжання на фіксаваным наборе запитаў. Частыя змены запитоў рэдка калі вядуць да павышэння якосці аднаходжання дакументаў.
RRF_score(d) = Σ 1 / (k + rank_i(d))
5. Rerank
Калі працюеце над 5-м стадіям Rerank, спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неудачы. Такі список пераконтролюе чыстасць пазнейшых змян у кодзе. Документавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пазнейшым дапрацоўкам. Змяржывайце рэкалі на фіксаваным наборы пытанняў прычымо да налаштавання запрасаў. Частыя змены запрасаў рэдка калі выправляюць слабую систему адналёгчэння інфармацыі.
③ Генераванне: хорашы контэкст усё ж не гарантуе хорашай адпаведзі
Калі працуеце на стадыі стварэння хорашага контексту, спачатку запісайце «контракт»: неабяжлівыя даннэ, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераканальвае залічваты пасляэйшныя змены ў кодзе адпаведна. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшоў, нявыполненне должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Перад налаштаваннем запитоў пераканайцеся ў рэгулярнасці адпаведзенняў на фіксаваны набор запитанняў. Частае змены запитоў рэдка калі-небудзь выправляюць слабую эфектыўнасць адзысквання інформаціі. Калі працуеце на стадыі стварэння хорашага контексту, спачатку запісайце «контракт»: неабяжлівыя даннэ, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераканальвае залічваты пасляэйшныя змены ў кодзе адпаведна. Запісвайце час выканення і кост токенаў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувыя данні пра косты запобегаюць неспакойным рахункам, калі праця пераходзіць з дэмавайнага режыма ў спяльныя среды.
Управлінне вікном контексту
Этап калітэксту пакета працюе наяўнейша, калі яго спрыяваць як мерыемую плошчу. Зафіксавайце адны ідеальны прымер, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Зберагаюце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функций должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Раздзеляйце правілы часткавання і правілы выявлення. Змена адных не должна прыводзіць да перапісву іншых, калі змянююцца паказателі якосці.
Межы запитаў і атрыбуцыі
Межы пры запуску задання і этап атрыбуцыі работаюць наяўней, калі іх спрыяваць як мерыемую паверхню. Запісаце адна ідеальная версія рэзультата, адзін прыклад неудачы і прыметку па адкату перш чым расширваць масштабы. Дакументаваце як успішны, так і вярнучыся шляхы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць частью продукту, а не пасляднім дапрацоўкам. Задаце бюджет токенав на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; строгі ліміты не дазволяюць дэмам ператварыцца на неспакоўлівыя рахункі.
Утриманне
Этап Абстэнцыі працюе найкраща, калі яго спрыяваць як меравальную плошчу. Зафіксавайце адны ідеальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Валіце маленькія, тэставальныя элементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Раздзеляйце правілы часткавання інфармацыі ад правіл яе выявлення. Змена адных не должна прымусіваць перапісванне іншых, калі змянююцца паказнікі якосці. Этап Абстэнцыі працюе найкраща, калі яго спрыяваць як меравальную плошчу. Зафіксавайце адны ідеальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Запісвайце часы выконання і косты токеноў або запытак праза функцыйнальныя рэзултаты. Відразувая візуальную інформацію пра косты, можна ухиліцца ад неспакою, калі процес пераходзіць з дэмовай среды ў спяльнаваныя сераўеры.
④ Ацэнка: нельга вылечыць тое, што не меряеце
Для адміністрацыі выкаання нельга падготавляць, задаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння раней, чым зменіць код. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не спрабоўваючы здогадвацца пра схованы стан. Конфігурацыю трэба залічваць параду ад коду прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаючы весь ланцуг задач. Паказваць трэба тыя часткі тексту, якія фактычна ляглі в основу адпаведнай адпаведзі. Без цых цитатаў аператары не можаць розразліць галюцинацію ад прычыны, зв’язанай з недастаткам індэксацыі.
Якасць выкарыстоўвання дадзеных
Для стадіі перакантролю якасці неабяжна ўзначыць вхідныя даны, адпаведальнага за этап і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчыма было перазапусціць этап з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія пераконтролы і обработка некантрольваных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Указваць неабяжна тыя часткі тексту, якія фактычна лежалі в основе адпаведнай адказы. Без цых цітатаў аперацыйныя працавнікі не зможуць адразніць галюцинацыю ад прасоў у індэксаванні.
Якасць генеравання
Для стадіі кантролю якосцу генеравання неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра захаваны стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына нехаспеку павінна вказываць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач. Наводзіце тыя часткі тексту, якія фактычна служылі падставай для адпаведнай адказу. Без ціх цытатаў аперацыйныя працавнікі не зможуць адразліць галюцинацыю ад працягу ў індэксаванні. Для стадіі кантролю якосцу генеравання неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра захаваны стан. Запісвайце час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спакульную.
Стан системы
Калі працюеце над этапам стану системы, спачатку запісайце умовы: неабяжлівыя даны, сигнал успеху і тое, што выходзіць пад частыя неудачы. Такі список дапамагае заліцварваць будучыя змены ў кодзе. Храніце настройкі парадульна ад коду прыемліка. Файлы сераўнавання, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры. Перад налаштаваннем запитоў пераканайцеся ў робочым ступені вярнага адналёгчэння на фіксаваны набор запитанняў. Частае зміненне запитоў рэдка калі вярна выправляе слабыя аспекты адналёгчэння.
⑤ Ад канвея да ціклу адзыва
Калі працуеце з процесам адзынкленаю паведамленняў да ўтварэння адзыва, спачатку запісайце умовы: неабходныя даны, сігнал пра успех і тое, што выканаецца у разе частковага нявыполнення. Такі список контроля дапамагае заліцьваты змяны ў кодзе пасля таго, як яны былі здабыты.
Ingestion → Retrieval → Generation → Evaluation
Retrieve
↓
Evaluate
↓
Enough evidence?
↓ no
Retrieve again
↓
Generate
Ментальная модель працы продукту
Калі працуеце над стадзіяй «Ментальная модель працы», спачатку запісайце умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список дапамагае заліцварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, нявыполнення должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зберагаеце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перадзял у тое ж самае прамэру ёсць частым выклікам затрачання ресурсаў. Калі працуеце над стадзіяй «Ментальная модель працы», спачатку запісайце умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список дапамагае заліцварыць пазнейшыя змены ў кодзе. Запісвайце час выканення і кост токенаў або запытаў праза функцыйнае рэзультат. Відкрытыя даны пра косцы з’являюцца раніше, таму не будзе неспакою, калі праця перайдзе з дэмаверсіі ў спакульнаныя сераўысы.
INGESTION
↓
RETRIEVAL
↓
GENERATION
↓
EVALUATION
↖
└── feedback loop / Agentic RAG
Апавясненні
Этап апеляцыйй працюе найкраща, калі яго спрыяваць як меравальную плошчу. Зберагачыце адны ідеальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перад расшырэнням масштаба.
Чакліст аператыўнай роботы
Этап чакліста аператыўнай роботы працюе найкраща, калі яго спрыяваць як меравальную плошчу. Зберагачыце адны ідеальны прыклад, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перад расшырэнням масштаба.
Спрыявайце гэты этап як кантракт межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даўайце назвы артыфактам, задаюце критэрыя успеху і адмовляйцеся ад тыхняе частковага завершэння без паведамлення.
Раздзеліце політыку часткавання дадзейнаў ад політыки ўзяць іх. Змена адной з яных не павинна вымагаць перапісву другой, калі зменяюцыся паказнікі якосці.
Калі дозволяе бюджет, дадзіце тэст на пераверканне критычнага маршруту ў системе CI з викорыстанням фіксатываў, а не рэальных платных API.
Запісвайце час выканання аперацый, а таксу токенаў чы выкарыстоўваных запитаў разам з функцыональнымі рэзултатамі. Відразлівае відображэнне костоў запобегае неспакойным рахункам, калі маршрут пераходзіць з дэмовай среды ў спакульнаную.
Раздзеліце політыку часткавання дадзейнаў ад політыки ўзяць іх. Змена адной з яых не павинна вымагаць перапісву другой, калі зменяюцыся паказнікі якосці.
Перш чым пераводзіць всю структуру, заморозьце версіі, зафіксавайце ідеальны транскрыпт критычнага маршруту і паказвайце способы абратнага запуску. У спакульных средах неабходны ліміты частоты запытоў, перакананні ў правах на выкарыстоўванне ресурсаў і чысткі власнік для змены секрэтных даных. Валіце простую надзейнасць працы над крэатывнымі, але разовымі дэмамі.
Запіска параграфу 6ef8d5fbb082: не класты ключы прадаўцоў у репазітарыю, задаць максымальны ліміт токена на кожную сесію, а таксама зберагчы транскрыпціі празаўседле з фікстурамі для ацэнкі, каб пазнейшыя замены моделяў заставаліся порównанневымі.