Laboratori
El meu laboratori d’IA local
Dos superordinadors d’escriptori, tres targetes gràfiques, un mini PC i molts agents. Aquest és el sistema amb què treballo cada dia.
- de memòria unificada al clúster
- 256 GB
- de VRAM en tres GPU RTX
- 56 GB
- entre els dos nodes
- 200 Gb/s
- tokens servits (maig–set. 2026)
- ≈11.150 M
La idea
Volia comprovar una cosa senzilla: si una persona sola, a casa, pot tenir una IA tan útil com les grans plataformes sense enviar-los ni una sola dada. La resposta és que sí, sempre que es munti bé i es mantingui viva quan els models canvien cada setmana.
El que va començar com un experiment avui sosté la meva feina diària, la de la meva família, la d’alguns amics i projectes de clients. Tot el que ofereixo a file.cat ho he provat aquí abans.
El maquinari
| Peça | Què és | Per a què la faig servir |
|---|---|---|
| 2 × NVIDIA DGX Spark (ASUS Ascent GX10) | Superxip GB10 amb 128 GB de memòria unificada cadascun, units per ConnectX-7 a 200 Gb/s | Executar en tàndem (tensor parallel) el model gran de raonament, amb fins a un milió de tokens de context |
| Servidor amb 3 GPU | RTX 3090 de 24 GB i dues RTX 4060 Ti de 16 GB | Models de codi, visió, embeddings, reranker, veu, transcripció i imatge |
| Mini PC amb Proxmox | Ryzen i 16 GB, amb tres contenidors LXC | El gateway de models, els agents i els panells, perquè els nodes d’inferència només infereixin |
| Proxmox de la finca | Home Assistant, càmeres i el servidor de GPU virtualitzat | La part agrícola i domèstica |
| Xarxa | Tailscale, TLS automàtic amb Caddy i DNS dinàmic | Accés segur des de qualsevol lloc sense obrir ports innecessaris |
Els models
A la web comercial no parlo de noms concrets perquè canvien cada poques setmanes, però aquí sí:
| Rol | Model actual | On s’executa |
|---|---|---|
Raonament general (spark) |
Qwen3.8-Flash-Next (~180B MoE, NVFP4), visió nativa, 512K de context | Clúster de dues Spark |
Codi ràpid (coder) |
Qwen3.8 27B amb DFlash2, ~200 tok/s | RTX 3090 |
Codi lleuger (coder2) |
Qwen3.8 9B | RTX 4060 Ti |
Plagues agrícoles (agripests) |
Gemma 4 afinat per a visió agrícola | RTX 4060 Ti |
| Embeddings i reranker | Qwen3-Embedding-4B i Qwen3-Reranker-4B | RTX 4060 Ti |
| Veu i transcripció | Qwen3-TTS amb la meva veu clonada i Whisper | RTX 4060 Ti |
| Imatge i vídeo | Qwen-Image 2.1 i models de ComfyUI | RTX 3090 |
Pel clúster també hi han passat DeepSeek V4 Flash amb un milió de tokens de context, GLM-5.3-Flash de 320.000 milions de paràmetres i Qwen3.5-122B. Canviar de model gran sense tallar el servei forma part de l’ofici: a l’agost vaig fer tres canvis en cinc dies mentre els agents continuaven treballant.
El gateway: la meva «OpenAI» privada
Tot passa per un gateway LiteLLM amb vuit rols estables. Els clients demanen spark o coder, no un model concret, així que puc canviar el que hi ha al darrere sense que ningú toqui la seva configuració.
- Comptes per persona i per agent, equips i pressupostos.
- Endpoint compatible amb OpenAI, publicat amb TLS a
openai.file.cat. - Control del mode de raonament de cada model en el mateix àlies.
- Panell de consum propi que reparteix els tokens per persona i per model.
Entre maig i octubre de 2026 va servir uns 11.150 milions de tokens. Un sol usuari, amb el seu propi agent, ja supera els 6.000 milions.
Àrbitres de GPU
Una RTX 3090 no pot tenir alhora un model de codi de 27B i la generació d’imatges. En lloc de triar, vaig escriure dos àrbitres de GPU que fan torns automàtics: si arriba una petició per al model que està apagat, l’àrbitre l’engega, espera que estigui a punt i respon. Si la targeta està ocupada amb una renderització, contesta amb un missatge clar i el temps estimat.
El que funciona a sobre
- Nou perfils d’agent en un únic gateway de Discord, amb memòria vectorial pròpia per perfil. Els explico a Agents.
- Instàncies aïllades per a la finca familiar, per a les meves germanes i per a l’equip de Nuzic.
- Veu: transcripció de reunions amb identificació de qui parla i respostes parlades amb la meva veu.
- Imatge: generació local amb Qwen-Image des dels mateixos agents.
- Cerca i documents: SearXNG, Firecrawl i extracció de PDF, tot autoallotjat.
- Panells i alertes: un panell d’estat i consum construït pels agents i un vigilant que avisa a Discord si alguna cosa cau.
Xifres que he mesurat
| Prova | Resultat |
|---|---|
| Qwen3.8-Flash-Next, 8 converses alhora | ~325 tok/s agregats |
| Mateix model, 1 conversa | 57 tok/s en prosa i 72 tok/s en codi |
| Model de codi 27B en una RTX 3090 | ~200–222 tok/s |
| Còpia de 135 GB de pesos entre nodes | ~3 minuts |
| Fallback amb el model local caigut | 0,6 s |
El que he après
- La memòria mana. En la memòria unificada, cada punt de reserva compta, i el context llarg no surt de franc.
- Els nodes d’inferència només han d’inferir. Treure el gateway i els agents a un mini PC ho va estabilitzar tot.
- Mai un fallback ocult. Si el model local falla, es nota; ningú no canvia de model sense saber-ho.
- Rols estables, models intercanviables. El client demana un rol; el que hi ha al darrere pot millorar cada setmana.
- Mesurar-ho tot. Velocitat, memòria, consum i qui fa servir què. Sense xifres no hi ha decisions.
En vols un així?
Munto versions a mida per a empreses, des d’un lloc de treball amb una sola GPU fins a un clúster com aquest. Ho explico a file.cat, amb preus orientatius.