chore: cambia modello embedding da nomic-embed-text a qwen3-embedding:0.6b
Migliore supporto multilingue e coerenza semantica con qwen3.5:4b. Aggiornati config.py, README.md, ingestion/README.md, ollama/README.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -64,7 +64,7 @@ Il file usato dalla pipeline è **`<stem>.md`** nella cartella `auto/`.
|
|||||||
Scarica e avvia [Ollama](https://ollama.com), poi installa i modelli:
|
Scarica e avvia [Ollama](https://ollama.com), poi installa i modelli:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ollama pull nomic-embed-text # embedding (obbligatorio)
|
ollama pull qwen3-embedding:0.6b # embedding (obbligatorio)
|
||||||
ollama pull qwen3.5:4b # generazione LLM (o altro modello)
|
ollama pull qwen3.5:4b # generazione LLM (o altro modello)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -235,7 +235,7 @@ Output in `chunks/<stem>/`:
|
|||||||
| Parametro | Default | Descrizione |
|
| Parametro | Default | Descrizione |
|
||||||
|-----------|---------|-------------|
|
|-----------|---------|-------------|
|
||||||
| `OLLAMA_MODEL` | `qwen3.5:4b` | Modello LLM per la generazione |
|
| `OLLAMA_MODEL` | `qwen3.5:4b` | Modello LLM per la generazione |
|
||||||
| `EMBED_MODEL` | `nomic-embed-text` | Modello embedding |
|
| `EMBED_MODEL` | `qwen3-embedding:0.6b` | Modello embedding |
|
||||||
| `EMBED_MAX_CHARS` | 6000 | Caratteri massimi inviati al modello embedding |
|
| `EMBED_MAX_CHARS` | 6000 | Caratteri massimi inviati al modello embedding |
|
||||||
| `TOP_K` | 6 | Chunk recuperati per domanda |
|
| `TOP_K` | 6 | Chunk recuperati per domanda |
|
||||||
| `TEMPERATURE` | 0.2 | Creatività del modello (0 = deterministico) |
|
| `TEMPERATURE` | 0.2 | Creatività del modello (0 = deterministico) |
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ NO_THINK = True
|
|||||||
# Modello di embedding usato da Ollama.
|
# Modello di embedding usato da Ollama.
|
||||||
# Deve corrispondere al modello usato durante la vettorizzazione (ingest.py).
|
# Deve corrispondere al modello usato durante la vettorizzazione (ingest.py).
|
||||||
# Se cambi questo, devi rieseguire ingest.py con --force.
|
# Se cambi questo, devi rieseguire ingest.py con --force.
|
||||||
EMBED_MODEL = "nomic-embed-text"
|
EMBED_MODEL = "qwen3-embedding:0.6b"
|
||||||
|
|
||||||
# Caratteri massimi inviati al modello di embedding.
|
# Caratteri massimi inviati al modello di embedding.
|
||||||
# Il testo viene troncato SOLO per il vettore; il documento completo
|
# Il testo viene troncato SOLO per il vettore; il documento completo
|
||||||
# rimane in ChromaDB. nomic-embed-text: 8192 token ≈ 6000 char sicuri.
|
# rimane in ChromaDB. qwen3-embedding: 32768 token — 6000 char è un limite conservativo.
|
||||||
EMBED_MAX_CHARS: int = 6000
|
EMBED_MAX_CHARS: int = 6000
|
||||||
|
|
||||||
# ── Ollama ────────────────────────────────────────────────────────────────────
|
# ── Ollama ────────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
+4
-4
@@ -29,7 +29,7 @@ Il modello di embedding viene letto da **`config.py`**:
|
|||||||
|
|
||||||
```python
|
```python
|
||||||
# config.py
|
# config.py
|
||||||
EMBED_MODEL = "nomic-embed-text" # ← cambia qui
|
EMBED_MODEL = "qwen3-embedding:0.6b" # ← cambia qui
|
||||||
```
|
```
|
||||||
|
|
||||||
> Il modello scelto qui deve corrispondere a quello usato in rag.py.
|
> Il modello scelto qui deve corrispondere a quello usato in rag.py.
|
||||||
@@ -75,16 +75,16 @@ Il modello deve essere scaricato in Ollama prima di eseguire questo script
|
|||||||
### Modello di embedding
|
### Modello di embedding
|
||||||
|
|
||||||
**Usa un modello multilingue per testi italiani.**
|
**Usa un modello multilingue per testi italiani.**
|
||||||
I modelli English-first (`nomic-embed-text`, `mxbai-embed-large`, `all-minilm`)
|
I modelli English-first (`mxbai-embed-large`, `all-minilm`)
|
||||||
producono vettori di qualità inferiore su italiano, con retrieval meno preciso.
|
producono vettori di qualità inferiore su italiano, con retrieval meno preciso.
|
||||||
Prima scelta: `qwen3-embedding:0.6b`.
|
Prima scelta: `qwen3-embedding:0.6b` — stesso ecosistema di `qwen3.5:4b`, ottimo multilingue.
|
||||||
|
|
||||||
**Più dimensioni = retrieval più preciso, ma più spazio su disco.**
|
**Più dimensioni = retrieval più preciso, ma più spazio su disco.**
|
||||||
|
|
||||||
| Dimensioni | Modelli | Quando usarlo |
|
| Dimensioni | Modelli | Quando usarlo |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 1024 | `qwen3-embedding:0.6b`, `bge-m3` | documenti tecnici, testi lunghi |
|
| 1024 | `qwen3-embedding:0.6b`, `bge-m3` | documenti tecnici, testi lunghi |
|
||||||
| 768 | `nomic-embed-text-v2-moe` | buon compromesso |
|
| 768 | `nomic-embed-text` | leggero, parzialmente multilingue |
|
||||||
| 384 | `all-minilm` | solo per test rapidi |
|
| 384 | `all-minilm` | solo per test rapidi |
|
||||||
|
|
||||||
**Usa la stessa famiglia LLM + embedding quando possibile.**
|
**Usa la stessa famiglia LLM + embedding quando possibile.**
|
||||||
|
|||||||
+2
-3
@@ -53,9 +53,8 @@ ollama pull qwen3-embedding:0.6b
|
|||||||
|
|
||||||
Alternative supportate:
|
Alternative supportate:
|
||||||
|
|
||||||
- `nomic-embed-text-v2-moe`
|
- `bge-m3` — ottimo multilingue, 1024 dim
|
||||||
- `bge-m3`
|
- `nomic-embed-text` — più leggero, parzialmente multilingue
|
||||||
- `nomic-embed-text`
|
|
||||||
|
|
||||||
Se cambi embedding model rispetto a quello usato in ingestion, riesegui ingest con `--force` e aggiorna `EMBED_MODEL` in `config.py`.
|
Se cambi embedding model rispetto a quello usato in ingestion, riesegui ingest con `--force` e aggiorna `EMBED_MODEL` in `config.py`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user