69 lines
2.7 KiB
Markdown
69 lines
2.7 KiB
Markdown
# llamacpp-qwen3.5-0.8b
|
|
|
|
Un microservizio Docker standalone basato su `llama.cpp` per eseguire il modello Qwen 3.5 0.8B su GPU AMD (ottimizzato per architettura RDNA3 / gfx1100).
|
|
|
|
Fornisce un'API HTTP nativa, compatibile al 100% con le specifiche OpenAI. Ideale per l'integrazione diretta con n8n e script Python, mantenendo un'architettura a microservizi pulita e priva di wrapper intermedi.
|
|
|
|
## Prerequisiti
|
|
|
|
- Docker e Docker Compose installati.
|
|
- GPU AMD con driver ROCm installati e funzionanti sul sistema host.
|
|
- Accesso ai device `/dev/kfd` e `/dev/dri`.
|
|
|
|
## Setup (Little Often)
|
|
|
|
1. **Prepara l'ambiente:**
|
|
Clona il repository e crea la directory dedicata ai modelli.
|
|
```bash
|
|
mkdir models
|
|
```
|
|
|
|
2. **Scarica il modello (formato GGUF):**
|
|
Scarica i pesi quantizzati di Qwen 3.5 0.8B all'interno della cartella `models`. Ad esempio, per la versione Q8_0:
|
|
```bash
|
|
wget [https://huggingface.co/Qwen/Qwen1.5-0.8B-Chat-GGUF/resolve/main/qwen1_5-0_8b-chat-q8_0.gguf](https://huggingface.co/Qwen/Qwen1.5-0.8B-Chat-GGUF/resolve/main/qwen1_5-0_8b-chat-q8_0.gguf) -P ./models/
|
|
```
|
|
*Attenzione:* Se scarichi una quantizzazione diversa, aggiorna il nome del file all'interno del parametro `command` nel `docker-compose.yml`.
|
|
|
|
3. **Build e Avvio:**
|
|
Lancia il container in background. La prima esecuzione compilerà `llama.cpp` dai sorgenti ottimizzandolo per la tua GPU.
|
|
```bash
|
|
docker compose up --build -d
|
|
```
|
|
|
|
## Test e Validazione (Double Check)
|
|
|
|
Verifica che il server sia in ascolto e risponda correttamente utilizzando l'endpoint compatibile OpenAI:
|
|
|
|
```bash
|
|
curl http://localhost:8000/v1/chat/completions \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"model": "qwen",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "Sei un assistente AI utile e conciso."
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Quali sono i comandi base di Git?"
|
|
}
|
|
]
|
|
}'
|
|
```
|
|
|
|
## Integrazione con n8n
|
|
|
|
Per collegare questo servizio a n8n:
|
|
1. Aggiungi un nodo **OpenAI** nel tuo workflow.
|
|
2. Nelle impostazioni del nodo (Credentials), imposta l'URL di base dell'API in modo che punti a questo container:
|
|
`http://<IP_DEL_SERVER_DOCKER>:8000/v1`
|
|
3. Puoi inserire una stringa fittizia nel campo API Key (es. `sk-xxxx`), poiché il server locale non richiede autenticazione.
|
|
|
|
## Architettura e Sicurezza (Safety First)
|
|
|
|
- **Isolamento:** Il container esegue esclusivamente il binario `llama-server`.
|
|
- **Compatibilità RDNA3:** Il `Dockerfile` inietta `HSA_OVERRIDE_GFX_VERSION="11.0.0"` e `AMDGPU_TARGETS="gfx1100"` per forzare la compatibilità della iGPU 780M/RDNA3 con le librerie ROCm.
|
|
- **Hardware Mapping:** Assicurati che l'utente che esegue Docker abbia i permessi per accedere ai device video (gruppi `render` e `video`).
|