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:
+33
-54
@@ -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>
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user