docs(step-7): aggiorna guida modelli embedding e LLM

Sostituisce la tabella embedding con valutazione completa dei modelli
disponibili su Ollama, con raccomandazione esplicita per testi italiani.
Riduce la sezione LLM alla sola famiglia Qwen3.5 con nota di compatibilità.
Semplifica la sezione chromadb
This commit is contained in:
2026-04-14 15:57:40 +02:00
parent d50f7f64a9
commit f27ebfa101
+33 -54
View File
@@ -48,42 +48,48 @@ sudo groupdel ollama
### Modello di embedding ### Modello di embedding
Per testo in italiano usa **`bge-m3`** — addestrato su 100+ lingue, gestisce l'italiano meglio dei modelli English-first: Per testi in italiano serve un modello multilingue — i modelli English-first producono embeddings di qualità inferiore su lingue diverse dall'inglese, con retrieval meno preciso.
Prima scelta consigliata:
```bash ```bash
ollama pull bge-m3 ollama pull qwen3-embedding:0.6b
``` ```
Alternativa leggera (principalmente inglese, ~274 MB): Stessa famiglia del LLM in uso (`qwen3.5`), multilingue, recente, gira comodamente in CPU.
```bash | Modello | Dim | Dimensione | Lingue | Consigliato |
ollama pull nomic-embed-text |---|---|---|---|---|
``` | `qwen3-embedding:0.6b` | 1024 | ~522 MB | multilingue | ✅ prima scelta |
| `nomic-embed-text-v2-moe` | 768 | ~523 MB | multilingue | ✅ seconda scelta |
| `bge-m3` | 1024 | ~1.2 GB | 100+ lingue incl. IT | ✅ terza scelta |
| `nomic-embed-text` | 768 | ~274 MB | principalmente EN | ⚠️ default corrente |
| `mxbai-embed-large` | 1024 | ~670 MB | principalmente EN | ❌ |
| `paraphrase-multilingual` | 768 | ~278 MB | multilingue | ❌ obsoleto |
| `all-minilm` | 384 | ~46 MB | principalmente EN | ❌ troppo piccolo |
| Modello | Dim | Dimensione | Lingue | Se cambi modello rispetto a quello usato in step-8, devi rieseguire la vettorizzazione con `--force` e aggiornare `EMBED_MODEL` in `step-9/config.py`.
|---|---|---|---|
| `bge-m3` | 1024 | ~1.2 GB | 100+ lingue incl. IT |
| `nomic-embed-text` | 768 | ~274 MB | principalmente EN |
| `mxbai-embed-large` | 1024 | ~670 MB | principalmente EN |
| `all-minilm` | 384 | ~46 MB | principalmente EN |
### Modello LLM ### Modello LLM
Scegli in base alla RAM disponibile: Per RAG su testi italiani servono: buon instruction following, supporto multilingue e context window ampia (i prompt RAG includono più chunk).
Prima scelta consigliata per 8 GB RAM:
```bash ```bash
ollama pull qwen3.5:4b # consigliato per 8 GB RAM ollama pull qwen3.5:4b
``` ```
| Modello | RAM consigliata | Note | Il progetto è pensato per la famiglia **Qwen3.5** — stessa famiglia dell'embedding consigliato (`qwen3-embedding`), context window 256K, ottimo italiano. Altri modelli sono compatibili ma non testati.
|---|---|---|
| `qwen3:8b` | ≥ 10 GB | ottima qualità, troppo stretto su 8 GB |
| `qwen3.5:4b` | ≥ 5 GB | buon bilanciamento, **consigliato per 8 GB** |
| `qwen3:4b` | ≥ 5 GB | alternativa stabile |
| `phi4-mini` | ≥ 4 GB | ottimo per instruction following |
| `qwen3:1.7b` | ≥ 3 GB | leggero, qualità base |
Se usi un modello diverso da `qwen3.5:4b`, aggiorna la costante `LLM_MODEL` in `step-9/rag.py`. | Modello | RAM | Note |
|---|---|---|
| `qwen3.5:0.8b` | ≥ 1 GB | minimo assoluto |
| `qwen3.5:2b` | ≥ 3 GB | leggero |
| `qwen3.5:4b` | ≥ 5 GB | **consigliato per 8 GB** |
| `qwen3.5:9b` | ≥ 8 GB | lento su CPU, meglio con GPU |
Se usi un modello diverso da `qwen3.5:4b`, aggiorna `OLLAMA_MODEL` in `step-9/config.py`.
### Disinstalla un modello ### Disinstalla un modello
@@ -100,42 +106,15 @@ ollama list
--- ---
## 3. Installa chromadb nel venv ## 3. Installa le dipendenze nel venv
Assicurati di avere `chromadb` installato nel `.venv`:
```bash ```bash
source .venv/bin/activate source .venv/bin/activate
pip install chromadb pip install -r requirements.txt
``` ```
Aggiorna anche `requirements.txt`:
```bash
pip freeze | grep chromadb >> requirements.txt
```
### Disinstalla chromadb
```bash
source .venv/bin/activate
# Rimuovi il pacchetto e le dipendenze non più necessarie
pip uninstall chromadb -y
pip autoremove 2>/dev/null || pip uninstall $(pip-autoremove chromadb -l 2>/dev/null) -y 2>/dev/null
# Rimuovi i dati del vector store (opzionale — occupa spazio su disco)
rm -rf chroma_db/
```
> `pip autoremove` richiede il pacchetto `pip-autoremove` (`pip install pip-autoremove`).
> In alternativa, elimina e ricrea il venv per una pulizia completa:
> ```bash
> deactivate
> rm -rf .venv
> python -m venv .venv
> source .venv/bin/activate
> pip install -r requirements.txt
> ```
--- ---
## 4. Verifica tutto ## 4. Verifica tutto
@@ -164,5 +143,5 @@ Output atteso se tutto è a posto:
## Prossimo step ## Prossimo step
```bash ```bash
python step-8/ingest.py --stem nietzsche python step-8/ingest.py --stem <nome>
``` ```