I migliori modelli di embedding FR
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.
#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 cinque criteri che davvero distinguono i modelli
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.
| Modello | Dimensioni / contesto | Licenza | Dimensione del modello | Cosa dicono le fonti sul francese |
|---|---|---|---|---|
| BGE-M3 (BAAI) | 1 024 / 8 192 | MIT | 1,2 GB (Ollama) | Retrieval su MTEB-French: 0,65. Embedding densi, sparsi e multivettore. Punto di partenza consigliato. |
| Qwen3-Embedding 0,6B / 4B / 8B | 1 024 / 2 560 / 4 096 ; 32 000 | Apache 2.0 | 639 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 048 | Gemma | 622 MB (Ollama) | Più di 100 lingue. MTEB multilingue v2: 61,15 secondo Google. |
| multilingual-e5-large | 1 024 / 512 | MIT | 2,24 GB (float32) | Retrieval MTEB-French 0,59. Prefissi obbligatori. |
| Solon-embeddings-large-0.1 | 1 024 / 512 | MIT | 2,24 GB (float32) | Modello francese pubblicato da Ordalie Technologies. Retrieval MTEB-French 0,63. |
| Granite Embedding 311M Multilingual R2 (IBM) | 768 / 32 768 | Apache 2.0 | 311 M parametri | Il 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.5 | 768 / 8 192 (2 048 con Ollama) | Apache 2.0 | 274 MB (Ollama) | Scheda etichettata come inglese. Da riservare ai corpus in inglese. |
| mxbai-embed-large-v1 | contesto 512 | Apache 2.0 | 670 MB (Ollama) | Scheda etichettata come inglese. Da riservare ai corpus in inglese. |
| all-MiniLM-L12-v2 | 384 | Apache 2.0 | 33 M parametri | Retrieval 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.
| Modello | Recupero medio | Diritto (BSARD) | Contratto collettivo Syntec | Alloprof |
|---|---|---|---|---|
| text-embedding-3-large (API OpenAI) | 0,73 | 0,73 | 0,87 | 0,60 |
| mistral-embed (API Mistral) | 0,68 | 0,68 | 0,79 | 0,57 |
| BGE-M3 | 0,65 | 0,60 | 0,85 | 0,49 |
| Solon-embeddings-large-0.1 | 0,63 | 0,58 | 0,85 | 0,47 |
| multilingual-e5-large | 0,59 | 0,59 | 0,81 | 0,38 |
| multilingual-e5-small | 0,52 | 0,52 | 0,76 | 0,27 |
| paraphrase-multilingual-MiniLM-L12-v2 | 0,44 | 0,38 | 0,66 | 0,27 |
| all-MiniLM-L12-v2 | 0,43 | 0,34 | 0,61 | 0,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.
#Quale modello per quale caso: tabella di decisione
| La tua situazione | Modello da testare per primo | Perché | Aspetto da tenere presente |
|---|---|---|---|
| Corpus francese o francese + inglese, computer di discreta potenza | BGE-M3 | Punteggio di retrieval in francese pari a 0,65, al livello dei migliori modelli aperti dello studio | 1,2 GB in Ollama; nessun prefisso |
| Giuridico, amministrativo, risorse umane | BGE-M3, poi Solon per confronto | BGE-M3 eguaglia o supera Solon sui tre dataset in francese dello studio | Un modello senza un set di test giuridici interno resta una scommessa |
| Macchina poco potente o solo CPU | EmbeddingGemma 300M, o multilingual-e5-small | 622 MB in Ollama; progettato da Google per computer portatili e dispositivi mobili | Contesto di 2.048 token: chunk corti |
| Scheda grafica disponibile, qualità massima | Qwen3-Embedding-4B o 8B | 32.000 token, dimensioni regolabili, più di 100 lingue | 2.560 e 4.096 dimensioni: archiviazione e limiti degli indici |
| Chunk lunghi, documenti strutturati | BGE-M3, Qwen3-Embedding o Granite R2 | Da 8.192 a 32.768 token di contesto | Un chunk molto lungo diluisce il senso |
| Uso commerciale, audit della licenza | BGE-M3, multilingual-e5-large, Solon, Qwen3-Embedding, Granite R2 | MIT o Apache 2.0 | Rileggere 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.
| Opzione | Quando sceglierla | Limiti |
|---|---|---|
| Modello aperto generico locale (BGE-M3, Qwen3-Embedding) | Punto di partenza predefinito; i testi rimangono sulla tua rete; licenza MIT o Apache | Lessico professionale non appreso; da valutare sui tuoi documenti |
| Fine-tuning di un modello aperto | Recall che non migliora nonostante la ricerca ibrida e il reranker; diverse migliaia di coppie domanda-brano | Corpus 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 2024 | I testi escono dalla tua rete; il modello può cambiare presso il fornitore; costo ricorrente |
#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).
| Modello | Input | Licenza | Da sapere |
|---|---|---|---|
| Qwen3-VL-Embedding 2B / 8B | Testo, immagini, schermate, video | Apache 2.0 | 32.000 token; 2.048 e 4.096 dimensioni; dimensioni regolabili |
| jina-clip-v2 | Testo e immagini; 94 lingue | CC BY-NC 4.0 | Non commerciale: da escludere per un prodotto o servizio a pagamento senza accordo dell'editore |
| ColPali v1.3 | Pagine di documenti in formato immagine, più vettori | MIT (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.
| Modello | Prima della domanda | Prima del documento |
|---|---|---|
| BGE-M3 | Niente | Niente |
| multilingual-e5-large | query: | passage: (obbligatorio, anche in francese) |
| Solon-embeddings-large-0.1 | query : | Niente |
| nomic-embed-text v1.5 | search_query: | search_document: |
| mxbai-embed-large-v1 | Rappresenta questa frase per cercare passaggi rilevanti: | Niente |
| Qwen3-Embedding | Instruct: {compito in una frase}, nuova riga, Query: {domanda} | Niente |
| EmbeddingGemma | task: 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:
| Dimensioni | Esempio di modello | Archiviazione |
|---|---|---|
| 256 | EmbeddingGemma o Qwen3 ridotti (Matryoshka) | 1,0 GB |
| 384 | all-MiniLM-L12-v2 | 1,5 GB |
| 768 | EmbeddingGemma, Granite R2, nomic | 3,1 GB |
| 1 024 | BGE-M3, multilingual-e5-large, Qwen3-0.6B | 4,1 GB |
| 2 560 | Qwen3-Embedding-4B | 10,2 GB |
| 4 096 | Qwen3-Embedding-8B | 16,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
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.
- 01Creare un set di test realeRaccogli 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.
- 02Codificare con ogni modello candidatoCodifica 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.
- 03Misurare il recall@5Per ogni domanda, verifica se il chunk corretto compare tra i primi cinque risultati. Lo script di seguito effettua questo calcolo.
- 04Decidere con un criterio di costoMantieni 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: gli embedding in locale
- Strategie di chunking: la dimensione dei chunk rispetto al contesto del modello
- Ricerca ibrida BM25 + vettoriale
- Aggiungere un reranker prima di effettuare il fine-tuning
- pgvector: limiti dimensionali e indici
- Ragas: valutare il proprio RAG con i numeri
- Fonte: scheda ufficiale di BGE-M3 (BAAI)
- Fonte: MTEB-French, studio di Ciancone et al. (2024)
- Fonte: documentazione degli embedding di Ollama
- Fonte: scheda di Qwen3-Embedding
- Fonte: scheda EmbeddingGemma (Google)
Qual è il miglior modello di embedding per il francese?+
È possibile usare nomic-embed-text o mxbai-embed-large in francese?+
Esiste un modello bge-m4?+
È necessario reindicizzare quando si cambia il modello di embedding?+
Un modello di embedding multimodale sostituisce un modello testuale?+
Serve un embedding su misura per l'azienda?+
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.