Галоўная / Артыкулы

Адаптаванае знаходжэння дакументаў для сям’і: стварэнне кантэксту RAG, які пакрывае кожную частку запіту.

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

Выдавец: REACTAPP.TOP7 хв чытання1719 слоў

Крыніцы: https://ai.plainenglish.io/enterprise-advanced-rag-article-5-of-5-22eaeeb42c59

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

Гэта ўжо включаная слабаса простаг методу пошуку top-k: ранжыраванне фрагментаў по аднаму ніч не гаворыць пра тое, чыры всі неабходныя для адпаведзення панявы ўжо прысутныя.

Значамасць не значыць пূрнасці

Звічайна сістэма каналізаціі ранжуе фрагменты і зберыгае першы k. Гэта підходыць, колі одын тып даных достатній для вірышэння пітання, але неефектывно, колі потрыбне параўнання, сінтэз чы кілька джэрэл інформацыі. Прыпустымо, першы пяць фрагментыв стосуюцца таемніць, проце для адказы таксама потрыбна ідэнтычнісць ServiceAccount і авторызація RBAC. Такій підхід ёсць розумнім на локальному рывні, але неповнім у глобальному кантэксты.

Збільшэння значэння top_k можа допомогты, але не гарантуе рэзультату. Більшый обсяг даных можа прызвесты до дублікатыв, шуму, затрымок і вісокіх вітрат, без гарантыі, што бракуючый елемент з’явіцца; крым того, калі одна група джэрэл домінуе, яна можа самостыйно зайняты першы 20 позіцій. Тому необхідно встановіты обмежэння шчодо охоплення.

Useful context = relevance + required-family coverage + trusted provenance - noise

Адаптаванне парадыксоў на адзінку додае гэтыя абмежэння, заўсёды залічаючы стандартную рангаванне па адносе прыналежнасці.

Што лячыцца як адзінка

Адзінка — гэта сукупнасць істочнікаў або фрагментаў, якія можуць выпалніць адну з задач у пытанні. Яна не павінна адпавядаць адной файлу, атрыбуту тэмы, кластэру укладання, стратэгіі пошуку чыяму-небудзь фрагменту. Уявіце пытанне пра безпечную эксплуатацыю прыемлівання: яго адзінкамі могуць быць маршрутызацыя вхідных запыткаў, адкрыцьце служб і характэрыстыкі гатовнасці. Калькі дакументаў могуць паспеліць да адзінкі «Службы», а дакумент можа належаць да калькі адзінкаў, калі яго метаданы і змест падтрымліваюць гэта.

Планаваць парадыксы пры фінальным выборэ

Для вядомых форм складных пытанняў праект выкарыстоўвае дэтэрміністычны планавальнік парадыксоў. Канцэптуальна яго выходам ёст тырада пар (source_pattern, rescue_query), пры чым існуе ентры для кожной адзінкі, якая патрэбна пытанню:

def evidence_plan(question: str):
    # Returns list of (family_pattern, rescue_query) tuples
    # for recognized composite question shapes
    if asks_about_workload_identity(question):
        return [
            (SECRET_SOURCE_PATTERN,      "Kubernetes Secret credentials Pod"),
            (SERVICE_ACCOUNT_PATTERN,    "Pod ServiceAccount workload identity"),
            (RBAC_SOURCE_PATTERN,        "RBAC least privilege RoleBinding"),
        ]
    return []  # unknown shapes continue through normal retrieval

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

Аўтэнтыфікацыя прыналежнасці

У данам аналізе прыналежнасць да вярсткі выкарыстоўваецца падпараднасць рэгулярнага выраза з іменам джэрэла фрагмента:

pattern.search(str(chunk.source))

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

{
  "source": "security-policy.pdf",
  "document_id": "doc-123",
  "chunk_index": 17,
  "evidence_family": "access-control",
  "authority_tier": "official",
  "version": "2026-07"
}

Членства тады можна вырахаваць простым вычысленнем: chunk.metadata["evidence_family"] == required_family.

Адзысканне нехваткаючых семей

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

for family_pattern, rescue_query in plan:
    matches = [c for c in candidates if family_pattern.search(c.source)]

    if len(matches) < desired_candidate_count:
        # Targeted rescue — bounded, not an open retry loop
        rescued = sparse_search(rescue_query, top_k=wide_limit)
        candidates.extend(
            c for c in rescued if family_pattern.search(c.source)
        )

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

Перыякораванне выбірае варыянты, а не сямейы

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

0.4 × normalized cross-encoder score
+ 0.3 × normalized retrieval score
+ 0.3 × lexical overlap
+ conditional exact-token bonus

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

selected = []

# Step 1: reserve best chunk per required family
for family in required_families:
    best_match = first_ranked_match(family, ranked_chunks)
    if best_match:
        selected.append(best_match)

# Step 2: fill remaining slots by global rank
selected.extend(c for c in ranked_chunks if c not in selected)

