Печалби:
- Дефиниране на показатели, които измерват отделно качеството на задържане и генериране
- Настройте златен набор от въпроси и стартирайте автоматично оценяване с LLM-as-judge
- Поддържане на качеството чрез обратна връзка, мониторинг и регресионно тестване в производството
Изречението „Инсталирах асистента, изглежда, че работи добре“ не е инженерно изявление. RAG системите се развалят тихо: нов тип документ заблуждава извличането, бързата промяна намалява точността, индексът става остарял. Единственият начин да разберете това е да измерите. В този модул ние разглеждаме как да измерваме качеството на RAG (отделно извличане и генериране), автоматична оценка (LLM-as-judge) и поддържане на качеството в производството (мониторинг, регресия). „Не можете да подобрите това, което не измервате“ е мотото на това звено.
Измерете две отделни неща
RAG има два крака и трябва да се измерва отделно, защото проблемът може да е във всеки от тях:
- Качество на извличане: Пристигна ли правилната част?
- Качество на генериране: Правилният отговор получен ли е от входящото парче?
Ако отговорът е лош, първо трябва да разберете кой крак е лош. Ако правилната част никога не пристигне, дори най-добрата подкана не може да запази (проблем с извличането). Ако правилната част е пристигнала, но моделът я е разчел погрешно, подобряването на извличането е безполезно (проблем с генерирането).
Метрики за извличане
Извличането е проблем за сортиране/достъп; измерено чрез класически показатели за извличане на информация. За целта трябва да имате златния клъстер: знанието кое парче е "правилно" за всеки въпрос.
показател
Какви мерки
Проста дефиниция
Recall@k
Дали правилната фигура е в горната k?
Правилна скорост на улавяне на части
прецизност@k
Колко от върнатите k части са подходящи?
Почистване на донесеното
MRR (среден реципрочен ранг)
В кой ред е правилното парче?
Наградите са в най-високите класации
Процент на попадения
Пристигна ли поне една правилна бройка?
Най-основната мярка за успех
Практически коментар: Ако Recall@k е ниско, трябва да се преработи стратегията за разделяне или търсене (хибрид, k, прекласиране). Ако прецизността е ниска, но припомнянето е високо, добавянето на прекласиране е добър ход.
Показатели за генериране
Когато пристигне правилната част, измерваме качеството на отговора, произведен от модела. Три основни измерения:
- Верност: всяко твърдение в отговора подкрепено ли е от контекст? Има ли подходящо? Това е пряка мярка за халюцинация.
- Уместност на отговора: Отговорът всъщност отговаря ли на въпроса или не е по темата?
- Пълнота: Използвана ли е цялата релевантна информация в контекста или липсва?
Те често се оценяват на степенувана основа (напр. 1-5), а не двоично като „вярно/невярно“.
Съвет: Проследявайте Верността като отделен показател. Ако верността намалява с намаляването на точността, проблемът е генерирането; Ако верността е висока, но отговорът е грешен, проблемът е грешната част (извличане). Заедно тези два показателя са компас, който показва местоположението на повредата.
Създаване на златен набор от въпроси
Всяко измерване изисква златен набор / набор от данни за оценка: реалистични въпроси + очаквани верни отговори + правилни изходни части. Започването с 30-50 добре подбрани въпроса е по-добро от 500 произволни въпроса. Включете следното в комплекта: често задавани реални въпроси, известни трудни въпроси, въпроси-капан без отговор (трябва да кажете „не знам“), въпроси с противоречиви източници.
# Пример за златен клъстер (концептуален)[ {"question": "Колко дни годишен отпуск?", "expected_answer": "14 дни за 1-5 години стаж", "correct_part_id": "two-part-3", "category": "leave"}, {"question": "Къде е офисът на компанията на Марс?", "expected_answer": "NO_INFORMATION", # trap: Не знам "correct_part_id": null, "category": "trap"}]
LLM-as-Judge: Автоматично оценяване
Отчитането на стотици отговори на ръка е уморително. Моделът LLM-as-judge е, когато един модел оценява и обосновава отговора на друг модел въз основа на определени критерии. Добрият съдийски съвет ясно дефинира критериите, дава примери и иска обосновка.
# Подкана за LLM-as-judge (концептуална) Вие сте безпристрастен оценител. Оценете ОТГОВОРА по-долу според дадения КОНТЕКСТ и ОЧАКВАН ОТГОВОР. Оценка (1-5) и обосновка:- достоверност: всяко твърдение в отговора подкрепено ли е в контекст?- точност: отговаря ли отговорът на очаквания отговор?- пълнота: пълна ли е съответната информация? По-специално: ако отговорът съдържа информация, която не е в контекста, дайте достоверност1 и посочете кое твърдение е измислено. КОНТЕКСТ: {контекст}ОЧАКВАНО: {очаквано}ОТГОВОР: {отговор}Резултат: {достоверност, точност, пълнота, обосновка}
Внимание: LLM-as-judge не е съвършен; Те може да имат свои собствени пристрастия (дълъг отговор, предпочитайки собствения си стил). Също така проверете съдията: направете някои отговори оценени както от съдията, така и от човека и измерете съгласието между тях. Ако Judge е в съответствие с човешките резултати, можете да му се доверите.
Слаба/Силна оценка
Слаб („беше добре за мен“):
Зададох няколко въпроса и отговорите изглеждаха добри. Имам го на живо. # Проблем: няма измервания, регресията е незабележима, подобрението е сляпо.
Мощен (златен клъстер + дискретни показатели + автоматична преценка + регресия):
Златен грозд от 40 въпроса. При всяка промяна, recall@5, верността и точността се измерват автоматично. Ако резултатът падне, промяната се връща назад. При производството отзивите на потребителите се събират и добавят към комплекта.
Мониторинг и регресия в производството
Оценката не се прави веднъж и завършва. Три постоянни практики:
- Регресионно тестване: Автоматично стартиране на златен клъстер при всяка подкана/извличане/промяна на модела. Ако резултатът е намален, промяната се обръща. Това предотвратява „счупването му, докато се опитвате да го подобрите“.
- Мониторинг на производството: Процентът „Не можах да намеря информация“ в реални въпроси, средно забавяне, цена, обратна връзка от потребителите (👍/👎) се наблюдават. Внезапното увеличаване на „Не знам“ често е първият признак за неизправност при индексиране или извличане.
- Цикъл за обратна връзка: Истинските въпроси, зададени от потребителя 👎, се преглеждат и добавят към златната купчина; Така комплектът става по-богат с течение на времето и слепите зони на системата се затварят.
Три мини калъфа
Случай 1 — Тиха регресия. Екип модифицира подканата, за да я „подобри“; Общата точност се увеличи, но верността намаля с 30% във въпросите за прихващане (моделът започна да пасва повече). Нямаше да бъде забелязано, ако не бяха въпросите за капан в златния грозд; Регресионното тестване отмени промяната.
Случай 2 — Изправяне на грешен крак. При един асистент отговорите бяха лоши; Екипът работи върху подканата в продължение на седмици. Когато измерихме показателите за извличане, recall@5 беше само 48% — проблемът беше в извличането, а не в генерирането. Когато беше добавено хибридно + прекласиране, припомнянето се увеличи до 89% и точността също се увеличи.
Случай 3 — Сигнал за производство. Един ден процентът „Не можах да намеря информация“ за асистент по поддръжката скочи от 6% на 34%. Трекпадът предупреди; Причината беше, че задачата за индексиране, която работи през нощта, тихо се провали и нови статии не бяха качени. Без мониторинг неправилните твърдения „не знам“ щяха да продължат с дни.
Често срещани грешки
- Да бъдеш доволен от „работи добре за мен“: Без измерване регресията остава незабелязана.
- Без разделяне на извличането и генерирането: Ще коригирате грешния крак и ще загубите време.
- Не задавайте въпроси-капан: Склонността да се измислят нещата не се появява в златния клъстер.
- Непроверяващ съдия: Предубеденото жури дава фалшива увереност.
- Производството не се наблюдава: Неуспех на индекса, експлозията на разходите продължава безшумно.
В обобщение
- В RAG качеството на извличане и генериране се измерват отделно; Първо трябва да се определи кой крак е повреден.
- recall@k, precision@k, MRR за извличане; За генериране се използват вярност, пригодност, пълнота.
- Всяко измерване изисква златен клъстер; Поставете реални, трудни, капани и противоречиви въпроси в него.
- LLM-as-judge големи комплекти автоматични резултати; но самият съдия трябва да бъде оправдан срещу човека.
- Регресионното тестване, мониторингът на производството и обратната връзка поддържат качеството във времето.
Задача за приложение
(1) Създайте златен набор от най-малко 15 въпроса за вашия собствен асистент: включете поне 3 капана (без отговор), 3 трудни, 2 въпроса с противоречив източник. Напишете очаквания отговор и правилната част за всеки въпрос. (2) Сравнете ръчно две различни версии на подкана с този набор; Дайте на всеки отговор 1-5 точки за вярност и точност. (3) Адаптирайте подканата LLM-as-judge по-горе към вашите собствени критерии. (4) Определете 3 показателя, които ще проследявате в производството, и за всеки попитайте „при какъв праг да алармирам?“ напишете стойността.
контролен списък
- [ ] Мога да измервам качеството на задържане и генериране с отделни показатели.
- [ ] Знам какво означават показатели като recall@k, вярност.
- [ ] Мога да изградя златен клъстер, който включва реални, трудни, капани и противоречиви въпроси.
- [ ] Мога да настроя автоматично оценяване и да проверя съдията с LLM-as-judge.
- [ ] Мога да управлявам регресионно тестване, производствен мониторинг и обратна връзка.