Intermedio 14 minEmbeddings

I migliori modelli di embedding FR

Risposta diretta

Per il francese, BGE-M3 è il punto di partenza più sicuro: multilingue, 8.192 token di contesto, licenza MIT, disponibile in Ollama. Qwen3-Embedding e EmbeddingGemma sono le alternative recenti da testare. I modelli incentrati sull'inglese (nomic-embed-text, mxbai-embed-large, all-MiniLM) sono da evitare per il francese. La scelta finale va verificata sui tuoi documenti.

Un modello di embedding trasforma ogni testo in un vettore: è questo modello a stabilire che «CDD» e «contratto a tempo determinato» sono vicini. Per il francese, il benchmark MTEB-French misura una differenza di 22 punti nel retrieval tra BGE-M3 e all-MiniLM-L12-v2. Questa pagina classifica i modelli aperti utilizzabili in locale, cita le misurazioni pubblicate e i loro limiti, poi affronta gli aspetti più costosi in produzione: prefissi, troncamento, dimensioni, archiviazione, reindicizzazione.

Di Mohamed Meguedmi·Agg. 2026-09-29·Testato su Windows, macOS e Linux

#Cosa è un modello di embedding e perché il francese lo complica

Un modello di embedding è una rete neurale che converte un testo (una frase, un paragrafo, un chunk) in un vettore di numeri, con un numero di dimensioni compreso tra 384 e 4.096 a seconda del modello. Due testi dal significato simile producono vettori vicini, la cui vicinanza si misura più spesso tramite la similarità coseno. È questo che permette a un RAG di ritrovare un passaggio sul «contratto a tempo determinato» quando l'utente scrive «CDD», senza alcuna parola in comune. Lo stesso modello deve codificare le domande e i documenti, come ricorda la documentazione di Ollama; cambiare modello obbliga quindi a reindicizzare tutto il corpus. Per scegliere, bastano tre domande: il modello è stato addestrato sul francese, il suo contesto copre i tuoi chunk, la sua licenza consente l'uso che intendi farne?