final_chunks = selected[:top_k]  # constrained top-k, not an alternative to ranking

Чаму фрагменты з аднаго істочніка можаць патрэбна застацца разам

Ранняя версія методу выбору з урахоўваннем сямейных даных падрыхтавала адклоненне, выкарыстоўваючы дуплікацыю па імену файлу. Уявіце сабе документ NetworkPolicy з адзельнымі часткамі пра поведанне за замовчаннем, правіла вхіду і правіла выходу, якія ўсе неабходны для аднаго складанага запіту. Калі выбіранне дазволяе толькі адзін фрагмент на імя файлу, две неабходныя часткі знікаюць. Правільная політыка дуплікацыі залежыць ад трэбаванняў да доказаў: яна павінна усунуць зайвасць без падрыву полноты інформацыі, а адны істочнік можа законна запростаць калькольвыя допаможныя часткі, калі кожная з іх падпалядае на аднаццае трэбаванне.

Аўтарытэт проты рэлевантнасці

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

Relevance:  Does this passage discuss the question?
Authority:  Is this an approved source of truth?
Coverage:   Which required evidence obligation does it satisfy?

Адзін рэйтынг не павінен проста так заменяць сабой усе тры. Метаданы аўтарытэту таксама павінны перазстаць пасля прыемкі, выкарыстання, суязавання, пераранжавання, кэшавання і серыялізацыі праз API, а не проста застацься ў базе дадзеных вектароў.

Корэктывацый RAG без падтрымкі всіх аспектаў

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

Retrieve broadly
→ shape and rerank candidates
→ reserve family coverage
→ grade evidence (CRAG)
→ restore validated required families
→ build context

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

Апылэнне паводлівасці

Толькі адносна значымасць фрагмента не можа паверыць у здатнасць прыстрою выкарыстоўваць інформацыю, адносную сям’е. Простая метрыка воспамінання сям’і адкрывае гэты прыемак:

Evidence-family recall = covered required families / total required families

# Example: Secret + RBAC covered, ServiceAccount missing
Evidence-family recall = 2/3 = 0.67

# This failure is invisible to standard chunk-relevance metrics

Наборы тэстаў должны включаць механізмы аднараджэння зніклых сямей, выжыванне праз пераранжаванне і праз CRAG, правільныя альтэрнатыўныя выкладнікі, дадзеныя з аднаго дакумента, фільтрацыю на адпаведнасць автантытэту, кантэйнер top-k, меньшы за колькісць неабяжных сямей, а таксама запытанні, якія не павінны запускаць жадны план.

Формы неудач

  • Планавальнік, які запускае планы занадта шырока, таму што загальны ключавы слова актывае некалякі план. Неабяжна выкарыстоўваць комбінаціі фраз і негатыўныя формы.
  • Непূরны план, калі знаходзяцься заявленыя сям’і, але запытанне так і не можа быць адпаведзена. Зніклыя элементы павінны быць ўключаныя ў план і ў тэсты на рэгрэсію.
  • Змена назв выкладнікаў, якая прыводзіць да таго, што рэгулярныя выразы болей не падходзяць. Тэсты на адпаведнасць корпусу должны паўнастаць, што запланаваныя сям’і супараднуюцца з рэальнымі выкладнікамі.
  • Запіты на адказ пра спасэнне занадта пераспецыялізаваны па запітам на адказ. Іх трэба складваць на адваротнае падставе канцэптай домэну, а таксама пераканаліваць і пераглядаць за дапамою закрытых прыкладаў.
  • Зберэжэнні, якія заходзяць слабыя доказы. Неабходна знайсці калькі кандыдатаў на адну групу і пераранжаваць іх прычымоўна, пры чым таксама трэба аплываць пераканаленням і пераглядамі мінімальной рэлевантнасці.
  • Занадта многа груп для дазволенага обсягу кантэксту, што значыць, што планавальнік павінен ставіць прыорытэты, з’еднаць сумежныя доказы або прагледзець уточнення.
  • Модэль, якая ігнаруе частку доказаў. Полны адлік не гарантуе полной сынтэзы, таму падказкі і пераканаленняя перагляды должны адпаваць плану.
  • Наступныя удосконаленні

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

    Мэтам не ўскладніць адзысканне інфармацыі для кожнага запіту. Неабяжна дадзіць дапамогу толькі тады, калі запіт справаўна патрабуе калькі разных відоў доказаў. Метод «Top-k» выбірае тыя фрагменты, якія здаюцца найболей рэлевантнымі, а метод адзыскання доказаў па ўзроджэнню додае другі запіт: чыі ў канцэльнай інфармацыі ёсць всі віды доказаў, неабходныя для цэлага адказу? Параметр рэлевантнасці паказвае, чыі фрагмент ўжыткавы, параметр автантычнасці — чы можна яму даверыць, а параметр павноты — чы можа адказ быць цэлым. Для практычнага відпрацоўвання RAG неабходны ўсе трое.