Salta al contingut
Entendre els LLMs
Bloc 6pràctic3 h
IntuïtiuMatemàtic

Abans d'això: NLP clàssic i embeddings, Prompting i context engineering

22 · RAG i recuperació

Idea central: un LLM sap molt però no sap el teu. RAG connecta el model amb coneixement extern, actualitzable i citable. És l'arquitectura d'aplicació d'IA més desplegada del món — i la que més gent implementa malament.


1. El pipeline bàsic (i per què ja no n'hi ha prou)# sense fórmules

Consulta → [ Retriever ] → k documents → [ Prompt ] → LLM → Resposta + cites

Aquest patró "recupera un cop i genera" era l'estàndard de 2023. El 2026 el patró per defecte és agèntic: el model decideix si cal buscar, què buscar, reformula si els resultats són dolents i itera fins a tenir prou evidència.

Però abans de córrer cap a l'agèntic: la majoria de sistemes RAG dolents ho són per problemes bàsics d'ingesta i recuperació, no per falta de sofisticació.

El pipeline: recuperar un cop, o buscar fins a trobar-ho

Un RAG sencer sobre 250 documents inventats. Quantes preguntes respon recuperant un cop, quantes més si torna a buscar, i quan s’equivoca, de qui és la culpa?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

Recuperador
5
4
Com s’ha tallat
Exemple
1
un salt, un cop
—
un salt, en bucle
—
dos salts, un cop
—
dos salts, en bucle
—
crides per pregunta
—
errors abans del lector
—
El patró agèntic no és màgia: és tornar a buscar amb una consulta millor, i cada volta és una crida més. Quan la primera cerca ja porta la resposta, el bucle s’atura a la primera; on guanya és on una sola cerca no hi podia arribar.

2. Ingesta: chunking i metadades# sense fórmules

Chunking és la decisió més infravalorada del sistema.

EstratègiaDescripcióQuan
Longitud fixa + solapament300-800 tokens, 10-20% overlapbaseline raonable
Per estructuraseguint capçaleres, seccions, funcionsdocumentació i codi: la millor
Semàntictalla on canvia el tema (detecció per embeddings)text continu sense estructura
Contextual retrievalafegir a cada chunk un resum del document que el conté, generat per un LLMredueix molt les fallades de recuperació; cost únic a la ingesta
Jeràrquic / parent-childindexa chunks petits, recupera el pare granequilibri precisió/context

Metadades: data, font, autor, permisos, versió, secció. Són el que et permet filtrar (pre-filtering > post-filtering), implementar control d'accés i mostrar cites útils. Sense metadades no tens un sistema, tens una demo.

Tallar els documents: la geometria, el context i el filtre

On talles un document decideix què es pot trobar. Quan queda partida una resposta, què perd un fragment que no diu de què parla, i què passa si el filtre de permisos arriba tard?

  • forma tancada
  • ○mesurat, 20.000 tokens
  • ■mesurat, 60 tokens

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

40
0
6
Recuperador
5
Filtre de metadades
Qui pregunta
partida, fórmula
12,5 %
partida, 20.000 tokens
12,5 %
partida, 60 tokens
9,1 %
recall identificadors, contextual
—
consultes sense cap fragment
—
fragments interns al context
—
Fragments de 40 amb 0 de solapament: una resposta de 6 queda partida el 12,5 % de les vegades. Mesurat sobre 20.000 tokens, 12,5 %; sobre 60, 9,1 %

Els fragments comencen cada c − o = 40 tokens, i una resposta que comença a la posició t cap sencera al fragment que comença just abans si t mod (c − o) ≤ c − a. Com que la posició és uniforme, P(partida) = max(0, (a − o − 1)/(c − o)). Amb un solapament de 5 o més no es partiria mai, a canvi d’indexar cada token 1,14 vegades. En un document de 60 tokens l’últim fragment és més curt i les vores canvien els comptes: la fórmula és el límit dels documents llargs.

Les tres decisions es prenen a la ingesta, abans de cap pregunta: on es talla, què es posa davant de cada fragment i quines metadades s’hi guarden. Cap d’elles no es pot arreglar després al prompt.

3. Recuperació: usa sempre híbrid# sense fórmules

Dens (embeddings)

Codifiques consulta i documents en vectors i busques veïns pròxims. Captura significat, sinònims, paràfrasis. Falla amb identificadors exactes, noms propis rars i termes fora de distribució.

Índexs ANN: HNSW (graf navegable, ràpid i precís, molta memòria), IVF-PQ (quantització, escalable a milers de milions), ScaNN, DiskANN. Paràmetres clau: ef_search/nprobe controlen el compromís recall/latència.

Veïns aproximats: IVF i nprobe

A mil milions de vectors no es pot comparar la consulta amb tots. Quants veïns de debò es perden mirant només algunes llistes, i quantes similituds s’estalvien?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

16
2
1
veïns retrobats (de 10)
—
similituds per consulta
—
de la cerca exacta
—
evidència a 5
—
ef_search a HNSW i nprobe a IVF són el mateix botó: quanta part de l’índex es mira per consulta. Es tria mirant aquesta corba sobre les consultes pròpies, no amb un valor per defecte.

Espars (BM25)

Coincidència lèxica exacta. Imbatible per a codis, SKUs, noms, cites literals i consultes amb termes rars.

Híbrid + RRF

Combina els dos rànquings amb Reciprocal Rank Fusion:

RRF(d)=∑r∈{dens,bm25}1k+rankr(d),k≈60\text{RRF}(d) = \sum_{r\in\{dens, bm25\}} \frac{1}{k + \text{rank}_r(d)}, \quad k\approx 60

Aquesta és, empíricament, la línia base que has de batre. Gairebé cap sistema només-dens la supera. Però el k s'ha de mesurar: al corpus d'aquest tema, amb k = 60 l'híbrid queda per sota de BM25 sol, i amb k = 2 el supera (ho veuràs al widget de sota i a l'exercici de la secció 9).

