Diferència entre revisions de la pàgina «Ollama: Models locals LLM»
m |
|||
| (Hi ha 9 revisions intermèdies del mateix usuari que no es mostren) | |||
| Línia 1: | Línia 1: | ||
| + | __TOC__ | ||
| + | =Instal·lació Ollama= | ||
| + | |||
| + | <pre> | ||
| + | curl -fsSL https://ollama.com/install.sh | sh | ||
| + | </pre> | ||
| + | <pre> | ||
| + | $ ollama -v | ||
| + | ollama version is 0.34.1 | ||
| + | </pre> | ||
| + | <pre> | ||
| + | $ systemctl status ollama | ||
| + | ● ollama.service - Ollama Service | ||
| + | Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled) | ||
| + | Active: active (running) since Tue 2026-09-15 23:31:14 CEST; 29s ago | ||
| + | Main PID: 7980 (ollama) | ||
| + | Tasks: 15 (limit: 34856) | ||
| + | Memory: 72.6M (peak: 3 | ||
| + | </pre> | ||
| + | |||
| + | |||
=Model QWen 3.5 27B (quantitzat)= | =Model QWen 3.5 27B (quantitzat)= | ||
Installar QWen 3.5 27B | Installar QWen 3.5 27B | ||
| Línia 14: | Línia 35: | ||
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de: | Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de: | ||
| − | * | + | *[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com] |
<pre> | <pre> | ||
Qwen3.5-27B-Q3_K_M.gguf Q3_K_M 14.82GB false Low quality. | Qwen3.5-27B-Q3_K_M.gguf Q3_K_M 14.82GB false Low quality. | ||
| Línia 29: | Línia 50: | ||
ollama list | ollama list | ||
ollama run qwen3.5:27b-q3 | ollama run qwen3.5:27b-q3 | ||
| + | </pre> | ||
| + | |||
| + | =Model Qwen3.5 9B= | ||
| + | |||
| + | És probablement el que més et recomanaria afegir. Qwen3.5 és multimodal i la versió 9B ocupa uns 6,6 GB, amb context de 256K. | ||
| + | |||
| + | Per tenir un model ràpid per al dia a dia, és molt més interessant que fer servir sempre el teu 27B. | ||
| + | |||
| + | <pre> | ||
| + | ollama pull qwen3.5:9b | ||
| + | ollama run qwen3.5:9b | ||
| + | </pre> | ||
| + | =Model Gemma 3 12B= | ||
| + | |||
| + | Aquest és especialment interessant perquè és multimodal: pot treballar amb text i imatges, té context de 128K i suporta més de 140 idiomes. La versió 12B ocupa uns 8,1 GB. | ||
| + | <pre> | ||
| + | ollama pull gemma3:12b | ||
| + | ollama run gemma3:12b | ||
| + | </pre> | ||
| + | Pot treballar amb imatges. Ho podem fer mitjançant la API de la següent manera: | ||
| + | |||
| + | <pre> | ||
| + | IMG=$(base64 -w 0 /home/joan/projectes/ratoli.jpeg) | ||
| + | |||
| + | curl http://localhost:11434/api/chat \ | ||
| + | -H "Content-Type: application/json" \ | ||
| + | -d "{ | ||
| + | \"model\": \"gemma3:12b\", | ||
| + | \"messages\": [ | ||
| + | { | ||
| + | \"role\": \"user\", | ||
| + | \"content\": \"Descriu detalladament aquesta imatge.\", | ||
| + | \"images\": [\"$IMG\"] | ||
| + | } | ||
| + | ], | ||
| + | \"stream\": false | ||
| + | }" | ||
| + | </pre> | ||
| + | Resposta: | ||
| + | <pre> | ||
| + | {"model":"gemma3:12b","created_at":"2026-09-18T08:21:25.044041898Z","message":{"role":"assistant","content":"Aquí teniu una descripció detallada de la imatge:\n\n**Descripció general:**\n\nLa imatge mostra un ratolí de pèls marrons, vist de costat, sobre un fons blanc. La il·luminació és clara i uniforme, destacant les seves característiques.\n\n**Detalls específics:**\n\n* **Animal:** El ratolí és de mida mitjana, amb una postura alerta. El seu pelatge és dens i de color marró grisenc, amb un to lleugerament més clar a la panxa.\n* **Cap:** La seva cara és rosada, amb un musell llarg i una punta de nas rosada. Té ulls petits, rodons i negres, amb una mica de brillantor a la llum. Les seves orelles són grans, triangulals i de color rosa pàlid. Les vibrisses són llargues i blanques, i es projecten cap endavant.\n* **Cos:** El cos és arrodonit i proporcional a la cap. Les potes davanteres són petites i amb urpes. La cua és fina i coberta de pelusa.\n* **Fons:** El fons és totalment blanc, sense text o elements addicionals. Això ajuda a que l'atenció se centri completament en el ratolí.\n\n**Estil i composició:**\n\nLa imatge és una fotografia de primer pla que permet apreciar els detalls de l'animal. La composició és simple i equilibrada, posant l'èmfasi en la naturalesa del ratolí."},"done":true,"done_reason":"stop","total_duration":10394341884,"load_duration":1237038,"prompt_eval_count":289,"prompt_eval_cached_count":0,"prompt_eval_duration":2987531000,"eval_count":344,"eval_duration":6779488000} | ||
| + | </pre> | ||
| + | Veiem que hem accedit a la API pel port 11434: | ||
| + | |||
| + | Sí. Aquesta és una de les coses més interessants d'Ollama: quan l'executes, actua també com un servidor HTTP local. Això vol dir que qualsevol programa que s'executi al teu ordinador pot parlar amb Ollama enviant peticions HTTP. | ||
| + | |||
| + | * http://localhost:11434 | ||
| + | |||
| + | vol dir essencialment: "Connecta't al servidor Ollama que està funcionant en aquest mateix ordinador." | ||
| + | |||
| + | =Model Mistral Small 3.2 24B= | ||
| + | |||
| + | Aquest és probablement el competidor més interessant del teu Qwen3.5 27B Q3. És un 24B Q4_K_M que ocupa aproximadament 15 GB, té context de 128K i és multimodal. Mistral destaca, a més, per instruction following i function calling. | ||
| + | |||
| + | <pre> | ||
| + | ollama pull mistral-small3.2 | ||
| + | </pre> | ||
| + | |||
| + | provo el model amb curl i amb script python: | ||
| + | |||
| + | <pre> | ||
| + | curl http://localhost:11434/api/chat \ | ||
| + | -H "Content-Type: application/json" \ | ||
| + | -d '{ | ||
| + | "model": "mistral-small3.2", | ||
| + | "messages": [ | ||
| + | { | ||
| + | "role": "user", | ||
| + | "content": "vull fer una petita narració en català (unes 100 paraules) que inclogui les paraules: atapeït, somicar i grapejar" | ||
| + | } | ||
| + | ], | ||
| + | "stream": false | ||
| + | }' | ||
| + | </pre> | ||
| + | resposta: | ||
| + | <pre> | ||
| + | {"model":"mistral-small3.2","created_at":"2026-09-18T08:27:18.102796986Z","message":{"role":"assistant","content":"Aquí tens una petita narració:\n\nEl petit en Joan tornava de l'escola atapeït de tasques i cansament. En entrar a casa, va veure el seu gos, Tolo, somicar a la vora de la finestra. \"Tolo, no et grapegis tant!\", li va dir rient. El gos va obrir un ull i va movir la cua, com si entengués cada paraula. Joan va deixar la motxilla i va anar a la cuina per preparar un entrepà. Mentre menjava, Tolo va saltar al seu reguit i va començar a grapejar amb alegria. \"Estàs insuportable!\", va riure Joan, però en el fons li feia il·lusió tenir-lo al seu costat.\n\n(100 paraules)"},"done":true,"done_reason":"stop","total_duration":16327480542,"load_duration":5403826250,"prompt_eval_count":543,"prompt_eval_cached_count":0,"prompt_eval_duration":663015000,"eval_count":180,"eval_duration":10258082000} | ||
| + | </pre> | ||
| + | |||
| + | Ho posem en el script ''narracio.py'': | ||
| + | <pre> | ||
| + | import ollama | ||
| + | |||
| + | response = ollama.chat( | ||
| + | model='mistral-small3.2', | ||
| + | messages=[ | ||
| + | { | ||
| + | 'role': 'user', | ||
| + | 'content': ( | ||
| + | 'vull fer una petita narració en català ' | ||
| + | '(unes 100 paraules) que inclogui les paraules: ' | ||
| + | 'atapeït, somicar i grapejar' | ||
| + | ) | ||
| + | } | ||
| + | ] | ||
| + | ) | ||
| + | |||
| + | print(response['message']['content']) | ||
| + | </pre> | ||
| + | Per executar-ho: | ||
| + | <pre> | ||
| + | $ pip install ollama | ||
| + | error: externally-managed-environment | ||
| + | |||
| + | × This environment is externally managed | ||
| + | ╰─> To install Python packages system-wide, try apt install | ||
| + | python3-xyz, where xyz is the package you are trying to | ||
| + | install. | ||
| + | </pre> | ||
| + | Millor crear un venv | ||
| + | |||
| + | <pre> | ||
| + | mkdir ollama-mistral-small-python | ||
| + | cd ollama-mistral-small-python | ||
| + | python3 -m venv .venv | ||
| + | source .venv/bin/activate | ||
| + | pip install ollama | ||
| + | joe narracio.py | ||
| + | ... | ||
| + | python3 narracio.py | ||
| + | </pre> | ||
| + | resposta: | ||
| + | <pre> | ||
| + | Aquí tens una petita narració de 100 paraules: | ||
| + | |||
| + | --- | ||
| + | |||
| + | El petit poble de Montclar estava **atapeït** de turistes aquell estiu. En Marc, un noi de dotze anys, es **somicava** cada nit per escapar del soroll. Una vesprada, mentre **grapejava** per les velles carrerons, va trobar una porta secreta que portava a una gruta subterrània. Allà, va descobrir un antic rellotge de sorra que, segons la llegenda, podia aturar el temps. Amb curiositat, el va girar i, de sobte, tot es va quedar immòbil. Els turistes van quedar congelats, i el poble va recuperar la seva tranquil·litat. En Marc va aprendre que, a vegades, el millor és viure el present. | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | Si volem provar el model directament: | ||
| + | |||
| + | <pre> | ||
| + | $ ollama run mistral-small3.2 | ||
| + | </pre> | ||
| + | |||
| + | =Models instal·lats= | ||
| + | ara els models que tinc instal·lats són: | ||
| + | |||
| + | <pre> | ||
| + | $ ollama list | ||
| + | NAME ID SIZE MODIFIED | ||
| + | mistral-small3.2:latest 5a408ab55df5 15 GB 11 minutes ago | ||
| + | gemma3:12b f4031aab637d 8.1 GB 24 minutes ago | ||
| + | qwen3.5:9b 6488c96fa5fa 6.6 GB 28 minutes ago | ||
| + | qwen3.5:27b-q3 699f7cee9559 14 GB 40 hours ago | ||
| + | qwen3:8b 500a1f067a9f 5.2 GB 2 days ago | ||
</pre> | </pre> | ||
{{Autor}}, octubre 2026 | {{Autor}}, octubre 2026 | ||
Revisió de 17:58, 10 oct 2026
Contingut
Instal·lació Ollama
curl -fsSL https://ollama.com/install.sh | sh
$ ollama -v ollama version is 0.34.1
$ systemctl status ollama
● ollama.service - Ollama Service
Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled)
Active: active (running) since Tue 2026-09-15 23:31:14 CEST; 29s ago
Main PID: 7980 (ollama)
Tasks: 15 (limit: 34856)
Memory: 72.6M (peak: 3
Model QWen 3.5 27B (quantitzat)
Installar QWen 3.5 27B
Quantització: Q2_K ~10 GB ~11–13 GB Baixa 🟢 Bé Q3_K_M ~12.5 GB ~14–16+ GB Bona 🟢 Recomanable Q4_K_M ~15.5–16 GB ~17–19+ GB Molt bona 🟡 RAM + VRAM Q5/Q6 >18 GB >20 GB Millor 🔴 Massa gran
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:
Qwen3.5-27B-Q3_K_M.gguf Q3_K_M 14.82GB false Low quality.
aquest fitxer ocupa uns 15G
fitxer Modelfile:
FROM ./Qwen3.5-27B-Q3_K_M.gguf
ollama create qwen3.5:27b-q3 -f Modelfile ollama list ollama run qwen3.5:27b-q3
Model Qwen3.5 9B
És probablement el que més et recomanaria afegir. Qwen3.5 és multimodal i la versió 9B ocupa uns 6,6 GB, amb context de 256K.
Per tenir un model ràpid per al dia a dia, és molt més interessant que fer servir sempre el teu 27B.
ollama pull qwen3.5:9b ollama run qwen3.5:9b
Model Gemma 3 12B
Aquest és especialment interessant perquè és multimodal: pot treballar amb text i imatges, té context de 128K i suporta més de 140 idiomes. La versió 12B ocupa uns 8,1 GB.
ollama pull gemma3:12b ollama run gemma3:12b
Pot treballar amb imatges. Ho podem fer mitjançant la API de la següent manera:
IMG=$(base64 -w 0 /home/joan/projectes/ratoli.jpeg)
curl http://localhost:11434/api/chat \
-H "Content-Type: application/json" \
-d "{
\"model\": \"gemma3:12b\",
\"messages\": [
{
\"role\": \"user\",
\"content\": \"Descriu detalladament aquesta imatge.\",
\"images\": [\"$IMG\"]
}
],
\"stream\": false
}"
Resposta:
{"model":"gemma3:12b","created_at":"2026-09-18T08:21:25.044041898Z","message":{"role":"assistant","content":"Aquí teniu una descripció detallada de la imatge:\n\n**Descripció general:**\n\nLa imatge mostra un ratolí de pèls marrons, vist de costat, sobre un fons blanc. La il·luminació és clara i uniforme, destacant les seves característiques.\n\n**Detalls específics:**\n\n* **Animal:** El ratolí és de mida mitjana, amb una postura alerta. El seu pelatge és dens i de color marró grisenc, amb un to lleugerament més clar a la panxa.\n* **Cap:** La seva cara és rosada, amb un musell llarg i una punta de nas rosada. Té ulls petits, rodons i negres, amb una mica de brillantor a la llum. Les seves orelles són grans, triangulals i de color rosa pàlid. Les vibrisses són llargues i blanques, i es projecten cap endavant.\n* **Cos:** El cos és arrodonit i proporcional a la cap. Les potes davanteres són petites i amb urpes. La cua és fina i coberta de pelusa.\n* **Fons:** El fons és totalment blanc, sense text o elements addicionals. Això ajuda a que l'atenció se centri completament en el ratolí.\n\n**Estil i composició:**\n\nLa imatge és una fotografia de primer pla que permet apreciar els detalls de l'animal. La composició és simple i equilibrada, posant l'èmfasi en la naturalesa del ratolí."},"done":true,"done_reason":"stop","total_duration":10394341884,"load_duration":1237038,"prompt_eval_count":289,"prompt_eval_cached_count":0,"prompt_eval_duration":2987531000,"eval_count":344,"eval_duration":6779488000}
Veiem que hem accedit a la API pel port 11434:
Sí. Aquesta és una de les coses més interessants d'Ollama: quan l'executes, actua també com un servidor HTTP local. Això vol dir que qualsevol programa que s'executi al teu ordinador pot parlar amb Ollama enviant peticions HTTP.
vol dir essencialment: "Connecta't al servidor Ollama que està funcionant en aquest mateix ordinador."
Model Mistral Small 3.2 24B
Aquest és probablement el competidor més interessant del teu Qwen3.5 27B Q3. És un 24B Q4_K_M que ocupa aproximadament 15 GB, té context de 128K i és multimodal. Mistral destaca, a més, per instruction following i function calling.
ollama pull mistral-small3.2
provo el model amb curl i amb script python:
curl http://localhost:11434/api/chat \
-H "Content-Type: application/json" \
-d '{
"model": "mistral-small3.2",
"messages": [
{
"role": "user",
"content": "vull fer una petita narració en català (unes 100 paraules) que inclogui les paraules: atapeït, somicar i grapejar"
}
],
"stream": false
}'
resposta:
{"model":"mistral-small3.2","created_at":"2026-09-18T08:27:18.102796986Z","message":{"role":"assistant","content":"Aquí tens una petita narració:\n\nEl petit en Joan tornava de l'escola atapeït de tasques i cansament. En entrar a casa, va veure el seu gos, Tolo, somicar a la vora de la finestra. \"Tolo, no et grapegis tant!\", li va dir rient. El gos va obrir un ull i va movir la cua, com si entengués cada paraula. Joan va deixar la motxilla i va anar a la cuina per preparar un entrepà. Mentre menjava, Tolo va saltar al seu reguit i va començar a grapejar amb alegria. \"Estàs insuportable!\", va riure Joan, però en el fons li feia il·lusió tenir-lo al seu costat.\n\n(100 paraules)"},"done":true,"done_reason":"stop","total_duration":16327480542,"load_duration":5403826250,"prompt_eval_count":543,"prompt_eval_cached_count":0,"prompt_eval_duration":663015000,"eval_count":180,"eval_duration":10258082000}
Ho posem en el script narracio.py:
import ollama
response = ollama.chat(
model='mistral-small3.2',
messages=[
{
'role': 'user',
'content': (
'vull fer una petita narració en català '
'(unes 100 paraules) que inclogui les paraules: '
'atapeït, somicar i grapejar'
)
}
]
)
print(response['message']['content'])
Per executar-ho:
$ pip install ollama
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
Millor crear un venv
mkdir ollama-mistral-small-python cd ollama-mistral-small-python python3 -m venv .venv source .venv/bin/activate pip install ollama joe narracio.py ... python3 narracio.py
resposta:
Aquí tens una petita narració de 100 paraules: --- El petit poble de Montclar estava **atapeït** de turistes aquell estiu. En Marc, un noi de dotze anys, es **somicava** cada nit per escapar del soroll. Una vesprada, mentre **grapejava** per les velles carrerons, va trobar una porta secreta que portava a una gruta subterrània. Allà, va descobrir un antic rellotge de sorra que, segons la llegenda, podia aturar el temps. Amb curiositat, el va girar i, de sobte, tot es va quedar immòbil. Els turistes van quedar congelats, i el poble va recuperar la seva tranquil·litat. En Marc va aprendre que, a vegades, el millor és viure el present.
Si volem provar el model directament:
$ ollama run mistral-small3.2
Models instal·lats
ara els models que tinc instal·lats són:
$ ollama list NAME ID SIZE MODIFIED mistral-small3.2:latest 5a408ab55df5 15 GB 11 minutes ago gemma3:12b f4031aab637d 8.1 GB 24 minutes ago qwen3.5:9b 6488c96fa5fa 6.6 GB 28 minutes ago qwen3.5:27b-q3 699f7cee9559 14 GB 40 hours ago qwen3:8b 500a1f067a9f 5.2 GB 2 days ago
creat per Joan Quintana Compte, octubre 2026