Modello generalista qwen3:8b come motore quotidiano su CachyOS—
qwen3:8b sta caricato in memoria sul mio laptop personale per quasi tutta la giornata, e si vede. Lo interpello quando voglio una risposta rapida su qualcosa che non vale la pena mandare a un servizio esterno: una bozza di script bash da rifinire, la spiegazione di un parametro oscuro di un tool, un riassunto di un log lungo che ho copincollato dentro la chat. La 8B in quantizzazione Q4_K_M sta dentro i 6 GB di VRAM, gira in modo confortevole anche senza una scheda di fascia alta, e su CachyOS sfrutto un kernel pacchettizzato in modo aggressivo per latenza bassa che si fa sentire nelle risposte.
Il modello è rilasciato da Alibaba con licenza Apache 2.0, quindi nessun vincolo d’uso anche per progetti professionali. Il laptop è una macchina Intel di qualche anno fa, distribuzione rolling Arch-based, swappiness ridotto a 10, ZRAM attivo. Ollama gira come servizio, parte da solo all’avvio e resta in ascolto su 127.0.0.1. Tengo il modello caricato in VRAM per le prime sessioni della giornata, e quando il laptop entra in idle Ollama lo scarica da solo, liberando memoria per il resto.
I parametri di partenza: 8B di parametri, contesto nativo 32k che spingo a 12k effettivi via Modelfile per i task di sintesi, quantizzazione Q4_K_M predefinita. Knowledge cutoff metà 2024, abbastanza recente per quasi tutto quello che mi capita.
Setup base con Ollama
Su CachyOS Ollama è già nei repository, si installa con pacman in modo pulito senza dover ricorrere allo script ufficiale.
sudo pacman -S ollama
sudo systemctl enable --now ollama
ollama pull qwen3:8b
ollama run qwen3:8b
Per come lo uso, il default funziona bene. Quando devo lavorare su file di testo lunghi alzo num_ctx con un Modelfile derivato partendo dal modello base.
ollama show qwen3:8b --modelfile > /tmp/qwen3.Modelfile
Aggiungo PARAMETER num_ctx 12288 al file e creo la variante con ollama create qwen3-long -f /tmp/qwen3.Modelfile. Tengo la variante per i task di sintesi sui log, la base per tutto il resto della giornata, in modo da non mangiare VRAM senza ragione.
Setup avanzato con opencode
Quando il task supera la singola domanda e voglio dare al modello accesso a una cartella di file, passo a opencode. La TUI agentica monta la working directory, mi permette di passare file in contesto, e gestisce sessioni multi-step senza che debba reincollare ogni volta lo stesso pezzo di codice. La configurazione punta a Ollama in locale via endpoint OpenAI-compatible.
{
"provider": {
"ollama-local": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"apiKey": "ollama",
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3:8b": { "name": "Qwen3 8B" }
}
}
}
}
Mi sposto nella cartella di lavoro e apro la TUI.
opencode . --model ollama-local/qwen3:8b
Un esempio di sessione reale
Ieri sera alle 22:30 stavo finendo uno script di backup per una cartella di documenti che cambia continuamente, e mi serviva aggiungere un piccolo blocco di codice che generasse un report di differenza tra l’ultimo backup completato e quello in corso, da spedire come riga di log strutturata. Non avevo voglia di scriverlo da zero, e nemmeno di pensarci troppo. Ho aperto opencode nella cartella dello script, ho dato in contesto il file principale e ho chiesto a qwen3:8b di proporre una funzione bash che producesse l’elenco dei file aggiunti, modificati e rimossi rispetto a un manifest precedente, in formato leggibile da una pipeline rsyslog.
La prima versione che ha proposto usava comm su due liste ordinate generate da find, con una piccola routine per estrarre il mtime e confrontarlo con quello del manifest. Era pulita, ma faceva quattro letture del filesystem invece di due. Gli ho chiesto di farla in un solo passaggio salvando le tuple path:mtime:size in due array associativi e confrontando le chiavi. La seconda versione era esattamente quello che mi serviva, con il dettaglio in più che ha aggiunto da solo: un controllo che il manifest precedente esistesse, e un fallback al backup completo come prima esecuzione. Ho integrato lo script, l’ho testato sulla cartella reale, e in mezz’ora ero a letto.
Cosa fa bene
Sui task di tutti i giorni si comporta sorprendentemente bene per un modello da 8B. Le risposte su bash, Python di livello base, configurazione di servizi comuni, lettura di log sono solide. Riassume bene testi lunghi se gli si dà il contesto giusto. È rapido a partire e rapido a rispondere, e questo lo rende perfetto come motore quotidiano che non interrompe il flusso di lavoro.
Cosa fa meno bene
Su codice complesso o pattern di concorrenza inventa cose plausibili ma sbagliate, e va sempre verificato. Sul reasoning esplicito su problemi sfumati è inferiore a un modello di reasoning dedicato come DeepSeek-R1. Su prompt molto lunghi (oltre 10k token) la qualità delle risposte cala, e conviene segmentare il task. La sua conoscenza di librerie e tool molto recenti è incompleta, come per quasi tutti i modelli con cutoff a metà 2024.
Privacy: tutto resta sul mio host
qwen3:8b gira interamente sul mio laptop: nessun provider terzo, nessun upload, nessuna telemetria di default. Ollama si lega su 127.0.0.1:11434 e non espone nulla all’esterno. I log restano in ~/.ollama/logs/ e li elimino quando voglio con un rm, e non ci sono policy esterne da rileggere ogni volta che cambia qualcosa. Rispetto ai servizi cloud, dove ogni domanda passa per server di terzi con retention variabile (e in qualche caso riuso per training se non si fa opt-out esplicito), qui i prompt e i frammenti di log che gli incollo non lasciano mai la macchina. La licenza Apache 2.0 di Qwen 3 mi lascia libero di usarlo come voglio, anche su lavoro a pagamento.
In pratica
qwen3:8b è il mio motore quotidiano sul laptop, quello che apro decine di volte al giorno per task brevi che non richiedono né reasoning esplicito né code review approfondita. Per ragionamento step-by-step su problemi tosti passo a DeepSeek-R1 7b sul server, per code review serie sul codice del lavoro mi sposto su Qwen2.5-Coder 14B, per risposte istantanee sul Mac Mini tengo Gemma3 4B. Avere modelli con vocazioni diverse a portata di SSH cambia parecchio il modo in cui distribuisco il carico cognitivo durante la giornata.
Immagine generata con Cloudflare Workers AI / FLUX.
Articolo originale su rpi.temporiti.net
Commenti
Caricamento commenti...
Lascia un commento