94 lines
3.6 KiB
Markdown
94 lines
3.6 KiB
Markdown
Ecco una proposta di `README.md` strutturata secondo il tuo approccio **Spec-Driven** e orientata alla gestione professionale di un'infrastruttura LLM su **Linux ROCm**.
|
|
|
|
---
|
|
|
|
# Ollama Modelfiles - Sacchi Professional Suite
|
|
|
|
Repository di configurazione per la scuderia di modelli LLM ospitata sul server `llm` (192.168.254.115). La suite è progettata per interagire con **Claude Code Router (CCR)**, bilanciando potenza di calcolo (APU Radeon 780M) e ampiezza di contesto.
|
|
|
|
## 🧠 Filosofia di Progetto
|
|
|
|
Tutti i modelli sono configurati seguendo rigorosamente le **3 Regole di Sacchi**:
|
|
1. **Safety First**: Parametri di sistema ottimizzati per prevenire crash del driver ROCm.
|
|
2. **Little Often**: Modelli piccoli (Gemma 270M/1B) per task rapidi e frequenti.
|
|
3. **Double Check**: Validazione delle specifiche e del codice tramite modelli a largo contesto.
|
|
|
|
### Standard Implementati
|
|
* **Approccio Spec-Driven**: Definizione delle specifiche prima della generazione di codice.
|
|
* **Test-Driven Development (TDD)**: Priorità alla scrittura dei test.
|
|
* **Git Flow**: Messaggi in standard *Conventional Commits*.
|
|
* **Documentation**: Changelog mantenuti secondo lo standard *Common Changelog*.
|
|
|
|
---
|
|
|
|
## 🏗️ Struttura della Scuderia
|
|
|
|
| Modello | Ruolo | Context | File Base |
|
|
| :--- | :--- | :--- | :--- |
|
|
| **Nemotron Cascade 2** | Deep Thinking / Reasoning | 256k | `Modelfile-Nemotron-256k` |
|
|
| **GLM-4.7 Flash** | Long Context Analysis | 198k | `Modelfile-GLM-198k` |
|
|
| **Gemma 3 4B** | Full Stack Coding / Vision | 128k | `Modelfile-Gemma3-4b-128k` |
|
|
| **Gemma 3n e4b** | Main Coder (Balanced) | 32k | `Modelfile-Gemma3n-e4b-32k` |
|
|
| **Gemma 3n e2b** | Fast Coding / Debugging | 32k | `Modelfile-Gemma3n-e2b-32k` |
|
|
| **Gemma 3 1B** | Automazione / Scripting | 32k | `Modelfile-Gemma3-1B-32k` |
|
|
| **Gemma 3 270M** | Utility / Commit Generator | 32k | `Modelfile-Gemma3-270M-32k` |
|
|
| **FunctionGemma** | Tool Calling / Utility | 32k | `Modelfile-Gemma-Utility` |
|
|
|
|
---
|
|
|
|
## 📂 Organizzazione File
|
|
|
|
Ogni directory segue lo standard a due file per separare la logica di esecuzione dalla "persona" del modello:
|
|
* `Modelfile-*`: Contiene il riferimento `FROM` e i `PARAMETER` tecnici (context, temperature, gpu layers).
|
|
* `Modelfile-*.prompt`: Contiene il `SYSTEM PROMPT` specifico con le direttive Sacchi/Spec-Driven.
|
|
|
|
---
|
|
|
|
## 🚀 Setup & Installazione
|
|
|
|
### 1. Requisiti di Sistema (Ollama + ROCm)
|
|
Per garantire la stabilità sulla **Radeon 780M**, assicurarsi che l'override di sistema sia attivo in `/etc/systemd/system/ollama.service.d/override.conf`:
|
|
|
|
```ini
|
|
[Service]
|
|
Environment="HSA_OVERRIDE_GFX_VERSION=11.0.0"
|
|
Environment="HSA_ENABLE_SDMA=0"
|
|
Environment="OLLAMA_HOST=0.0.0.0"
|
|
```
|
|
|
|
### 2. Creazione dei Modelli
|
|
Per registrare un modello, combinare il file di configurazione con il relativo prompt di sistema:
|
|
|
|
```bash
|
|
# Esempio per Gemma 3 4B
|
|
cd gemma3:4b
|
|
ollama create gemma3-128k -f Modelfile-Gemma3-4b-128k
|
|
# Nota: Il comando aggiungerà il system prompt definito nel file .prompt se concatenato
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ Utilizzo con Claude Code Router (CCR)
|
|
|
|
Puntare il router sulla VM `devs` all'istanza remota:
|
|
|
|
```json
|
|
"Providers": [
|
|
{
|
|
"name": "ollama-remote",
|
|
"api_base_url": "http://192.168.254.115:11434/v1/chat/completions",
|
|
"api_key": "ollama",
|
|
"models": ["nemotron-pro-256k", "gemma3-128k", "gemma3-utility-32k"]
|
|
}
|
|
]
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Manutenzione
|
|
* **Logs**: Monitorare `journalctl -u ollama -f` per eventuali errori MES o timeout GPU.
|
|
* **Updates**: Verificare periodicamente le nuove versioni dei modelli base tramite `ollama pull`.
|
|
|
|
---
|
|
*Creato da Luca Sacchi - Approccio Sistemistico alla Generazione AI.*
|