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
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
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
ollama pull nomic-embed-text
```
| Modello | Dim | Dimensione | Lingue | Consigliato |
|---|---|---|---|---|
| `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 |
|---|---|---|---|
| `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 |
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`.
### 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
ollama pull qwen3.5:4b # consigliato per 8 GB RAM
ollama pull qwen3.5:4b
```
| Modello | RAM consigliata | Note |
|---|---|---|
| `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 |
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.
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
@@ -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
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
@@ -164,5 +143,5 @@ Output atteso se tutto è a posto:
## Prossimo step
```bash
python step-8/ingest.py --stem nietzsche
python step-8/ingest.py --stem <nome>
```