Reranking

Un cross-encoder llegeix (consulta, document) junts i els puntua. Recupera 50-100 candidats amb el mètode híbrid i reordena'n els 5-10 millors. Guany típic molt gran en precisió; cost: latència addicional (100-300 ms) i una crida més.

Dens, espars i RRF, i el reranker

BM25 troba codis, el dens troba paràfrasis. Quant guanya l’híbrid, quin paper hi fa el k de l’RRF, i què afegeix un reranker que llegeix pregunta i fragment junts?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

Preguntes
60
sense reranker
5
BM25, recall@5
—
dens, recall@5
—
híbrid, recall@5
—
amb reranker, recall@5
—
el primer és el bo
—
puntuacions per consulta
—
L’RRF no necessita calibrar res i per això és la línia base de tothom; el k i el reranker són els dos llocs on s’hi guanya, i tots dos s’han de mesurar sobre les preguntes pròpies.

4. Millores del costat de la consulta# sense fórmules

  • Reescriptura de consulta: convertir la pregunta conversacional en una consulta de cerca autònoma (imprescindible en xat multitorn: "i el segon?" no és cercable).
  • Expansió i multi-query: generar diverses variants i unir resultats.
  • HyDE: generar una resposta hipotètica i buscar-ne l'embedding (funciona sorprenentment bé quan la pregunta i el document no comparteixen vocabulari).
  • Descomposició: trencar preguntes multi-part en subconsultes.
  • Enrutament: decidir quina font (o quin índex) consultar, o si no cal consultar-ne cap.

La consulta també es treballa

«I el segon?» no es pot cercar, i una pregunta que no comparteix cap paraula amb el document tampoc no el troba. Quant recall recupera cada tècnica del text, i on?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

Recuperador
5
La resposta hipotètica de HyDE
reescriptura
—
HyDE
—
multi-query
—
descomposició
—
enrutament
—
Cap d’aquestes tècniques no millora el recuperador: el fan servir millor. Totes costen alguna cosa —una crida d’LLM per reformular, més cerques, un índex per ruta— i només valen la pena on el recall de la pregunta crua es queda curt.

5. Patrons avançats# sense fórmules

GraphRAG: construeix un graf d'entitats i relacions a partir del corpus, amb resums jeràrquics de comunitats. Brilla en preguntes globals ("quins són els temes principals de tot aquest corpus?") que la recuperació per similitud no pot respondre. Cost d'indexació alt. Existeixen variants "lleugeres" (LightRAG, i enfocaments híbrids que alineen camins del graf amb recuperació densa).

RAG agèntic: el model té una eina de cerca i la crida en bucle: buscar → avaluar → refinar → buscar més → respondre. Patrons com Self-RAG (el model decideix quan recuperar i critica la rellevància) i FLARE (recupera quan la confiança baixa durant la generació).

RAG multimodal: indexar imatges de pàgines directament amb models de visió (ColPali i similars) evita tot el pipeline fràgil d'OCR i extracció de taules. Per a PDFs complexos, sovint és millor.

Memòria: RAG sobre l'historial de converses de l'usuari — amb els seus propis problemes (què recordar, quan oblidar, com resoldre contradiccions). Vegeu 23.

Preguntes globals: el que el top-k no pot veure

