> Font: https://www.esfis.com/bloc/vectors-i-paraules · esfis, els teus projectes, el teu context, els teus agents. Actualitzat el 15 de setembre del 2026.

# Quan una paraula rara val més que un vector

> Per decidir què arriba a l'agent, esfis combina BM25 amb els vectors de frase de macOS, i els vectors només hi pesen una quarta part. Per què, com tria el model quan escrius en català i quina pregunta encara no resol bé.

Francesc Pinyol, Fundador · 15 de setembre del 2026 · 3 min de lectura

Quan un agent crida `recall`, esfis ha de triar, d'entre tot el que sap, les poques peces que responen la pregunta. I ho ha de fer sense connexió i sense cap model gran. Per aconseguir-ho combina dos senyals, que no pesen igual.

## Els vectors, sols, diuen que tot s'assembla

macOS inclou models de vectors de frase (`NLEmbedding`). Són gratuïts, funcionen en local i capten bé el sentit. El problema és que les similituds s'amunteguen en una franja molt estreta: en una base de records personals, tot s'assembla una mica a tot, i sempre hi ha alguna cosa que queda primera.

Per això la similitud no es fa servir com a valor absolut. Es mesura quant destaca cada record respecte de la resta per a aquesta pregunta concreta: quantes desviacions per sobre de la mitjana. El que no destaca amb claredat no suma.

## Les paraules aporten la precisió

L'altra meitat és BM25, el mètode de rànquing clàssic dels cercadors. Una paraula rara pesa més que una de corrent: «esfis» o «Vercel» diuen molt més que «fa» o «servir». I una paraula de la pregunta que no apareix enlloc de la base compta la meitat, perquè les paraules de farciment no tapin la que importa.

La puntuació final és tres quartes parts de paraules i una quarta part de vectors. A més, un record que no comparteix cap paraula amb la pregunta només compta si els vectors el consideren un cas molt clar; si no, la seva puntuació és zero.

## No respondre també és una resposta

Després ve la selecció:

- Si el millor resultat no arriba a un mínim, no es retorna res: la pregunta no té relació amb el que saps.
- D'entre la resta, només es queda el que s'acosta al millor, aproximadament la meitat de la seva puntuació o més.
- Com a màxim, vuit resultats.
- En cas d'empat, guanya el record que s'ha fet servir més vegades.

Un agent que rep vint records fluixos treballa pitjor que un que en rep tres de bons, o cap.

## El català no té model propi

macOS no inclou cap model de vectors de frase per al català. esfis fa servir el del castellà, que és el més proper, i la part lèxica compensa la resta.

La llengua la determina el contingut, no la configuració del Mac: esfis llegeix els primers records de la base i en detecta l'idioma. El model utilitzat queda registrat, i si canvia (per exemple, perquè la base passa a ser majoritàriament en anglès), els vectors es tornen a calcular automàticament. Dos vectors de models diferents no es poden comparar, i sense aquesta comprovació ningú no se n'adonaria.

Un detall més: d'un text llarg només es vectoritza el primer paràgraf. Un fet importat d'un `.md` pot tenir vint línies, i un vector de tot el conjunt no diria res. El cos sencer ja compta a la part lèxica.

## El que encara no fem bé

Una pregunta sobre algú de qui no has parlat mai, com ara «on viu l'Alex», pot retornar dos o tres records fluixos. Com que la paraula distintiva no apareix enlloc, una paraula corrent de la pregunta hi pesa massa. Aquests records puntuen la meitat que un encert, però el llindar no els descarta.

Es veu de seguida a Configuració › Prova, que mostra la puntuació de cada peça i el que ha quedat fora. És la pròxima millora que volem fer, i l'anunciarem a [novetats](/novetats) quan estigui llesta.
