Quan un sistema de generació augmentada per recuperació (RAG) falla, el primer instint és culpar el model de llenguatge. 'Ha al·lucinat', diem, i correm a ajustar el prompt, baixar la temperatura o canviar a un model més gran. Però la realitat, incòmoda i sistemàtica, és una altra: el model gairebé sempre diu la veritat sobre el context que rep. El problema està aigües amunt, a la capa de recuperació. El teu RAG no al·lucina: la teva recuperació menteix.
Imagina un assistent de suport que respon a una pregunta de facturació citant un document intern real. La resposta és incorrecta, però la citació és autèntica. Aquesta combinació desconcerta: el model no va inventar res; va resumir fidelment el fragment equivocat. La capa de generació és sorollosa i llegible; veiem el prompt i la sortida. La recuperació, en canvi, retorna IDs de fragments que ningú llegeix. Per això, quan alguna cosa es trenca, tota l'atenció va al que podem veure: el prompt. Però canviar la redacció no canvia el context equivocat. He vist equips perdre setmanes iterant sobre el prompt quan el veritable error era un chunking mal configurat o un model d'embeddings genèric per a un domini ple d'argot intern.
Analitzem les cinc maneres en què la recuperació menteix, cap d'elles es pot arreglar amb un prompt. Primer, el chunking fix i ingenu: dividir documents cada 512 tokens sense respectar l'estructura. Un número cau en un fragment, l'encapçalament que li dona sentit en un altre. El model rep '4.200 €' sense saber que és un límit de reemborsament. Segon, el desajust d'embeddings: utilitzar un model genèric en un domini amb sigles i noms de producte que mai va veure en entrenament. El document correcte no rankeja perquè l'espai d'embeddings no entén el teu vocabulari. Tercer, l'absència d'un reranker: la cerca vectorial top-k és sorollosa; el passatge correcte sovint està al top 20 però al lloc 18, i només alimentem els primers 5 al model. Quart, recuperar massa: per pujar el recall, fiquem 20 fragments al context, i el passatge rellevant es perd entre distractors que baixen la precisió. Cinquè, i el que permet als altres persistir, la manca d'avaluació de la recuperació: sense mesurar si el document daurat apareix als resultats, cada regressió és invisible fins que un usuari la pateix.
La solució no és un truc enginyós, sinó tractar la recuperació com el subsistema d'enginyeria que és i posar-li números. Dues mètriques basten: Recall@k — de les consultes etiquetades, en quina fracció va aparèixer el document daurat als primers k resultats? Si el recall@5 és 0,6, el 40% de les respostes es generen des d'un context que no conté la resposta, i cap prompt ho arregla. MRR (mean reciprocal rank) — quan el document correcte es recupera, què tan amunt apareix? Un recall alt però MRR baix indica que la resposta està al top-20 però enterrada, i un reranker de cross-encoder és la palanca més efectiva. Construir un conjunt etiquetat de parells (consulta, id_document_daurat) — uns centenars basten — i executar-lo com a porta a la integració contínua és el pas decisiu.
A Q2BSTUDIO, entenem que la qualitat d'un sistema d'IA no depèn només del model generatiu, sinó de tota la cadena: des del chunking i els embeddings fins a l'orquestració en cloud. Per això, quan desenvolupem solucions d'intel·ligència artificial per als nostres clients, integrem des del disseny mètriques de recuperació com recall@k i MRR als pipelines de CI/CD. No esperem que l'usuari final reporti un error; el detectem al commit. Aquesta disciplina ens permet oferir aplicacions a mida robustes, on cada component —des de la base de dades vectorial fins a l'agent d'IA— s'avalua de forma independent. A més, combinem la recuperació contextual amb serveis cloud AWS/Azure per escalar sense pèrdua de rendiment, integrem BI amb Power BI per visualitzar la qualitat de la recuperació en dashboards, i blindem cada capa amb ciberseguretat per protegir les dades sensibles. Els nostres agents d'IA, entrenats amb corpus propietaris, només són fiables si la recuperació no menteix.
És temptador pensar que un prompt més restrictiu o un model més gran resolen les al·lucinacions. Però l'evidència empírica mostra que, en la majoria dels casos, el model és innocent. La propera vegada que el teu bot RAG respongui amb seguretat alguna cosa incorrecta, no obris l'arxiu del prompt. Obre el registre de recuperació. El model probablement està dient la veritat sobre un context que li estava mentint. I recorda: no pots arreglar allò que no mesures. Mesura la recuperació, i veuràs que el culpable no era qui creies.