Il francese presenta ulteriori difficoltà specifiche: accenti, elisioni (« l'employeur »), sigle giuridiche, anglicismi tecnici mescolati al testo. La differenza tra i modelli è netta. Nel benchmark MTEB-French, il punteggio di retrieval va da 0,43 per all-MiniLM-L12-v2 a 0,65 per BGE-M3, cioè 22 punti di differenza sullo stesso insieme di domande.

i
Dimensione ≠ qualità
Un vettore più lungo non è intrinsecamente più preciso. Nella classifica multilingue MTEB, EmbeddingGemma passa da 61,15 a 60,71 riducendo i suoi vettori da 768 a 512 dimensioni, e Google indica anche vettori da 256 e 128 dimensioni. Il risparmio di spazio di archiviazione è proporzionale, la perdita di qualità non lo è.

#I cinque criteri che davvero distinguono i modelli

Il kit RAG Local

I tuoi documenti, la tua IA: un RAG locale affidabile sui tuoi PDF, sulle tue note e sulle tue email — senza inviare nulla nel cloud.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita
Lingue di addestramento
BGE-M3 e Qwen3-Embedding dichiarano oltre 100 lingue, multilingual-e5-large 94. Le schede di nomic-embed-text-v1.5 e di mxbai-embed-large-v1, molto scaricati in Ollama, riportano l'etichetta English.
Contesto massimo
512 token per multilingual-e5-large, Solon e mxbai-embed-large; 2.048 per EmbeddingGemma; 8.192 per BGE-M3; 32.000 per Qwen3-Embedding e Granite R2. Un chunk più lungo è troncato, non rifiutato.
Dimensioni e archiviazione
Da 384 a 4.096 dimensioni, cioè 4 byte per dimensione e per vettore in float32 (calcolo più sotto).
Licenza
MIT per BGE-M3, multilingual-e5-large e Solon; Apache 2.0 per Qwen3-Embedding, Granite R2, nomic e mxbai; condizioni Gemma per EmbeddingGemma; CC BY-NC 4.0 (non commerciale) per jina-clip-v2.
Prefissi e istruzioni
Alcuni modelli richiedono un prefisso davanti a ogni testo (« query: » e « passage: » per E5, anche in francese). Dimenticarlo peggiora il retrieval senza segnalare alcun errore.

#Classifica 2026 per il francese: nove modelli confrontati

Questa classifica è editoriale, non un test interno: incrocia la copertura del francese, i benchmark pubblicati e la disponibilità in locale. I pesi provengono dalla libreria di Ollama quando il modello è presente, altrimenti dalla stima in float32 dello studio MTEB-French.

Modelli di embedding per il francese: caratteristiche pubblicate dai produttori
ModelloDimensioni / contestoLicenzaDimensione del modelloCosa dicono le fonti sul francese
BGE-M3 (BAAI)1 024 / 8 192MIT1,2 GB (Ollama)Retrieval su MTEB-French: 0,65. Embedding densi, sparsi e multivettore. Punto di partenza consigliato.
Qwen3-Embedding 0,6B / 4B / 8B1 024 / 2 560 / 4 096 ; 32 000Apache 2.0639 MB / 2,5 GB / 4,7 GB (Ollama)Più di 100 lingue. MTEB multilingue secondo Qwen: 64,33 / 69,45 / 70,58.
EmbeddingGemma 300M (Google)768 (512, 256, 128) / 2 048Gemma622 MB (Ollama)Più di 100 lingue. MTEB multilingue v2: 61,15 secondo Google.
multilingual-e5-large1 024 / 512MIT2,24 GB (float32)Retrieval MTEB-French 0,59. Prefissi obbligatori.
Solon-embeddings-large-0.11 024 / 512MIT2,24 GB (float32)Modello francese pubblicato da Ordalie Technologies. Retrieval MTEB-French 0,63.
Granite Embedding 311M Multilingual R2 (IBM)768 / 32 768Apache 2.0311 M parametriIl francese è tra le 52 lingue per cui il supporto è stato potenziato. Punteggio di 65,2 nel retrieval su MTEB multilingue secondo IBM; non è stata consultata alcuna misurazione indipendente per il francese.
nomic-embed-text v1.5768 / 8 192 (2 048 con Ollama)Apache 2.0274 MB (Ollama)Scheda etichettata come inglese. Da riservare ai corpus in inglese.
mxbai-embed-large-v1contesto 512Apache 2.0670 MB (Ollama)Scheda etichettata come inglese. Da riservare ai corpus in inglese.
all-MiniLM-L12-v2384Apache 2.033 M parametriRetrieval MTEB-French: 0,43. Prototipo solo su CPU.

BGE-M3 resta la migliore scelta predefinita: sono pubblicate informazioni sul suo retrieval in francese, il suo contesto di 8.192 token evita la maggior parte delle segmentazioni forzate e fornisce anche i pesi lessicali utili per una ricerca ibrida. Qwen3-Embedding è un candidato quando è disponibile una scheda grafica: la sua versione 8B era in testa alla classifica multilingue MTEB al momento del lancio, il 5 giugno 2025, secondo Qwen, ma le sue 4.096 dimensioni pesano sullo spazio di archiviazione. EmbeddingGemma è pensato per le macchine con risorse limitate.

Solon, spesso presentato come specialista del francese giuridico e amministrativo, non risulta superiore in nessuno dei tre dataset di retrieval dello studio MTEB-French: eguaglia BGE-M3 sul contratto collettivo Syntec e resta indietro sugli articoli di legge (BSARD) e sulle domande scolastiche (Alloprof).

#Cosa dicono i benchmark francesi, e cosa non dicono

Il riferimento pubblicato è MTEB-French (Ciancone et al., maggio 2024): 18 insiemi di dati, 8 categorie di compiti, 51 modelli confrontati. Gli autori concludono che i grandi modelli multilingui preaddestrati sulla similarità tra frasi ottengono risultati eccezionalmente buoni. Ecco il retrieval (NDCG@10) su tre insiemi di dati: articoli di legge in francese (BSARD), contratto collettivo Syntec, domande scolastiche di Alloprof.

MTEB-French: retrieval (NDCG@10) per insieme di dati, studio del 2024
ModelloRecupero medioDiritto (BSARD)Contratto collettivo SyntecAlloprof
text-embedding-3-large (API OpenAI)0,730,730,870,60
mistral-embed (API Mistral)0,680,680,790,57
BGE-M30,650,600,850,49
Solon-embeddings-large-0.10,630,580,850,47
multilingual-e5-large0,590,590,810,38
multilingual-e5-small0,520,520,760,27
paraphrase-multilingual-MiniLM-L12-v20,440,380,660,27
all-MiniLM-L12-v20,430,340,610,33

Tre limiti impediscono di ricavarne una classifica definitiva. Lo studio risale al 2024: non include né Qwen3-Embedding (giugno 2025), né EmbeddingGemma (settembre 2025), né Granite R2, e per questa pagina non sono state consultate misurazioni comparabili in francese di questi modelli. I corpus (articoli di legge, contratto collettivo, domande scolastiche) non assomigliano necessariamente ai tuoi. Infine, i punteggi multilingui pubblicati dai produttori sono autodichiarati e mescolano tutte le lingue.

!
Nessuna di queste cifre si riferisce al tuo caso
Queste tabelle provengono da uno studio pubblicato e dalle schede dei produttori, non da un test interno. Indicano dove guardare, non quale modello vincerà nel tuo caso. Per scegliere tra due modelli simili, il metodo dell'ultima sezione utilizza i tuoi dati.

#Quale modello per quale caso: tabella di decisione

Scegliere un modello di embedding per il francese
La tua situazioneModello da testare per primoPerchéAspetto da tenere presente
Corpus francese o francese + inglese, computer di discreta potenzaBGE-M3Punteggio di retrieval in francese pari a 0,65, al livello dei migliori modelli aperti dello studio1,2 GB in Ollama; nessun prefisso
Giuridico, amministrativo, risorse umaneBGE-M3, poi Solon per confrontoBGE-M3 eguaglia o supera Solon sui tre dataset in francese dello studioUn modello senza un set di test giuridici interno resta una scommessa
Macchina poco potente o solo CPUEmbeddingGemma 300M, o multilingual-e5-small622 MB in Ollama; progettato da Google per computer portatili e dispositivi mobiliContesto di 2.048 token: chunk corti
Scheda grafica disponibile, qualità massimaQwen3-Embedding-4B o 8B32.000 token, dimensioni regolabili, più di 100 lingue2.560 e 4.096 dimensioni: archiviazione e limiti degli indici
Chunk lunghi, documenti strutturatiBGE-M3, Qwen3-Embedding o Granite R2Da 8.192 a 32.768 token di contestoUn chunk molto lungo diluisce il senso
Uso commerciale, audit della licenzaBGE-M3, multilingual-e5-large, Solon, Qwen3-Embedding, Granite R2MIT o Apache 2.0Rileggere le condizioni di Gemma; jina-clip-v2 è riservato all'uso non commerciale

#Embedding aziendali su misura: modello aperto, fine-tuning o API

«Su misura» non significa addestrare il proprio modello fin dall'inizio. La sequenza che evita di sprecare tempo: un modello aperto generico, un chunking curato, una ricerca ibrida e un reranker; poi una misurazione del recall sulle tue domande reali; poi, solo se gli insuccessi persistono e dipendono dal lessico professionale (riferimenti interni, sigle aziendali), un fine-tuning.

Philipp Schmid ha eseguito nel giugno 2024 il fine-tuning del modello bge-base-en-v1.5 su 6.300 coppie domanda-passaggio tratte da documenti finanziari: il punteggio di retrieval è aumentato di circa il 7,4% sul suo set di test, con un addestramento di tre minuti su una scheda grafica consumer. È un caso in inglese, su un solo corpus, con coppie generate da un LLM: un ordine di grandezza, non una promessa. BAAI documenta anche il fine-tuning di BGE-M3.

Tre modi per ottenere un embedding adatto a un'azienda
OpzioneQuando sceglierlaLimiti
Modello aperto generico locale (BGE-M3, Qwen3-Embedding)Punto di partenza predefinito; i testi rimangono sulla tua rete; licenza MIT o ApacheLessico professionale non appreso; da valutare sui tuoi documenti
Fine-tuning di un modello apertoRecall che non migliora nonostante la ricerca ibrida e il reranker; diverse migliaia di coppie domanda-branoCorpus da ricodificare; modello da versionare come un software; rischio di sovraadattamento
API di embedding (Mistral, OpenAI)Nessuna GPU, volume moderato; text-embedding-3-large e mistral-embed sono in testa allo studio MTEB-French del 2024I testi escono dalla tua rete; il modello può cambiare presso il fornitore; costo ricorrente
→
Il test giusto prima di fare il fine-tuning
Se il passaggio giusto compare nei primi venti risultati ma non nei primi cinque, è il caso d'uso ideale per un reranker: BAAI raccomanda infatti una ricerca ibrida seguita dal reranking. Il fine-tuning degli embedding mira ai passaggi che non compaiono mai nei risultati.

#Embedding multimodale: cercare in immagini e pagine di documenti

Un modello di embedding multimodale colloca testo e immagini nello stesso spazio vettoriale. È quindi possibile ritrovare una foto a partire da una frase, oppure una pagina scansionata di un PDF senza passare per l'OCR. I modelli della libreria Ollama consultati per questa pagina (BGE-M3, Qwen3-Embedding, EmbeddingGemma, nomic-embed-text, mxbai-embed-large) accettano soltanto testo: i modelli multimodali qui sotto si utilizzano tramite Hugging Face (Sentence-Transformers o Transformers).

Modelli di embedding multimodali aperti
ModelloInputLicenzaDa sapere
Qwen3-VL-Embedding 2B / 8BTesto, immagini, schermate, videoApache 2.032.000 token; 2.048 e 4.096 dimensioni; dimensioni regolabili
jina-clip-v2Testo e immagini; 94 lingueCC BY-NC 4.0Non commerciale: da escludere per un prodotto o servizio a pagamento senza accordo dell'editore
ColPali v1.3Pagine di documenti in formato immagine, più vettoriMIT (scheda)Scheda con indicazione della lingua inglese; più vettori per pagina cambiano il modo di archiviare i dati

Un modello multimodale non è migliore sul solo testo. Nelle tabelle pubblicate da Qwen, Qwen3-VL-Embedding-2B ottiene 63,87 su MTEB multilingue, contro 64,33 per Qwen3-Embedding-0.6B, un modello testuale più di tre volte più piccolo. Per i PDF il cui contenuto utile è testo, convertili in testo pulito (Docling o un OCR) e mantieni un embedding testuale. Riserva il multimodale ai corpus visivi: schemi, planimetrie, screenshot, diapositive.

#Gestire i propri embedding: prefissi, troncatura, archiviazione e reindicizzazione

Le prestazioni di un RAG peggiorano spesso più a causa di questi dettagli che della scelta del modello. Primo dettaglio: ogni famiglia di modelli richiede un formato di input diverso per le domande e per i documenti.

Prefissi previsti per ciascun modello (domande e documenti)
ModelloPrima della domandaPrima del documento
BGE-M3NienteNiente
multilingual-e5-largequery: passage: (obbligatorio, anche in francese)
Solon-embeddings-large-0.1query : Niente
nomic-embed-text v1.5search_query: search_document:
mxbai-embed-large-v1Rappresenta questa frase per cercare passaggi rilevanti: Niente
Qwen3-EmbeddingInstruct: {compito in una frase}, nuova riga, Query: {domanda}Niente
EmbeddingGemmatask: search result | query: {question}title: {titre ou none} | text: {contenu}

Con Ollama, l'esempio ufficiale di mxbai-embed-large inserisce direttamente il prefisso nel testo inviato: aggiungilo tu stesso nel tuo codice. Qwen indica che le istruzioni offrono in generale un miglioramento dall'1 al 5% e consiglia di scriverle in inglese anche per un corpus multilingue.

#L’insidia di Ollama: il troncamento silenzioso

L'endpoint /api/embed di Ollama ha un parametro truncate il cui valore predefinito è true: un input che supera la finestra di contesto del modello viene troncato senza errori. Con mxbai-embed-large (512 token in Ollama), un chunk di 700 token viene indicizzato senza la parte finale e nessuno se ne accorge. Il contesto di Ollama può anche differire da quello indicato nella scheda originale: 2K per nomic-embed-text, contro gli 8.192 annunciati da Nomic. Imposta truncate a false durante i test: un errore è meglio di un testo troncato.

#Dimensioni, archiviazione e limiti dell'indice

Il calcolo dello spazio di archiviazione è semplice: numero di chunk × dimensioni × 4 byte in float32, escluso l'indice. Per un milione di chunk, i soli vettori occupano:

Un milione di chunk in float32, solo i vettori (calcolo)
DimensioniEsempio di modelloArchiviazione
256EmbeddingGemma o Qwen3 ridotti (Matryoshka)1,0 GB
384all-MiniLM-L12-v21,5 GB
768EmbeddingGemma, Granite R2, nomic3,1 GB
1 024BGE-M3, multilingual-e5-large, Qwen3-0.6B4,1 GB
2 560Qwen3-Embedding-4B10,2 GB
4 096Qwen3-Embedding-8B16,4 GB

Anche i database impongono dei limiti. Con pgvector, un indice può gestire vettori con un massimo di 2.000 dimensioni, o 4.000 in mezza precisione (halfvec): le 4.096 dimensioni di Qwen3-Embedding-8B superano persino questo limite. La soluzione consiste nel troncare i vettori, operazione consentita dai modelli addestrati con Matryoshka (Qwen3-Embedding, EmbeddingGemma, nomic v1.5), e poi rinormalizzarli, come precisa Google per EmbeddingGemma. L'API /api/embed di Ollama accetta un parametro dimensions, da usare solo con questi modelli.

#Versionare e reindicizzare

Metadati da conservare
Nome esatto del modello, revisione, dimensione, modello di prefisso, parametri di chunking, data di indicizzazione. Senza queste informazioni, nessuno sa perché il retrieval sia cambiato.
Cambio di modello
Ricodifica tutto il corpus in una nuova collezione, valutala, poi passa a quella nuova. Non mescolare mai due modelli nella stessa collezione.
Normalizzazione
Ollama restituisce vettori normalizzati in L2: usa la stessa metrica (coseno o prodotto scalare) ovunque.

#Usare un modello in pratica e testarlo sui tuoi documenti

Ollama: scaricare BGE-M3 e generare un embedding
ollama pull bge-m3

curl http://localhost:11434/api/embed -d '{
  "model": "bge-m3",
  "input": "Le contrat débute le 1er mai."
}'
Ollama in Python: due testi vicini, un testo lontano
import numpy as np
import ollama

