diff --git a/step-7/README.md b/step-7/README.md index 2ebd3fd..c5a5b72 100644 --- a/step-7/README.md +++ b/step-7/README.md @@ -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 ```