← 返回列表

AI серија прашања за интервју 11: Како да се оптимизира RAG?

Оптимизацијата на RAG не е прилагодување на една единечна фаза, туку процес на оптимизација на целиот ланец. Подолу давам систематски стратегии за оптимизација од четири димензии: страна на индексирање податоци, страна на пребарување, страна на генерирање и страна на евалуација, заедно со практично искуство што може да се спомене на интервју.


1. Оптимизација на страната на индексирање податоци (подобрување на квалитетот на „базата на знаење“)

Ова е најчесто занемареното место кое дава најбрзи резултати.

Точка на прилагодување Проблем Конкретен пристап Метрика за ефект
Парсирање документи Табелите и дијаграмите во PDF се игнорирани, или текстот е нечитлив и во погрешен редослед. Користете подобра библиотека за парсирање (на пр. unstructured, pypdf со режим за зачувување на распоред); за табели, извлечете ги со pandas и претворете ги во Markdown. Стапка на пронаоѓање +5~15%
Големина на парчиња текст Премногу мали парчиња губат контекст (на пр. „неговиот приход порасна“ – „неговиот“ е изгубено); премногу големи парчиња внесуваат шум. Експериментирајте со различни големини на парчиња (256/512/768 токени), со преклопување од 10~20%; за долги документи, сечете по семантички граници (параграфи/наслови) наместо по фиксна должина. Стапка на погодување / верност
Додавање метаподатоци Пронајден е релевантен пасус, но не може да се пронајде изворот или времето, или треба филтрирање по област. Додајте метаподатоци за секое парче: source (име на датотека/URL), timestamp, page_num, doc_type. Користете филтри при пребарување (на пр. doc_type == 'legal'). Прецизност на филтрирање
Избор на модел за вградување Генеричките вградувања се слаби во вертикални домени (медицина, код, право). Користете дотеран модел за доменот (BGE‑large‑zh, GTE‑Qwen2‑7B‑instruct); или дотерете свој модел за вградување (со triplet loss). MRR@10 +10~20% при пребарување

2. Оптимизација на страната на пребарување (подобрување на прецизноста на „прелистувањето“)

Пребарувањето го одредува квалитетот на „референтниот материјал“ што се дава на LLM.

Точка на прилагодување Проблем Конкретен пристап Ефект
Хибридно пребарување Векторското пребарување не може да собере точни термини (на пр. модел на производ ABC-123), а пребарувањето по клучни зборови не разбира синоними. Истовремено користете векторско пребарување (семантичко) и BM25 (клучни зборови), со пондерирање (на пр. 0.7вектор + 0.3BM25) или фузија преку повторно рангирање. Стапка на пронаоѓање +10~25%
Повторно рангирање (Rerank) Првите неколку резултати од векторското пребарување не се нужно најрелевантни; десеттиот може да е најдобар. Користете cross-encoder модел (на пр. BGE‑reranker-v2, Cohere Rerank) за повторно бодување на кандидатите (пр. првите 20) и земете top‑K. Значително подобрување на стапката на погодување (особено top‑1)
Препишување прашања Прашањата на корисникот се нејасни или има нејасна референца во повеќекратен дијалог („А неговата цена?“). Користете LLM за препишување на оригиналното прашање во форма попогодна за пребарување (на пр. „Колку чини iPhone 15?“); или пополнете ја историјата на дијалог. Стапка на пронаоѓање +5~15%
HyDE Прашањето на корисникот е премногу кратко или апстрактно (на пр. „Објасни ја фотосинтезата“), директното пребарување е слабо. Прво замолете го LLM да генерира хипотетички одговор, па користете го тој одговор за пребарување документи. Погодно за отворени домени, но не и за фактички прецизни одговори
Прилагодување на Top‑K Премногу мало K може да пропушти клучни информации; премногу големо K го зголемува трошењето токени и шумот. Експериментирајте со K=3/5/10 и набљудувајте го балансот помеѓу стапката на пронаоѓање и верноста на одговорот. Компромис помеѓу ефикасност и ефект