textes = [
    "Le contrat débute le 1er mai.",
    "Date de début : 01/05.",
    "La voiture est rouge.",
]
vecteurs = np.array(ollama.embed(model="bge-m3", input=textes)["embeddings"])

# Les vecteurs d'Ollama sont normalisés : le produit scalaire vaut le cosinus
print(vecteurs[0] @ vecteurs[1])
print(vecteurs[0] @ vecteurs[2])

Considera solo l'ordine dei due punteggi: il primo deve superare nettamente il secondo. Per confrontare seriamente due o tre candidati, la procedura seguente sostituisce tutte le classifiche pubblicate.

  1. 01
    Creare un set di test reale
    Raccogli da 50 a 100 domande poste da utenti reali (supporto, ticket, domande frequenti) e segna per ciascuna il chunk che contiene la risposta. Le domande inventate da un LLM fanno apparire i risultati migliori di quanto siano.
  2. 02
    Codificare con ogni modello candidato
    Codifica i chunk e poi le domande rispettando la tabella dei prefissi e mantenendo la stessa lunghezza dei chunk e la stessa dimensione di archiviazione per tutti i candidati.
  3. 03
    Misurare il recall@5
    Per ogni domanda, verifica se il chunk corretto compare tra i primi cinque risultati. Lo script di seguito effettua questo calcolo.
  4. 04
    Decidere con un criterio di costo
    Mantieni il modello meno pesante il cui recall@5 rimane a uno o due punti dal migliore: un modello otto volte più grande comporta un maggiore consumo di spazio di archiviazione e di tempo a ogni reindicizzazione.
