Практычныя прытамулкі: як дыаганаваць неяўнасць RAG за дапамою суджыка адземленасці
Практычныя прыказкі: як дыаганаваць несправнасці RAG за дапамою прыбора для пераканання ў з’яўленні электрычнае з’язку; контракты, перакананні і блокі коду для команд, якія викорыстоўваюць гэты патэрн.
Існавайце гэта як перапрацоўаны варыянт ідэй з матеріалу «Як діагноставаць несправы RAG за дапамою критэрыяў адпаведнасці да реальнасці» для працаваючых з апаратам: чыстыя этапы, арганізаваныя блакі коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы задання. Этап агульнага аналізу найэфектывнейшы, калі яго розглядаць як вимерную паверхню. Запісаўце адна ідеальная транскрыпцыя, адзін прыклад несправы і прыметкі з вярнення да пачатковага стану, прычаму расшырюваць масштабы празначэння. Валіце маленькія, теставаныя елементы замест большых скрыптов. Калі якісьця кроку не выходзіце, прычына несправы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задання.
Структура несправы RAG
Для стадіі «Анатамія сцэны» неабходна прадзеўжча апісанне вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння працы перад зменым коду. Аперацыйныя працавнікі должны магчыма было перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяйце цій стадіі як на даговоры межаў вхідных дадзеных і перакананых выходных рэзультатаў. Даўце назвы артыфактам, апісайце крэтарыяў успеху і не прымайце тыхню частковую завершэннасць. Цітуйце тыя часткі тексту, якія фактычна лежалі в основе адпаведнай адказу. Без цітаў аперацыйныя працавнікі не зможуць адразніць галюцинацыю ад працягу індэксавання.
Чаму нельга проста так ацэніць гэта ў масштабным формате
Кабы з’ясаваць, чаму нельгае выконваць задачу, пярэд тым, як зменіць код, неабходна ўзгадка прынтаваннях, адпаведальнага за крок і крэтарыяў завершэння. Аператары должны магчымае перазваляць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выконання і кост токенаў або запытаў праза функцыйнае рэзультат. Відкрытыя данні пра косцы запобегаюць неспакойным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды. Указвайце тыя часткі тексту, якія фактычна лежалі в основе адпаведнай адказы. Без цых цітатаў аператары не можуць разлічыць галюцинацію ад працягу індэксавання.
Стварэнне судды
Для стадіі «Стварэнне судды» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтарыя выходу пры перадзеі коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба знаходзіць за межамі коду прыемленае. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцый належыць у аднам месца, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг. Прыкладзіце часткі тексту, якія фактычна лежалі в основе адпаведнай адказы. Без ціх цитатаў аператары не можуць разлічыць галюцинацію ад прасоўкі ў індэксаванні. Для стадіі «Стварэнне судды» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтарыя выходу пры перадзеі коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Валідзіце маленькія, тэставаныя елементы працоўнікаў у працоўніку большых, заплутаных скрыптав. Калі крок не выйшаў, прычына нехаспекі должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцуг задач.
SYSTEM:
You are a groundedness evaluator. You will be given a QUESTION, a CONTEXT
(retrieved passages), and an ANSWER generated by an AI assistant. Your job
is NOT to judge whether the answer is true in general, or well-written, or
relevant — only whether it is fully supported by the CONTEXT.
Do the following:
1. Decompose the ANSWER into a list of atomic claims (each claim = one
discrete factual statement, not a compound sentence).
2. For each claim, decide:
- SUPPORTED: directly stated or reasonably entailed by CONTEXT
- CONTRADICTED: conflicts with CONTEXT
- UNSUPPORTED: not addressed by CONTEXT at all (NOT the same as "false")
3. Quote the exact span of CONTEXT used as evidence for each claim
(or "none" if UNSUPPORTED/CONTRADICTED).
4. Give a one-sentence rationale per claim.
5. groundedness_score = (# SUPPORTED) / (# total claims).
Be strict: a claim that adds specificity not in CONTEXT (context says "a
discount applies," answer says "a 20% discount applies") is UNSUPPORTED.
Return valid JSON only:
{
"claims": [{"claim": "...", "verdict": "...", "evidence_span": "...", "rationale": "..."}],
"groundedness_score": 0.0,
"num_claims": 0
}
QUESTION: {question}
CONTEXT: {context}
ANSWER: {answer}
Калібруванне судды
Працюючы над стадзіяй калібрування судды, спачатку запісайце угоду: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэчвайце гэтую стадзію як угоду межа даннімі і перакананымі выходамі. Дайце назвы элементам, задаце критэрыя успеху і не падзельвайцеся на частковыя завершэння без паведамлення. Змяркуйце рівень запам’ятовання на фіксаванай сэтке пытанняў прычым регулюванні запрошэнняў. Частае змены запрошэнняў рэдка калі вялікі эфект на слабую систему аднаходжэння інформацыі.
Чытанне/Інтерпрэтаванне рэзультатаў
Калі працюеце над стадзіяй разбору рэзультатаў чытання, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераканальвае правдзівасць пазнейшых змян у кодзе. Запісвайце часы выканання і кост токеноў або запытаў праза функцыйнае рэзультат. Відкрытасць костаў з самага пачатку запобегае неспакойным рахункам, калі парадокс пераходзіць з дэмавай версіі ў спяльныя среды. Замерьце рэгрэт на фіксаванай сэтке запытаў прычым налаштаванні прапаза. Частая змена прапазаў рэдка калі-небудзь выправляе слабую систему аднаходжэння інфармацыі.
Заключэнне
Калі працюеце над стадзіяй Заключэння, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список перакладзець пазначае чыстасць будучых змян у кодзе. Зберагаюце настройкі за межамі коду прыемлена. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры. Перад налаштаваннем запитоў пераканайцеся ў рэкале на фіксаваным наборы запитанняў. Частае змена запитоў рэдка калі вярнуе слабую эфектыўнасць выкарыстоўвання дадзеных. Калі працюеце над стадзіяй Заключэння, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список перакладзець пазначае чыстасць будучых змян у кодзе. Валіце малыя, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшаў, нявыпанне должна паказваць на адну адпаведальнасць, а не на заплутаную лінію обробкі.
Чысты ліст для аператараў
Калі працюеце над стадзіяй аператыўнага чэк-лісту, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выходзіць пад час частковага абякання. Такі чэк-ліст дапамагае заставаць пазнейшыя змены коду чыстымі.
Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам.
Змяроўвайце рэткість адзыскання інфармацыі на фіксаванай сэтке запытаў прычым регулюванні прапаноў. Частае змены прапаноў рэдка калі вярнуе слабую систему адзыскання дакументаў.
Забезпечыце фіксаваныя версіі залежнасцей і запісайце хеш-значэнне зображэння, якое было выкарыстоўвана для дэманстрацыі. Возможнасць павтарнага стварэння результаатаў лепшая за традыцыйныя знання.
Вядзьміце прыоритет над малымі, тэставанымі елементамі працэсу над вялікімі скрыптамі. Калі якісь крок абякае, абяканне должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.
Змяроўвайце рэткість адзыскання інфармацыі на фіксаванай сэтке запытаў прычым регулюванні прапаноў. Частае змены прапаноў рэдка калі вярнуе слабую систему адзыскання дакументаў.
Перш чым запускать стак, заморозьце версіі, зафіксавце «золаты» транскрыпты для критичных шляхоў і паказваце крокі для атрыбуцыі. У спакаваных средах неабходны ліміты частоты, перакананні ў належнасці тэнантам і чыстае адпаведальнае аб’екта для ротацыі секрэтных дадзенняў. Валіце простую надзяйнасць працоўнікам, чым крэатывныя разовыя дэманстрацыі.
Прыметка для be3924f924ba: не кладзіце ключы прадастальнікаў у репазітарый, задаце верхнюю межу токенаў на сесію і зберагачыце транскрыпты празаўсёды з фікстурамі eval, каб пазнейшыя замены модэляў заставаліся пораўнанымі.
Калі працуеце над пунктом 0 з адзычнення, спачатку запісаце контракт: неабходныя вхідныя даны, сігнал успеху і тое, што выходзіце ў разы частковай нявыполненасці. Такі чэк-ліст дапамагае заставаць пазнейшыя змены коду чыстымі. Зберагачыце канфігурацыю празаўсёды за межамі коду аплікацыі. Файлы среды, хранільнікі секрэтных дадзенняў і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабходнасці чытання всей структуры.
Дзеянне паўжасткі 0/865: звярніце увагу на час выканання, клас памылкі і колькасць выкарыстоўваных токенаў для гэтага зьязначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.
Этап 1 паўжасткі працюе найэфектывней, калі яго розглядаць як меравальную плошчу. Запісаце адну ідеальную версію, адзін прыклад памылкі і зьязначэння пра адвярненне змян, перш чым расширваць сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісьць кроку не выходзіць, памылка должна адносіцца да конкрэтнай адпаведальнасьці, а не да заплутанага ланцоўка дзеяння.
Дзеянне паўжасткі 1/865: звярніце увагу на час выканання, клас памылкі і колькасць выкарыстоўваных токенаў для гэтага зьязначэння, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.
Для другага этапа прыцелення на зміцнэнне неабяжна практычна вызначэння вхідных дадзеных, адпаведальнага за шаг і крэтарыяў завершэння працы перад змінайом коду. Аператары должны магчымаць паўтарнае адкананне шагу з вядомай точкі контролю, не падозрываючы прыхованы стан системы. Неабяжна фіксаваць час выканання і вартасць токенаў або запытак палягліва да рэзультатаў функцыональных тэстаў. Візуабельнасць вартасцей з самага пачатку запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмавайнага сераўера ў спяльныя сераўеры.
Дзеянне прыцелення на зміцнэнне 2/865: памеры часу выканання, класаў абэрасцей і вартасці токенаў для гэтага пункту, пасля чаго неабяжна вырашыць, чы робіцца зміна на аднойчынных крэтарыях, а не на аснове індывідуальных спазырэнняў.
Калі працуеце над 3-й стадзіяю прыемкі з павышэння безпекі, спачатку запісайце угоду: неабяжлівыя данні, сігнал успеху і тое, што выходзіць пад частковы нявыплэн. Такі список контроля дапамагае заставіць пазнейшыя змены коду быць чыстымі.
Документавайце як «шчаслівы» шлях, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам.
Дзялей 3/865 прыемкі з павышэння безпекі: вымерайце час выканання, класыя ошибкі і витрату токенав для гэтай прыемкі, а пасля выберайце, чы робіць змены на адной фіксаванай сэтке пытанняў, а не на адной лічбе прыкладаў.
4-я стадзія прыемкі з павышэння безпекі работае лепей, калі яе спрыямаць як меравальную плошчу. Зафіксавайце адну «золатую» транскрыпцыю, адны прыклад нявыплэну і прыемку для абратнага запуску, перш чым расширваць масштаб.
Спрыяйце гэтай стадзіі як угоды межа даннімі і перакананымі выходамі. Дайце назвы артыфактам, задаце перакананні успеху і адмовіцеся ад тыхоўскага частковага завершэння.
Дзеянне паўжасткі 4/865: звярніце увагу на час выканання, класы памылак і витрату токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацься застаўляць змяну.
Для 5-го этапа паўжасткі неабходна перад змянай коду чытко апісаць вхідныя даны, адпаведальнага за этап і крэтыяры завершэння. Аперацыяныя працавнікі должны магчымае перадзваначыць гэты этап з вядомага пункта контролю, не прымусваныя здагадвацца пра схованы стан. Канфігурацыю трэба зберагчы за межамі коду прыемленае, таму што файлы сяродавішча, хранальнікі секрэтных дадзенняў і флагі функцый належаць у аднам месца, якое працавнікі можу аудытаваць, не чытаючы весь ланцуг залежнасцяў.
Дзеянне паўжасткі 5/865: звярніце увагу на час выканання, класы памылак і витрату токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшацься застаўляць змяну.
Калі працуеце над 6-ю стадзіяй забезпечэння безпекі, спачатку запісайце умовы кантракта: неабяжлівыя даны, сігнал успеху і тое, што выходзіць на частым неудачам. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста і прозрачна. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптав. Калі якась стадзія не выйшла, неудача должна вказваць на адну конкрэтную прычыну, а не на заплутаную сістэму.
Дзялянка забезпечэння безпекі 6/865: замерайце час выканання, класію каштоўкаў і колькасць токенаў, якія былі выкарыстаны для гэтай стадзіі, а пасля выберайце, чы робіць змены на адной фіксаванай базе пытанняў, а не на адной лічбе прыкладаў.
7-я стадзія забезпечэння безпекі працуе лепей, калі яе спрыямаць як меравальную плошчу. Запісайце адны ідеальны прыклад роботы, адзін кейс неудачы і прыказку па абратанні пазнейшых змэн, прычым не расширяючы сферу дзеяння. Запісвайце часы выканання і каштоўка токенаў або запытак праза функцыйнае рэзультат. Відкрытая інформацыя пра каштоўкі з’являецца першымі і запобегае неспакойным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя сервісы.
Дзеянне паўжасткі 7/865: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўіць змяну.