3. Оптимизација на страната на генерирање (LLM добро да ги користи референтните материјали)

Иако пребарувањето е прецизно, лош промпт или слаб модел нема да помогнат.

Точка на прилагодување Проблем Конкретен пристап Ефект
Инженерство на промптови LLM го игнорира пронајдениот материјал или измислува. Јасна инструкција: „Одговори го прашањето само врз основа на дадените референтни материјали. Ако материјалот е недоволен или нерелевантен, одговори со „Нема доволно информации“.“ Додајте few‑shot примери што покажуваат како да се цитираат извори. Верност +20~40%
Компресија на контекст Пронајдениот материјал е премногу долг (го надминува прозорецот на контекст на моделот) или главно е шум. Користете LLMLingua или Селективен контекст за компресија, задржувајќи ги најрелевантните реченици пред да ги испратите до LLM. Намалување на ризикот од губење информации
Надградба на LLM модел Мал модел (7B) не може да изврши сложено расудување или да запамети долг контекст. Преминете на помоќен модел (GPT‑4o, Claude 3.5 Sonnet, Qwen2.5‑72B). Големо подобрување на точноста на расудувањето
Проточен излез и цитати Корисникот не може да ја потврди веродостојноста на одговорот. При генерирање, побарајте од LLM да изведе [citation:1] што одговара на бројот на пронајдениот документ. На backend додајте линк до оригиналниот текст. Доверба на корисникот + можност за дебагирање
Калибрација на одбивање одговор Моделот измислува кога не треба, или вели „не знам“ кога треба да одговори. Поставете праг на сличност: ако косинусната сличност помеѓу top‑1 парчето и прашањето е под 0.7, поттикнете го LLM дека „материјалот не е релевантен“. Намалување на стапката на халуцинации

4. Страна на евалуација и повторување (знаење каде да се прилагоди)

Без мерење нема оптимизација.

Точка на прилагодување Пристап Метрика
Изградба на евалуациски сет Подгответе 100~300 реални кориснички прашања + стандардни одговори + точни ID на пронајдени документи. Покријте различна тежина и различни намери.
Автоматизирана евалуација Користете RAGAS (Верност, Релевантност на одговор, Повлекување на контекст) или TruLens. Три клучни метрики: верност, релевантност на одговор, стапка на повлекување на контекст.
Рачна евалуација Неделно тестирајте 20 лоши случаи, анализирајте го типот на грешка (неуспешно пребарување / грешка при генерирање / недостаток на база на знаење). Приоритетизација на подобрувања.
A/B тестирање Во производствена средина, тестирајте различни стратегии за пребарување во различни кофи (на пр. BM25 наспроти хибридно пребарување). Онлајн метрики: задоволство на корисникот, стапка на без одговор.

5. „Практично искуство“ што може да се спомене на интервју (бонус поени)

„Во мојот проект со RAG, основната стапка на погодување беше само 67%. Направив три работи:
1. Поделбата од фиксни 1024 на динамична семантичка поделба (според наслови + параграфи), стапката на погодување се зголеми на 74%;
2. Додадов хибридно пребарување (вектор + BM25) и мал модел за повторно рангирање, стапката на погодување се зголеми на 83%;
3. Ги оптимизирав промптовите и задолжив [Не се пронајдени релевантни информации], стапката на халуцинации се намали од 22% на под 5%.

Исто така, изградивме континуиран евалуациски pipeline, пред секоја промена пуштавме 200 прашања преку RAGAS за да се осигураме дека нема регресија.“


Последен заклучок: Комплетна патна карта за оптимизација на RAG

Податочен слој ─→ чистење на документи, оптимизација на поделба, зголемување на метаподатоци, domain вградување
Слој за пребарување ─→ хибридно пребарување, повторно рангирање, препишување прашања, HyDE, прилагодување на Top-K
Слој за генерирање ─→ зајакнување на промптови, барања за инструкции, компресија, цитати, праг на одбивање
Слој за евалуација ─→ евалуациски сет, RAGAS, рачна анализа, A/B експерименти

评论

暂无已展示的评论。

发表评论(匿名)