Els embeddings de text, explicats: com funcionen [+exemples]
Aquesta guia explica què són els embeddings de text, com transformen el text en vectors que en capturen el significat i com triar, avaluar i aplicar models d’embeddings a la cerca, el RAG i altres casos d’ús reals.

Si ja coneixes el concepte bàsic de les incrustacions de text però et preguntes com aplicar-les, has arribat al lloc adequat. Analitzarem a fons els vectors, la tokenització i el càlcul de similitud, ens endinsarem en el complex món de l’avaluació dels models d’incrustació i et mostrarem casos d’ús reals.
Què són les incrustacions de text?
Les incrustacions de text (text embeddings) són representacions numèriques de paraules, frases o documents que capten el seu significat semàntic i les seves relacions. Les generen models d’incrustació que converteixen el text en vectors, és a dir, llistes de nombres que els algorismes d’aprenentatge automàtic poden processar i comparar.
Els enginyers d’aprenentatge automàtic utilitzen les incrustacions de text perquè les aplicacions de programari reconeguin les relacions entre paraules i frases, cosa que facilita cercar, categoritzar i analitzar grans volums de dades.
Imagina que reps milers de tiquets d’assistència cada dia. Els clients informen de tota mena de problemes imaginables, però els has de categoritzar i etiquetar. Una manera d’automatitzar aquest procés és utilitzar un model d’incrustació de text preentrenat per convertir cada tiquet en un vector.
Per exemple, dos clients envien els missatges següents:
- «M’heu cobrat dues vegades la subscripció»: [0.21, -0.47, 0.83, ...]
- «Hi ha un pagament duplicat al meu compte»: [0.19, -0.45, 0.80, ...]
Aquests vectors són simplificats i il·lustratius.
Tot i que els clients fan servir paraules diferents, descriuen el mateix problema. El model d’incrustació capta aquesta relació situant els seus vectors a prop l’un de l’altre en un espai matemàtic. Tots dos tiquets es categoritzen i s’envien a l’equip de facturació.
Casos d’ús de les incrustacions de text a les empreses
Les incrustacions de text s’utilitzen en diverses tasques de processament del llenguatge natural (PLN), com ara:
- Cerca semàntica: trobar informació rellevant a partir del significat. Delivery Hero utilitza incrustacions de productes i de consultes juntament amb la cerca per paraules clau per ajudar els clients de supermercat a trobar productes rellevants. Per exemple, una cerca de «iogurt baix en greix» pot mostrar iogurt grec o iogurt amb un 0,5 % de greix, fins i tot sense una coincidència exacta de paraules.
- Classificació de text: categoritzar text, per exemple, identificar correus brossa o ordenar documents per tema. MindCraft.ai ha desenvolupat un sistema de classificació de documents que utilitza incrustacions de text basades en transformadors i aprenentatge automàtic per categoritzar documents corporatius i identificar informació sensible per complir el RGPD.
- Agrupament (clustering): reunir documents o fragments de text similars per identificar patrons. Doczy.ai converteix el text dels contractes en incrustacions i agrupa clàusules i conceptes relacionats semànticament, fins i tot quan contractes diferents expressen obligacions similars amb paraules diferents.
- Generació augmentada per recuperació (RAG): recuperar informació rellevant que un LLM pot utilitzar per generar respostes més precises i adaptades al context. Ring utilitza incrustacions de text d’Amazon Titan en un xatbot RAG multilingüe per recuperar la documentació d’assistència rellevant abans de generar respostes a les preguntes dels clients en diversos mercats internacionals.
- Sistemes de recomanació: suggerir articles, productes o altres continguts relacionats a partir de similituds textuals. El sistema JUDE de LinkedIn utilitza incrustacions de text generades per LLM a partir de descripcions de feina i perfils de membres per millorar les recomanacions de feina, i capta les relacions entre la trajectòria dels candidats i les vacants disponibles.
- Reconeixement d’entitats amb nom (NER): ajudar a identificar i classificar noms de persones, organitzacions i llocs en un text. Amazon Health Services utilitza el NER per identificar conceptes mèdics en les consultes dels clients, com ara malalties, símptomes, medicaments i tractaments. Combina aquesta comprensió amb la cerca per similitud basada en incrustacions per relacionar les consultes amb productes i serveis sanitaris rellevants.
- Traducció automàtica: donar suport als models que tradueixen text entre idiomes. Transglot utilitza incrustacions de text en una memòria de traducció semàntica per identificar passatges traduïts anteriorment amb significats similars, cosa que ajuda els fluxos de treball de localització a reutilitzar traduccions existents.
Com funcionen les incrustacions de text?
Aleshores, com decideix un model d’incrustació quins valors numèrics assigna a un fragment de text, i per què ens n’hauríem de fiar?
Tot comença amb l’entrenament. Els models d’incrustació aprenen de grans col·leccions de text i busquen patrons en la manera com les paraules s’utilitzen juntes. Per exemple, els models tradicionals com Word2Vec aprenen predient una paraula a partir de les paraules que l’envolten, o a l’inrevés. Els models moderns orientats a la recuperació sovint utilitzen l’aprenentatge contrastiu: s’entrenen per assignar puntuacions de similitud més altes als parells consulta-document rellevants que als que no tenen cap relació.
Un cop el model està entrenat, això és el que passa quan li dones un text nou:
- Tokenització. Primer, el model divideix el text en fragments més petits anomenats tokens. Poden ser paraules senceres, parts de paraules o signes de puntuació. Cada token rep un identificador numèric del vocabulari del model, que per si sol no té cap significat.
- Codificació i agrupació (pooling). El model processa aquests tokens mitjançant els patrons que ha après durant l’entrenament i genera un vector. Cada nombre del vector és una coordenada o un component, i una dimensió és l’eix al llarg del qual aquest nombre defineix la posició del vector. Cada valor contribueix a la posició del text en un espai matemàtic, conegut com a espai d’incrustació.
- Càlcul de similitud. Per trobar text relacionat, un sistema de recuperació compara la incrustació de la consulta amb les incrustacions dels documents mitjançant una mesura de similitud com la similitud del cosinus o el producte escalar.
Així és com, per exemple, les botigues en línia retornen els articles que coincideixen amb la consulta d’un usuari.
Quina diferència hi ha entre les incrustacions de paraules, de frases i de documents?
La diferència principal és la quantitat de text que representa cada incrustació en un sol vector. Pots crear incrustacions per a paraules individuals, frases completes o documents sencers, segons la informació que vulguis capturar.
- Les incrustacions de paraules capten les relacions entre paraules individuals i reconeixen que «interrupció» i «temps d’inactivitat» són conceptes relacionats.
- Les incrustacions de frases entenen el significat de frases senceres, fins i tot quan expressen la mateixa idea amb paraules diferents.
- Les incrustacions de documents representen un document sencer com un sol vector, en lloc de crear un vector independent per a cada frase. Això ajuda a preservar el tema general i a trobar altres documents que tractin el mateix tema; tanmateix, els detalls poden ser més difícils (si no impossibles) de recuperar.
Quin nivell de granularitat convé? El nivell adequat depèn de les teves dades i del que vulguis aconseguir.
En documents més llargs, una pràctica habitual és dividir el text en fragments més petits i generar una incrustació independent per a cadascun. D’aquesta manera, obtindràs el significat general del document I TAMBÉ els detalls específics, que es podrien perdre amb les incrustacions de documents.
Fins a quin punt afecta la mida dels fragments la qualitat de les incrustacions?
Força. Segons Rahul Kumar, vicepresident d’enginyeria d’IA a Xenoss, el repte és trobar una mida de fragment que capturi una idea completa sense perdre context important. Així explica l’equilibri que cal trobar:
«La mida del fragment determina quant context semàntic conté una incrustació. Un fragment més gran dona més context al vector, però també barreja més temes en un sol vector, fent-ne la mitjana. Un fragment que cobreix tres temes queda al mig i no coincideix bé amb cap d’ells. Un fragment més petit manté el significat precís, però pot perdre el context que el feia localitzable.»
Per això Kumar recomana triar una estratègia de fragmentació en funció del contingut en lloc de cenyir-se a una mida fixa. Tal com ell diu, «la mida fixa amb solapament només funciona bé per a text uniforme, com ara correus electrònics o pàgines web extretes automàticament».
Per a documents estructurats, com ara contractes o polítiques, és més adequada una divisió recursiva que tingui en compte l’estructura. La fragmentació semàntica, en canvi, pot funcionar bé amb transcripcions, ja que divideix el text allà on canvia el tema o el significat.
Incrustacions de text o cerca per paraules clau
Per què utilitzar incrustacions de text si pots cercar simplement per paraules clau? Perquè la cerca per paraules clau es basa en la coincidència de termes, mentre que la cerca semàntica basada en incrustacions pot recuperar informació rellevant fins i tot quan la consulta i el document fan servir paraules diferents.
Però la similitud semàntica no sempre implica rellevància. Shaw Talebi, fundador d’AI Builder Academy, demostra aquesta limitació amb un sistema de cerca de currículums. En el cas de Talebi, en cercar un «enginyer de dades amb experiència en Apache Airflow», només un dels cinc primers resultats esmentava Apache Airflow, i ocupava el tercer lloc, tot i que tres altres currículums del conjunt de dades incloïen aquesta competència.
Això vol dir que la cerca semàntica és útil per trobar informació relacionada conceptualment, però pot passar per alt requisits exactes, com ara competències tècniques, identificadors de producte o codis d’error.
Per resoldre aquest problema, Rahul Kumar recomana triar un enfocament de recuperació en funció dels punts febles del sistema de recuperació:
- La cerca híbrida (la combinació de la coincidència de paraules clau amb la cerca semàntica) és l’opció per defecte quan les consultes contenen termes exactes, com ara SKU, codis d’error o referències legals.
- Els reordenadors (rerankers) justifiquen el seu cost quan només importen els primers resultats, com en les respostes generades a partir del context recuperat.
- La recuperació basada en grafs és útil quan la resposta abasta diverses fonts de dades connectades.
Kumar també va explicar com el seu equip va posar en pràctica aquests enfocaments. En un projecte, van executar en paral·lel la cerca per paraules clau BM25 i la cerca vectorial, van combinar els resultats mitjançant la fusió de rangs recíprocs (RRF) i van utilitzar un LLM per reordenar els 124 primers resultats fins a quedar-se amb 6.
«El pas a una recuperació centrada en grafs, amb una cerca vectorial que troba espais latents similars i després un recorregut de graf de dos salts, va millorar la qualitat de l’ordenació (nDCG) de 0,58 a 0,67 i va reduir el temps de recuperació p90 de 19 s a menys de 3 s», afegeix Kumar.
Tipus de models d’incrustació de text
En general, tots els models d’incrustació fan el mateix: aprendre les relacions dins del text. Tanmateix, es diferencien per l’objectiu per al qual s’entrenen, la informació que tenen en compte i les tasques per a les quals estan dissenyats.
Models d’incrustació de paraules estàtics
Els models tradicionals d’incrustació de paraules aprenen representacions numèriques denses de les paraules a partir dels patrons d’ús en grans col·leccions de text. Aquestes incrustacions són estàtiques, és a dir, cada paraula rep el mateix vector independentment del seu significat en un context concret.
Dos mètodes coneguts són:
- Word2Vec: desenvolupat per Google el 2013, aprèn representacions a partir de les paraules veïnes mitjançant dues arquitectures: Continuous Bag of Words (CBOW), que prediu una paraula a partir de les seves veïnes, i skip-gram, que prediu les paraules veïnes a partir d’una paraula donada.
- GloVe (Global Vectors for Word Representation): desenvolupat a Stanford el 2014, utilitza estadístiques de coocurrència de paraules per aprendre les relacions entre paraules.
Models de llenguatge contextualitzats
A diferència de les incrustacions estàtiques, els models de llenguatge de propòsit general generen representacions contextuals que canvien segons el text que les envolta. Això ajuda els models a distingir entre els diferents significats d’una mateixa paraula.
- BERT (2018, Google): utilitza l’autoatenció bidireccional per tenir en compte les paraules a banda i banda d’un token. Per exemple, genera representacions diferents per a «banc» a «Vaig ingressar diners al banc» i a «Em vaig asseure en un banc del parc».
- GPT (2018, OpenAI): utilitza representacions basades en transformadors que tenen en compte el text anterior mentre prediu el token següent. Els models GPT estan dissenyats principalment per a la generació de llenguatge.
Models d’incrustació de frases i documents
Representen com a vectors fragments de text més llargs, des de frases individuals fins a paràgrafs i documents sencers.
- Doc2Vec: amplia l’aprenentatge a l’estil de Word2Vec a frases, paràgrafs i documents. Pot ajudar a agrupar articles relacionats o a classificar documents per tema.
- Universal Sentence Encoder (USE): desenvolupat per Google el 2018 per generar representacions de longitud fixa de frases i paràgrafs curts per a la similitud semàntica i la classificació de text.
- Sentence-BERT (SBERT, 2019): desenvolupat per Nils Reimers i Iryna Gurevych a la Universitat Tècnica de Darmstadt, es basa en el model BERT de Google i s’utilitza habitualment per a la cerca semàntica, la detecció de paràfrasis i l’agrupament.
- pplx-embed-v1 (2026, Perplexity): aquesta família de models d’incrustació de text d’última generació, creada per a la recuperació a escala web en entorns reals, utilitza un preentrenament basat en difusió per convertir un model de llenguatge causal en un codificador bidireccional. Genera incrustacions denses per a consultes i documents codificats de manera independent, amb un entrenament conscient de la quantització per reduir els costos d’emmagatzematge. El nostre model 4B INT8 va obtenir un 69,66 de nDCG@10 al banc de proves multilingüe de recuperació MTEB, en comparació amb el 67,71 de gemini-embedding-001 de Google.
- pplx-embed-context-v1 (2026, Perplexity): aborda un problema habitual de la fragmentació de documents: els passatges poden perdre el seu significat quan se separen del text que els envolta. Mitjançant la fragmentació tardana (late chunking), el model processa el document abans d’agrupar les representacions contextualitzades dels tokens en incrustacions de fragments independents. El nostre model 4B va obtenir un 81,96 de nDCG@10 a ConTEB, en comparació amb el 79,45 de voyage-context-3.
- pplx-embed-v2-context (2026, Perplexity): porta la recuperació contextual més enllà. En lloc d’entrenar-se només per trobar el passatge que conté una resposta, aprèn a identificar passatges de suport que ajuden a explicar o verificar aquesta resposta. Durant l’entrenament, el model utilitza senyals de rellevància destil·lats d’un model de compressió de context, sense necessitat d’aquest model mestre en el moment de la inferència. La nostra versió preliminar 9B va assolir un 45,5 % d’exhaustivitat de respostes i un 40,6 % d’exhaustivitat d’evidències amb 10 resultats a context-bench.
Els models de Perplexity també permeten emmagatzemar incrustacions a gran escala. Els models generen incrustacions INT8 i binàries, que redueixen els requisits d’emmagatzematge 4 i 32 vegades, respectivament, en comparació amb FP32.
Model | Dimensions | Context | MRL | Quantització | Instrucció | Agrupació |
pplx-embed-v1-0.6B | 1024 | 32K | Sí | INT8/BINARI | No | Mitjana |
pplx-embed-v1-4B | 2560 | 32K | Sí | INT8/BINARI | No | Mitjana |
pplx-embed-context-v1-0.6B | 1024 | 32K | Sí | INT8/BINARI | No | Mitjana |
pplx-embed-context-v1-4B | 2560 | 32K | Sí | INT8/BINARI | No | Mitjana |
Dimensions, longitud de context, quantització i configuració d’agrupació dels models pplx-embed
Incrustacions denses, disperses i multivectorials
Hi ha una altra distinció que val la pena entendre, sobretot per a la cerca semàntica. Els models d’incrustació es poden diferenciar en com representen el text i calculen la rellevància.
- Incrustacions denses: representen el text mitjançant vectors compactes en què la majoria dels valors són diferents de zero.
- Incrustacions disperses: utilitzen vectors amb valors majoritàriament nuls, amb pesos apresos associats als termes importants. Models com SPLADE (2021) aprenen quins termes són importants per recuperar documents rellevants.
- Incrustacions multivectorials: conserven diversos vectors per a un fragment de text, cosa que permet comparacions més detallades entre consultes i documents. Models com ColBERT (2020) utilitzen aquestes representacions per fer comparacions més detallades entre consultes i documents.
- Models que combinen diversos enfocaments: BGE-M3 (2024), desenvolupat per BAAI, admet la recuperació densa, dispersa i multivectorial en un mateix model.
Com triar i avaluar un model d’incrustació de text
Els bancs de proves públics com MTEB són un bon punt de partida. Fes-los servir per preseleccionar dos o tres models que siguin compatibles amb els teus idiomes, longituds d’entrada i requisits de desplegament. Però no triïs encara el guanyador. No podem insistir prou en la importància de provar aquests models amb les teves pròpies dades.
Aquest és un flux de treball d’avaluació pràctic:
- Crea un conjunt de dades de prova. Recull entre 50 i 100 consultes de cerca representatives com a conjunt d’avaluació inicial (potser en necessitaràs més), incloent-hi casos complicats com ara paràfrasis, terminologia tècnica i codis d’error exactes. Per a cada consulta, identifica quins documents o passatges contenen respostes rellevants. Aquestes etiquetes de rellevància es converteixen en la teva veritat de referència.
- Mesura la qualitat de la recuperació. Prova cada model amb el mateix conjunt de dades d’avaluació i mantén comparables la preparació dels documents i les condicions de recuperació, tot respectant els requisits específics de cada model pel que fa al format de les consultes, la normalització i la puntuació de similitud. Després, calcula les mètriques següents amb l’InformationRetrievalEvaluator de Sentence Transformers:
- Recall@k: indica la proporció de passatges rellevants que apareixen entre els k primers resultats.
- MRR: mesura en quina posició de la classificació apareix el primer resultat rellevant.
- nDCG@k: mesura la qualitat de l’ordenació dels k primers resultats en funció de la seva rellevància.
- Avalua la latència i la capacitat de processament. Mesura quant de temps triga cada model a generar l’embedding d’una consulta i, idealment, indica la latència mediana (p50) i la del percentil 95 (p95) amb una càrrega realista.
- Calcula els costos d’emmagatzematge i de funcionament. L’emmagatzematge vectorial depèn del nombre d’embeddings, de les seves dimensions i de la precisió numèrica. Per exemple, un milió d’embeddings FP32 de 768 dimensions requereix aproximadament 3,1 GB d’emmagatzematge vectorial en brut, sense comptar la sobrecàrrega de la indexació. Per reduir les necessitats d’emmagatzematge, pots quantitzar els vectors a una precisió numèrica inferior. Passar de FP32 a INT8, per exemple, redueix l’emmagatzematge vectorial en brut aproximadament 4 vegades. Tanmateix, la compressió pot afectar la qualitat de la recuperació, així que torna a fer les avaluacions per comprovar si l’estalvi compensa.
En definitiva, posa els resultats un al costat de l’altre i compara’ls: mètriques de recuperació, latència p95, capacitat de processament, emmagatzematge i cost. Tria el model que compleixi els teus requisits de qualitat dins de les limitacions de l’entorn de producció.
Quan convé fer servir embeddings en lloc d’un LLM?
Ara que els LLM s’encarreguen de tot, des de l’anàlisi de documents fins al raonament complex, és molt temptador llançar tot el text a un model i deixar que ho resolgui. Però segurament no et farà gaire gràcia pagar-ne la factura.
A més, els LLM són més eficaços a l’hora de jutjar i redactar, però estan limitats per la quantitat d’informació que poden encabir en una sola petició. Els embeddings, en canvi, són econòmics, ràpids i coherents, i funcionen amb milions d’elements.
«Els embeddings s’imposen en la cerca, les recomanacions (“més com aquest”), la detecció de duplicats, com ara tiquets de suport repetits, i l’agrupació de grans volums de contingut per temes. També funcionen molt bé en diferents idiomes. Un LLM s’imposa quan la tasca requereix raonament: resumir, comparar opcions o redactar una resposta. La majoria de sistemes reals necessiten tots dos, i cadascun s’encarrega de la part que fa millor», conclou Kumar.
En què s’equivoquen els desenvolupadors amb els embeddings de text
Per descobrir què solen passar per alt els desenvolupadors, vaig parlar amb Rahul Kumar i Xibeijia Guan, de l’equip de ciència de dades d’Ahrefs. Em van destacar sis errors que cal tenir en compte:
- Ometre el preprocessament del text. Si les dades d’entrada contenen HTML, menús de navegació, anuncis o altres continguts irrellevants, els passos de preprocessament, com ara l’eliminació de contingut repetitiu, poden ajudar a millorar la qualitat dels embeddings, ja que eliminen la informació innecessària.
- Ignorar la longitud màxima d’entrada del model. Cada model té límits de tokens i comportaments de truncament diferents. El text que superi el límit es pot truncar, i això pot fer que es perdi informació important.
- No seguir els requisits específics del model. Alguns models d’embeddings requereixen prefixos específics, com ara query: i passage:, o instruccions diferents per a cada tasca. Si no se segueixen aquests requisits, el rendiment de la recuperació pot disminuir.
- Fer servir una mesura de similitud incompatible. La similitud del cosinus i el producte escalar no sempre són intercanviables. Comprova si els embeddings estan normalitzats i fes servir el mètode de puntuació recomanat per al model i l’índex vectorial.
- Confondre la similitud temàtica amb la rellevància. En col·leccions d’un domini molt específic, molts documents poden ser semànticament similars sense respondre la mateixa pregunta. Examina les consultes fallides i les distribucions de la classificació. Prova la recuperació lèxica o híbrida, la reordenació i els filtres de metadades quan els usuaris necessitin informació exacta.
- Ignorar la normalització dels embeddings. Cada model d’embeddings pot generar vectors normalitzats o no normalitzats. Comprova si els embeddings estan normalitzats i si cal una normalització addicional, segons la mètrica de similitud que facis servir.
Preguntes freqüents sobre els embeddings de text
1. Com puc generar embeddings de text?
La manera més senzilla és fer servir un model d’embeddings preentrenat. Amb la biblioteca Sentence Transformers de Python, per exemple, pots carregar un model com all-MiniLM-L6-v2, passar el text a model.encode(), i obtenir un vector numèric com a resultat. També pots generar embeddings mitjançant una API.
Per a la cerca semàntica o el RAG, normalment cal dividir els documents en fragments, generar un embedding per a cadascun i emmagatzemar els vectors en un índex que permeti fer cerques.
2. Quins són els millors models d’embeddings per a text?
Hi ha diversos models que val la pena tenir en compte, segons el que estiguis creant:
- pplx-embed-v1 de Perplexity: dissenyat per a la recuperació densa a gran escala, amb embeddings INT8 i binaris que redueixen les necessitats d’emmagatzematge vectorial.
- pplx-embed-context-v1 de Perplexity: útil per recuperar passatges de documents llargs en què els fragments individuals perden el sentit sense el context que els envolta.
- all-MiniLM-L6-v2: adequat per a tasques lleugeres i locals de cerca semàntica, agrupament i similitud de frases. Genera vectors compactes de 384 dimensions, però trunca les entrades de més de 256 subparaules (word pieces).
- BGE-M3: útil per al RAG multilingüe i la recuperació híbrida. Admet més de 100 idiomes i combina representacions denses, disperses i multivectorials.
- Qwen3-Embedding: un candidat sòlid per a la cerca multilingüe, la recuperació de codi i els embeddings específics per a cada tasca. Ofereix models de pesos oberts de 0.6B, 4B i 8B compatibles amb instruccions.
- text-embedding-3-large d’OpenAI: una opció basada en API per a la cerca semàntica i la recuperació de documents quan no vols allotjar cap model. Admet fins a 3.072 dimensions, que pots reduir per estalviar emmagatzematge.
- Models Gemini Embedding de Google: útils per a aplicacions de recuperació gestionades. Gemini Embedding 2 també permet cercar entre text, imatges, àudio, vídeo i PDF en un espai d’embeddings compartit.
3. Puc fer servir un LLM com a model d’embeddings?
Sí, però hi ha una diferència entre un LLM de propòsit general i un model optimitzat per a embeddings. Els LLM produeixen representacions vectorials internes del text, que pots extreure i agregar (pooling) en un únic embedding. Tanmateix, aquests vectors no són necessàriament útils per a la cerca semàntica sense un entrenament addicional.
Per exemple, Qwen3-Embedding fa servir com a base un LLM que s’ha entrenat més a fons per a tasques d’embedding i de recuperació. Per tant, tot i que pots adaptar un LLM perquè generi embeddings, un model d’embeddings dedicat sol ser el punt de partida més pràctic.