Sentence-Transformers: recall@5 sui tuoi dati
import numpy as np
from sentence_transformers import SentenceTransformer

modele = SentenceTransformer("BAAI/bge-m3")

chunks = [...]      # vos chunks (liste de textes)
questions = [...]   # 50 à 100 vraies questions
cible = [...]       # pour chaque question, l'index du bon chunk

C = modele.encode(chunks, normalize_embeddings=True)
Q = modele.encode(questions, normalize_embeddings=True)

top5 = np.argsort(-(Q @ C.T), axis=1)[:, :5]
recall5 = np.mean([cible[i] in top5[i] for i in range(len(questions))])
print(f"recall@5 = {recall5:.0%}")
→
Salva i vettori in modo persistente
Ricodificare l'intero corpus a ogni avvio è la fase più lenta di un sistema RAG per principianti. Salva i vettori in un database (Chroma, Qdrant, pgvector, FAISS) e ricodifica solo i nuovi chunk.
FAQ
Qual è il miglior modello di embedding per il francese?+
BGE-M3 è il punto di partenza migliore: le sue prestazioni nel retrieval in francese sono pubblicate (0,65 su MTEB-French), gestisce 8.192 token, la sua licenza è MIT e Ollama lo propone. Qwen3-Embedding e EmbeddingGemma sono più recenti e non sono presenti in questo studio. Provali su cinquanta domande del tuo corpus prima di prendere una decisione.
È possibile usare nomic-embed-text o mxbai-embed-large in francese?+
Le loro schede Hugging Face riportano l'inglese come lingua e i due modelli non compaiono nello studio MTEB-French. Funzionano tecnicamente su testi in francese, ma nulla ne garantisce la qualità. In Ollama, nomic-embed-text offre solo 2.048 token di contesto, contro gli 8.192 annunciati da Nomic. Tra i due, nomic offre più contesto (2.048 token in Ollama contro 512); mxbai richiede un prefisso solo per le query. Preferisci BGE-M3.
Esiste un modello bge-m4?+
Il repository ufficiale FlagEmbedding non menziona alcun bge-m4. Il modello multilingue della famiglia si chiama BGE-M3, e M3 indica tre caratteristiche: multifunzionalità (dense, sparse, multi-vettore), multilinguismo (più di 100 lingue) e multigranularità (fino a 8.192 token). Se un sito propone un bge-m4, verificane l'origine prima di scaricarlo.
È necessario reindicizzare quando si cambia il modello di embedding?+
Sì, completamente. I vettori di due modelli appartengono a spazi diversi e spesso non hanno nemmeno la stessa dimensione. Crea una nuova collezione, ricodifica tutti i chunk con il nuovo modello e il suo schema di prefissi, misura il recall, poi passa alla nuova collezione. Non mescolare mai due modelli nella stessa collezione.
Un modello di embedding multimodale sostituisce un modello testuale?+
No, a meno che il contenuto non sia visivo. Nelle tabelle di Qwen, Qwen3-VL-Embedding-2B (63,87) rimane sotto Qwen3-Embedding-0.6B (64,33) sul solo testo. Per i PDF testuali, convertili in testo e mantieni un embedding testuale. Il multimodale serve per schemi, screenshot e slide; attenzione, jina-clip-v2 è non commerciale.
Serve un embedding su misura per l'azienda?+
Raramente all'inizio. Un modello aperto generico, un chunking curato, una ricerca ibrida e un reranker risolvono la maggior parte dei casi. Il fine-tuning si giustifica quando il recall rimane bloccato a causa del lessico di settore e disponi di diverse migliaia di coppie domanda-passaggio, con una reindicizzazione completa successiva.
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.