«Quins sectors hi ha?» no té cap document que la respongui. Quina part de la resposta arriba amb els k fragments més semblants, quina amb els resums de comunitat, i quant costa fer-los?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

5
Recuperador
1
top-5: recall de la resposta
—
resums: recall de la resposta
—
comunitats
—
crides d’indexació
—
tokens a la consulta
—
El RAG agèntic del text —buscar, avaluar, refinar— és el bucle del widget del pipeline, al principi d’aquest fitxer. El RAG multimodal i la memòria són de la fase següent, amb els fitxers 23 i 24.

6. Avaluació de RAG (no t'ho saltis)# sense fórmules

Avalua els dos components per separat i el sistema sencer:

Retriever: Recall@k (el més important: si el document no hi és, res més importa), Precision@k, MRR, nDCG. Necessites un conjunt de (pregunta → documents rellevants) etiquetat; pots generar-lo sintèticament a partir dels teus documents i revisar-ne una mostra.

Generador, donat el context:

  • Faithfulness / groundedness: la resposta se segueix del context? (mesurable amb un jutge LLM o amb NLI)
  • Answer relevance: respon la pregunta?
  • Correcció de cites: les cites apunten al que diuen?

Extrem a extrem: exactitud sobre preguntes reals, taxa d'abstenció correcta (quan no hi ha informació, diu que no ho sap?), latència i cost.

Eines: RAGAS, TruLens, o (recomanat) el teu propi arnès d'avaluació sobre les teves preguntes reals. Les mètriques automàtiques et donen direcció; la revisió manual et dona la veritat.

Avaluar el RAG: el recuperador, el generador i tots dos

Un RAG que encerta el 60 % pot tenir un recuperador dolent o un generador dolent. Què diu cada mètrica, i com se separen les dues coses?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

Recuperador
5
Generador
recall@5
—
MRR
—
nDCG@5
—
fidelitat
—
cites correctes
—
encert de punta a punta
—
L’exemple fet a mà, k = 5: recall 0,7500, precisió 0,6000, MRR 0,5000, nDCG 0,5942

El rànquing és d3, d1, d7, d2, d5, i els rellevants, d1 (grau 2: porta la resposta), d2, d5 i d9 (grau 1: parlen del mateix). Recall@5: dels quatre rellevants, quants n’han sortit entre els 5 primers. Precisió@5: dels 5 primers, quants són rellevants. MRR: 1 / la posició del primer rellevant, d1 a la segona, 1/2. nDCG: cada rellevant suma (2^grau − 1)/log₂(posició + 1), i es divideix per l’ordre ideal: DCG = 2,7103, IDCG = 4,5616. El grau 2 val tres vegades el grau 1, i per això l’nDCG castiga que d1 no sigui el primer.

Les etiquetes del corpus inventat són exactes perquè el corpus s’ha generat amb elles. En un corpus de debò es generen sintèticament i se’n revisa una mostra a mà: les mètriques donen la direcció, la revisió dona la veritat.

7. Errors comuns# sense fórmules

ErrorConseqüència
Només cerca densafalles amb codis, noms i termes exactes
Chunks massa petitsperds context; massa grans → soroll i dilució
Sense rerankerels 5 primers no són els millors 5
Sense metadades ni filtresno pots filtrar per permisos, data ni font
Sense avaluar el retrieveroptimitzes el prompt quan el problema és la cerca
Índex obsoletrespostes desactualitzades amb aparença de certesa
No gestionar "no ho sé"al·lucinacions amb cites inventades
Barrejar models d'embeddingespais incompatibles al mateix índex

Els errors de sempre, un per un

Un sistema que funciona i un interruptor per a cada error de la taula del text. Quina mètrica trenca cada un, i quant?

Indexant el corpus inventat (entrenant l’encoder dens): 0 %. Es fa una sola vegada per pàgina, i triga al voltant d’un segon.

Mida dels fragments

Versió vigent i permisos d’un empleat.

Construït abans d’actualitzar els preus.

Entrenat amb una altra llavor; les consultes, amb el d’abans.

encert, sistema bo
—
encert, ara
…
errors activats
0
mètriques trencades
0
La taula del §7 sencera, amb cada fila connectada a la mètrica que la detecta. «Sense avaluar el retriever» no és un interruptor: és no tenir cap d’aquestes columnes.

8. RAG vs context llarg vs fine-tuning# sense fórmules

Necessites...Usa
Fets que canvienRAG
Corpus gegantRAG
Atribució i citesRAG
Raonar sobre un document sencercontext llarg (amb prompt caching)
Format, estil, comportamentfine-tuning
Reduir cost i latènciafine-tuning (destil·lació)
Coneixement profund d'un domini tancatmesura tots dos; sovint RAG + fine-tuning lleuger

RAG, context llarg o fine-tuning

Tres maneres de donar coneixement a un model. Quant costa cada consulta, quant triga un fet nou a ser-hi, i un model, què en treu dels pesos i què del context?

RAG

0,0107 dòlars

per consulta · 2.000 tokens recuperats

Context llarg

0,0497 dòlars

per consulta · 150.000 tokens, amb cache

Fine-tuning

0,0337 dòlars

per consulta · un fet nou: 30 dies

150.000
5
400
2.000
10 %
30
1
RAG, per consulta
0,0107 dòlars
context, sense cache
0,45 dòlars
context, amb cache
0,0497 dòlars
fine-tuning
0,0337 dòlars
el corpus hi cap?
sí
La més barata per consulta és RAG, 0,0107 dòlars; RAG en costa 0,0107 dòlars, 43 vegades menys que el corpus sencer sense cache

RAG paga (k·fragment + pregunta) = 2.050 tokens d’entrada; el context llarg, els 150.000 del corpus a cada consulta, o al 10 % si es llegeixen del cache. El fine-tuning gairebé no paga entrada, però l’entrenament de 2.000 dòlars s’ha de repartir entre les consultes d’un cicle de 30 dies: 0,0333 dòlars per consulta. El corpus cap a la finestra de 200.000 tokens. La corba del cost contra el nombre de consultes, i on es creuen el context llarg i el RAG, és al widget «context contra RAG» del fitxer 14; el punt d’equilibri d’un model propi ajustat, a «cal fer fine-tuning?» del 20.

opcióper consultaal mesun fet nou, enpot citar?
RAG0,0107 dòlars639 dòlars1 hsí: el fragment d’on surt
context llarg, sense cache0,45 dòlars27.279 dòlarsla propera consultaen part: el document hi és sencer
context llarg, amb cache0,0497 dòlars2.979 dòlarsla propera consultaen part: el document hi és sencer
fine-tuning0,0337 dòlars2.023 dòlars30 diesno: el fet és als pesos
Paramètric contra context, amb dos models del curs

El model base del 18 (29.472 paràmetres) ha vist 120 fets inventats al preentrenament, «poble és lila.». Es mesura amb la probabilitat exacta dels vuit colors després de «poble és »: sense context, amb el fet bo davant, i amb un fet que el contradiu. I amb 120 paraules del corpus que no tenen cap fet, amb el fet al context. El model del 21, meta-entrenat per llegir una taula del context: 100 taules noves amb 4 exemples, i una consulta que hi és i una que no.

És la condició que la taula del text dona per feta: RAG i context llarg només funcionen amb un model que faci servir el context, i això també s’aprèn. Un fet que el model sap als pesos no es pot corregir posant-li el bo al davant si no l’ha après a llegir; i un fet que no sap, el fine-tuning no l’hi posa (el fitxer 18), mentre que el context sí, si el model llegeix.

Descarregant els pesos dels dos models…

La taula del text diu «fets que canvien: RAG». El número que ho decideix no és el cost sinó la columna dels dies: un fet nou és a la resposta l’hora següent, i el model no s’ha de tocar.

9. Comprova que ho has entès#

0 de 6 resoltes

  1. Per què BM25 continua sent necessari el 2026?
  2. Què és RRF i per què funciona tan bé? Fes-ne el compte: un document és el primer del rànquing dens i el tercer del de BM25. Quina puntuació RRF té, amb k = 60?
    Marge acceptat: ± 5,00·10⁻⁴
  3. Explica el contextual retrieval i quin problema resol.
  4. Quines dues mètriques mesuraries per separat en un sistema RAG, i per què?
  5. Quan val la pena GraphRAG, i quan no?
  6. L'híbrid amb RRF és la línia base que s'ha de batre, però amb el k per defecte pot quedar per sota d'un dels dos recuperadors sols. Fes que el superi.

    Objectiu:Al widget «Dens, espars i RRF», amb les preguntes d'un i de dos salts i el recall@5, tria el k de l'RRF i els candidats del reranker perquè l'híbrid superi BM25 i el dens sols.

    Vés al widget ↑rrf = per defecte · candidats = per defecte

10. Recursos#

Marca els que hagis llegit
  • Lewis et al. (2020), Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (el paper original).

  • Anthropic (2024), Introducing Contextual Retrieval.

  • Microsoft Research, GraphRAG (paper i codi).

  • Asai et al. (2023), Self-RAG.

  • Documentació de RAGAS i de LlamaIndex/LangChain per a patrons d'implementació.