Добици:
- Имплементација хибридне претраге која комбинује топ-к избор и семантичку претрагу и претрагу по кључним речима
- Повећање тачности прве претраге са поновним рангирањем
- Учините тешка питања лакшим за претраживање помоћу техника као што су трансформација упита и ХиДЕ
Лепо сте исецкали документе и ставили их у векторску базу података. Сада прави посао: преузимање правих делова када корисник постави питање. Ово се зове проналажење и представља окосницу квалитета РАГ-а. Запамтите фразу "Квалитет преузимања = квалитет РАГ"; Ова јединица је управо уметност побољшања тог квалитета. Покрићемо практичне технике од селекције топ-к до хибридне претраге, од поновног рангирања до трансформације упита.
Топ-к: Колико комада ћемо донети?
Најосновније подешавање: колико комада (к) да се врати из претраге. Ако донесете мање (к=1) постоји велики ризик да пропустите тачан комад; Ако додате превише (к=20), то ће додати буку моделу и цена токена ће се повећати.
Разликовати два концепта. Подсетимо: стопа по којој је исправан комад међу преузетима. Прецизност: стопа по којој је оно што се преузима релевантно. Повећање к повећава памћење, али смањује прецизност. Циљ је уравнотежити то двоје.
топ-к
Утицај
погодна ситуација
1-3
Висока прецизност, ризик од промашаја
Једноставна питања са једним одговором
4-8
Баланце; већина сценарија
Генерални корпоративни РАГ
10-20
Веће присјећање, бука се повећава
Са поновним рангирањем (испод)
Савет: Уобичајени и моћни образац: дохватите широко (к=20), а затим сузите са поновним рангирањем (топ 4). На овај начин нећете ништа пропустити и моделу дајете чист контекст.
Хибридна претрага: моћ две претраге
Семантичка (векторска) претрага обухвата значење, али пропушта ствари: пун код производа („КСР-4471“), ретка скраћеница, право име, број верзије. За ове задатке тачног подударања, старошколско претраживање кључних речи — посебно класични алгоритам назван БМ25 — је веома добро.
Хибридна претрага комбинује то двоје: и семантичка и претрага кључних речи функционишу, комбинујући резултате. Дакле, у питању као што је „Гарантни период на
Спајање се обично врши помоћу РРФ (Реципроцал Ранк Фусион): нумера која је виша на обе листе долази напред.
# Хибридни проналазак (концептуални)сем = вецтор_сеарцх(питање, к=20) # значење кључ = бм25_сеарцх(питање, к=20) # фуллвордресулт = ррф_мерге(сем, кеи)[:8] # споји два, топ 8
Поновно рангирање: Други и паметнији пролаз
Први позив може бити брз, али непристојан. Поновно рангирање оцењује кандидате које је вратила прва претрага једног по једног са снажнијим моделом (обично унакрсним кодером — моделом који заједно чита питање и пасус и оцењује релевантност) и помера оне најрелевантније на врх.
Логика је следећа: прва претрага додељује велики број кандидата за опозив (20 кандидата), реранкер бира најбоља 4 за прецизност. Овај двостепени приступ је много прецизнији од једностепене претраге. То кошта одређено кашњење и додатну обраду; Добитак је значајно повећање квалитета.
# Двостепени проналазак (концептуалних)кандидата = хибрид_сеарцх(питање, к=20) # широк, брзи резултат = реранкер.сцоре(питање, кандидати) # оцена релевантности за контекст сваког кандидата = ратед.ранк()[:4] # прва 4
Трансформисање упита
Понекад проблем није у тражењу, већ у самом питању. Ако корисник пита „шта је са удаљеним радницима?“ ', ово се не може тражити сам (није јасно шта је за удаљене раднике). Ево техника трансформације упита:
- Поново напишите: Користите историју разговора да бисте поставили питање као самостално: „Шта радници на даљину имају право на годишњи одмор?“
- Више упита: Генеришите 3 различита израза истог питања, претражите са свим њима, комбинујте резултате. Различите речи налазе различите делове.
- ХиДЕ (Хипотхетицал Доцумент Ембеддингс): Прво одштампајте „могући одговор“ на модел, а затим га уградите и потражите тај замишљени одговор. Имагинарни одговор се понекад налази боље јер је речима ближи стварном документу.
# Вишеструке (концептуалне) варијанте = модел.урет("Изразите ово питање на 3 различита начина: " + питање)тум_сонуц = []за в у варијантама: алл_сонуц += вецтор_интермедиате(в, к=6)цонтект = сингулар_анд_ордер(тум_ресулт)[:6]
Слабо проналажење / јако враћање
Слаб (једностепена, само семантика, константа к=3):
ресулт = вецтор_сеарцх(куестион, к=3)# Проблем: код производа је промашен, не може се унети тачан део 3 у тешка питања.
Моћан (хибрид + широки + поновно рангирање + више упита ако је потребно):
кандидати = хибрид_сеарцх(реврите(питање, прошлост), к=20)цонтект = реранкер.сцоре(питање, кандидати).фирст(4)# И тачно подударање и значење су ухваћени; Иде на најбоља 4 модела.
Три мини кућишта
Случај 1 — Код производа је избачен. Чиста семантичка претрага тима за подршку није могла да пронађе „РТКС-9080“ дословно у питању „Грешка управљачког програма РТКС-9080“; Доносио је друге производе са сличним називима. Када је додата хибридна претрага, дошло је до тачног подударања кода и стопа враћања тачних чланака је порасла са 58% на 92%.
Случај 2 — Разлика у поновном рангирању. Паралегал је радио са к=5, али тачна ставка је већину времена 7-10. Остао је у редовима. Када је уведено к=20 + поновно рангирање, стопа тачних чланака међу прва 3 порасла је са 61% на 94%; Латенција је повећана за само 300 мс — прихватљив компромис.
Случај 3 — Накнадно питање без контекста. У ХР асистенту, корисник пита „шта је са хонорарним радницима?“ Када сам питао, систем је донео небитне делове. Преписивањем упита (извлачење контекста „годишњег одмора“ из прошлости и додавањем „Запослени са непуним радним временом имају право на годишњи одмор“), стопа тачних одговора порасла је са 40% на 86%.
Уобичајене грешке
- Ослањајући се искључиво на семантичку претрагу: пропуштена је шифра производа, скраћеница, прави назив; Додајте хибрид.
- Одржавање к премалим: Тачан комад не може ући на листу; учинити широким и сузити га поновним рангирањем.
- Никада не размишљам о поновном рангирању: Прва претрага је непристојна; Други паметни пролаз значајно побољшава квалитет.
- Тражење додатних питања каква јесте: Питање без контекста тражи бесмислено; преписати.
- Слепо повећање к (без поновног рангирања): Модел је испуњен шумом, одговор је изобличен и цена се повећава.
Пазите: Свака техника додаје цену и кашњење. Више упита значи троструку претрагу, поновно рангирање значи додатни позив модела. Почните са једноставним хибридом + разумним к прво; Измерите и додајте тешке технике тамо где је заиста потребно. Сабирање без мерења.
Укратко
- Топ-к је равнотежа између присећања и прецизности; Генерално, 4-8 је добар почетак.
- Хибридна претрага комбинује семантичку претрагу са претраживањем по кључним речима (БМ25); Опоравља тачна подударања.
- Поновно рангирање поново оцењује кандидате из широке почетне претраге са робусним моделом и бира оне најбоље.
- Трансформација упита (поновно писање, више упита, ХиДЕ) чини тешка питања без контекста претражива.
- Снажан образац: широк дохват → спајање са хибридом → уски са поновним рангирањем; али сваку технику додајте мерењем.
Задатак апликације
Припремите 6 тешких питања са подацима из претходних јединица: најмање 2 која захтевају тачно подударање (шифра производа, скраћеница, датум), 2 семантичка (иста тема са различитим речима), 2 додатна питања без контекста. (1) Прво замислите свако питање као чисту семантичку претрагу и ручно означите који делови ће се појавити. (2) Поново процијените иста питања уз додавање хибрида и поновног рангирања. (3) Препишите додатна питања без контекста. Забележите у облику табеле која техника чини разлику у којој врсти питања.
контролна листа
- [ ] Знам да је топ-к баланс прецизности опозива и разуман почетни распон.
- [ ] Могу да објасним зашто хибридна претрага обнавља тачна подударања.
- [ ] Могу да применим двостепену логику поновног рангирања (широко → паметно уско).
- [ ] Препознајем потребу за преписивањем додатних питања без контекста.
- [ ] Потврђујем да сам тешке технике додао мерењем, а не мерењем.