[{"data":1,"prerenderedAt":103},["ShallowReactive",2],{"werk-rag-nl":3},{"id":4,"title":5,"body":6,"date":90,"description":91,"draft":92,"extension":93,"meta":94,"metric":95,"metricLabel":96,"navigation":97,"order":98,"path":99,"seo":100,"stem":101,"__hash__":102},"nl\u002Fwerk\u002Frag.md","RAG in productie",{"type":7,"value":8,"toc":82},"minimark",[9,16,21,24,28,50,54,61,64,67,71],[10,11,12],"blockquote",{},[13,14,15],"p",{},"Deze case is anoniem beschreven: geen klantnaam, geen code en geen screenshots.",[17,18,20],"h2",{"id":19},"probleem","Probleem",[13,22,23],{},"Een zoekfunctie die antwoord geeft op basis van eigen documenten is snel gebouwd, maar lastig te beoordelen. Zonder vaste meting weet je na elke wijziging niet of de antwoorden beter of slechter zijn geworden. Je test dan op gevoel.",[17,25,27],{"id":26},"wat-ik-deed","Wat ik deed",[29,30,31,35,38,41],"ul",{},[32,33,34],"li",{},"Documenten opgeknipt in passages en per passage een embedding opgeslagen, zodat een vraag de passages vindt die er qua betekenis het dichtst bij liggen.",[32,36,37],{},"Een reranker toegevoegd die de gevonden passages opnieuw beoordeelt tegen de vraag.",[32,39,40],{},"Een evaluatie gebouwd met een vaste set vragen waarvan de juiste passage bekend is. Elke wijziging krijgt daardoor een score.",[32,42,43,44,49],{},"Een samenvattingsindex getest als alternatief en weer weggegooid. Dat verhaal staat in ",[45,46,48],"a",{"href":47},"\u002Fschrijven\u002Fsummary-index","een apart artikel",".",[17,51,53],{"id":52},"wat-ik-mat","Wat ik mat",[13,55,56,57,49],{},"De evaluatie gebruikt MRR (mean reciprocal rank). Staat de juiste passage op plek 1, dan telt dat als 1. Op plek 2 als 0,5, op plek 3 als 0,33. Het gemiddelde over alle vragen is de score. De score kwam uit op ",[58,59,60],"strong",{},"0,950",[13,62,63],{},"Eerlijk erbij: die score was gelijk met en zonder reranker. De meting keek naar de plek van de passage nadat de passages opnieuw waren gesorteerd, en zag de volgorde van de reranker dus niet. Het cijfer zegt daarom iets over het vinden van passages, niet over de reranker.",[13,65,66],{},"De samenvattingsindex kostte 7,7 seconde per bestand, tegen 0,25 seconde voor embedden. Dat is ongeveer 30 keer trager.",[17,68,70],{"id":69},"wat-ik-leerde","Wat ik leerde",[29,72,73,76,79],{},[32,74,75],{},"Meet eerst, bouw daarna. Een vaste score maakt een discussie over \"voelt beter\" overbodig.",[32,77,78],{},"Een meting kan blind zijn voor precies het onderdeel dat je wilt beoordelen. Controleer wat het cijfer wel en niet ziet.",[32,80,81],{},"Iets weggooien na een meting is ook een resultaat.",{"title":83,"searchDepth":84,"depth":84,"links":85},"",2,[86,87,88,89],{"id":19,"depth":84,"text":20},{"id":26,"depth":84,"text":27},{"id":52,"depth":84,"text":53},{"id":69,"depth":84,"text":70},null,"Zoeken in documenten met embeddings en een reranker, en een evaluatie met vaste scores in plaats van testen op gevoel.",false,"md",{},"MRR 0,950","op een vaste set evaluatievragen",true,1,"\u002Fwerk\u002Frag",{"title":5,"description":91},"werk\u002Frag","g-H66OV7GD8OiMYpEDLyc4gNU1wypDuMp2baftg5B4A",1794307541555]