Introduktion till utvärdering och övervakning av RAG-program
Utvärdering och övervakning är viktiga komponenter för att förstå om DITT RAG-program uppfyller kraven på *kvalitet, kostnad och svarstid som bestäms av ditt användningsfall. Tekniskt sett sker utvärdering under utveckling och övervakning när programmet har distribuerats till produktion, men de grundläggande komponenterna är liknande.
RAG över ostrukturerade data är ett komplext system med många komponenter som påverkar programmets kvalitet. Att justera ett enskilt element kan ha sammanhängande effekter på de andra. Dataformateringsändringar kan till exempel påverka de hämtade segmenten och LLM:s möjlighet att generera relevanta svar. Därför är det viktigt att utvärdera vart och ett av programmets komponenter utöver programmet som helhet för att iterativt förfina det baserat på dessa utvärderingar.
Utvärdering och övervakning: Klassisk ML jämfört med generativ AI
Utvärdering och övervakning av Generativa AI-program, inklusive RAG, skiljer sig från klassisk maskininlärning på flera sätt:
Område | Klassisk ML | Generativ AI |
---|---|---|
Mått | Mått utvärderar indata och utdata för komponenten, till exempel funktionsavvikelse, precision, återkallande, svarstid och så vidare. Eftersom det bara finns en komponent, övergripande mått == komponentmått. | Komponentmått utvärderar indata och utdata för varje komponent, till exempel precision @ K, nDCG, svarstid, toxicitet och så vidare. Sammansatta mått utvärderar hur flera komponenter interagerar: Trofasthet mäter generatorns efterlevnad av kunskapen från en hämtare som kräver kedjeindata, kedjeutdata och utdata från den interna inhämtaren. Övergripande mått utvärderar systemets övergripande indata och utdata, till exempel svars korrekthet och svarstid. |
Utvärdering | Svaret är deterministiskt "rätt" eller "fel". Deterministiska mått fungerar. | Svaret är "rätt" eller "fel" men: • Det finns många rätt svar (icke-deterministiska). • Vissa rätt svar är mer rätt. Du behöver: • Mänsklig feedback för att vara säker. • LLM-bedömt mått för skalningsutvärdering. |
Komponenter i utvärdering och övervakning
Det krävs flera komponenter för att effektivt utvärdera och övervaka RAG-programmets kvalitet, kostnad och svarstid:
- Utvärderingsuppsättning: Om du vill utvärdera RAG-programmet noggrant behöver du en kuraterad uppsättning utvärderingsfrågor (och helst utdata) som är representativa för programmets avsedda användning. Dessa utvärderingsexempel bör vara utmanande, varierande och uppdaterade för att återspegla föränderlig användning och krav.
- Måttdefinitioner: Du kan inte hantera det du inte mäter. För att förbättra RAG-kvaliteten är det viktigt att definiera vad kvalitet betyder för ditt användningsfall. Beroende på programmet kan viktiga mått omfatta svarsnoggrannhet, svarstid, kostnad eller omdömen från viktiga intressenter. Du behöver mått som mäter varje komponent, hur komponenterna interagerar med varandra och det övergripande systemet.
- LLM-domare: Med tanke på den öppna karaktären hos LLM-svar är det inte möjligt att läsa varje enskilt svar varje gång du utvärderar för att avgöra om utdata är korrekta. Om du använder ytterligare en annan LLM för att granska utdata kan du skala utvärderingen och beräkna ytterligare mått, till exempel grundvärdet för ett svar på tusentals token av kontext, vilket skulle vara omöjligt för mänskliga råttor att effektivt bedöma i stor skala.
- Utvärderingsramverk: Under utvecklingen hjälper ett utvärderingsramverk dig att snabbt köra din applikation för varje post i din utvärderingsuppsättning och sedan bearbeta varje utdata genom dina LLM-bedömningssystem och beräkningar av mått. Detta är särskilt utmanande eftersom det här steget "blockerar" din inre dev-loop, så hastigheten är av yttersta vikt. En bra utvärderings utnyttjar parallelliserar detta arbete så mycket som möjligt, ofta snurrar upp ytterligare infrastruktur, till exempel mer LLM-kapacitet för att göra det.
- Användargränssnitt för intressenter: Som utvecklare kanske du inte är domänexpert i innehållet i det program som du utvecklar. För att samla in feedback från mänskliga experter som kan utvärdera programkvaliteten behöver du ett gränssnitt som gör att de kan interagera med programmet och ge detaljerad feedback.
- Spårningsloggning för produktion: När du är i produktion måste du utvärdera en betydligt högre mängd begäranden/svar och hur varje svar genererades. Du behöver till exempel veta om rotorsaken till ett svar av låg kvalitet beror på hämtningssteget eller en hallucination. Din produktionsloggning måste spåra indata, utdata och mellanliggande steg, till exempel dokumenthämtning för att möjliggöra löpande övervakning och tidig identifiering och diagnos av problem som uppstår i produktionen.
Dessa dokument beskriver utvärdering i mycket mer detalj i Utvärdera RAG-kvalitet.