Aprende de Cerebras: Cómo Montar tu Mini-Infraestructura IA en Casa
Tiempo de lectura: 9 minutos
Cerebras acaba de recaudar $1,100 millones para expandir sus datacenters de IA. Pero aquí la pregunta interesante: ¿qué podemos aprender de su arquitectura para aplicarlo a nuestro homelab?
Este artículo no va de inversiones millonarias. Va de extraer los principios técnicos que hacen que la infraestructura de Cerebras sea tan eficiente, y replicarlos a escala homelab con hardware accesible.
- Cerebras: 6 nuevos datacenters con capacidad 20x superior
- Wafer-Scale Engine: Chip único vs arquitectura multi-GPU
- 40M tokens/seg Llama 70B: Inferencia distribuida masiva
- Lecciones aplicables: Clustering, networking, almacenamiento distribuido
- Tu versión homelab: Replica sus principios con ~€500-€2,000
Tabla de Contenidos
- Qué Está Haciendo Cerebras y Por Qué Importa
- El Wafer-Scale Engine: Arquitectura Única
- Lecciones de Cerebras para tu Homelab
- Tutorial: Clustering IA Básico en Casa
- Networking para Inferencia Distribuida
- Almacenamiento Eficiente de Modelos
- Monitorización y Optimización
- Escalabilidad: De 1 GPU a N GPUs
- Preguntas Frecuentes
Qué Está Haciendo Cerebras y Por Qué Importa
Cerebras Systems acaba de anunciar una expansión masiva de su infraestructura de inferencia de IA:
- $1,100 millones recaudados en Serie G
- 6 nuevos datacenters en EE.UU., Canadá y Europa
- Capacidad 20x superior a su infraestructura actual
- 40 millones tokens/seg para Llama 70B en su red completa
Su tecnología clave es el Wafer-Scale Engine (WSE): en lugar de usar múltiples GPUs pequeñas, utilizan un solo chip gigante del tamaño de una oblea de silicio completa (21.5 cm x 21.5 cm). Esto elimina la latencia entre chips y permite memoria compartida real.
¿Por Qué Nos Debería Importar Esto?
Porque los principios arquitectónicos que aplican son escalables:
- Clustering inteligente: Distribuir inferencia entre múltiples nodos
- Memoria compartida: Reducir copias de modelos entre GPUs
- Networking de baja latencia: 10GbE/25GbE entre nodos
- Almacenamiento distribuido: Modelos accesibles desde cualquier nodo
- Orquestación automatizada: Balanceo de carga y failover
Todos estos conceptos se pueden aplicar a un homelab, aunque sea con 2-3 máquinas en lugar de 300 CS-3 Superchips.
El Wafer-Scale Engine: Arquitectura Única
Cómo Funciona el WSE
El chip WSE-3 de Cerebras tiene:
- 900,000 núcleos IA optimizados para redes neuronales
- 44 GB SRAM on-chip (memoria directa en chip, sin latencia VRAM)
- 21 PB/s bandwidth interno (20,000x más rápido que GPUs consumer)
- Arquitectura dataflow: Los datos fluyen entre cores sin control central
Por Qué No Podemos Replicarlo Exactamente
El WSE cuesta cientos de miles de dólares y requiere fabricación especializada. Pero sí podemos replicar sus ventajas arquitectónicas con GPUs consumer:
Cerebras WSE | Equivalente Homelab |
---|---|
Memoria compartida en chip | Modelos en NFS/Samba compartido |
Inferencia distribuida en 900k cores | vLLM con tensor parallelism en 2-3 GPUs |
Networking 21 PB/s interno | 10GbE o NVMe-over-Fabric |
Orquestación hardware | Kubernetes/Docker Swarm/Ray |
44 GB SRAM on-chip | 48-96GB VRAM total (2-4x RTX 4090) |
Lecciones de Cerebras para tu Homelab
1. La Memoria Compartida es Oro
Cerebras pone todo el modelo en SRAM on-chip para evitar cargarlo múltiples veces. En homelab:
- Almacenamiento NFS/Samba centralizado: Un solo servidor con los modelos
- Caché local en NVMe: Primera carga desde red, luego desde disco local
- Evitar duplicación: No copies Llama 70B (140GB) en cada máquina
Arquitectura recomendada:
[Servidor NAS]
├─ /models/llama-3.3-70b/ (140GB)
├─ /models/qwen-2.5-72b/ (146GB)
└─ /models/flux-schnell/ (24GB)
↓ 10GbE Network
[Nodo GPU 1] [Nodo GPU 2] [Nodo GPU 3]
Cache local Cache local Cache local
2. El Networking No es Opcional
Cerebras usa networking de 200G QSFP. Nosotros podemos usar:
- 10 Gigabit Ethernet: Suficiente para inferencia distribuida (€150-€300 total)
- 25GbE: Si necesitas más (€500-€800 total)
- Bonding de interfaces: 2x 2.5GbE = 5Gbps efectivos (€0 si ya tienes las interfaces)
Por qué importa: Transferir activaciones entre GPUs en un modelo distribuido genera ~2-5 GB/s de tráfico. Con Gigabit Ethernet (125 MB/s) te conviertes en cuello de botella. Con 10GbE (1,250 MB/s) va fluido.
3. La Distribución Inteligente Multiplica Capacidad
Cerebras puede ejecutar 405B parámetros distribuidos. Tú puedes ejecutar 70B en 2x GPUs o 123B en 3x GPUs con tensor parallelism.
Tensor Parallelism: El modelo se divide horizontalmente entre GPUs. Cada GPU procesa una porción de cada capa, y se sincronizan entre capas.
Pipeline Parallelism: Diferentes capas del modelo en diferentes GPUs. GPU1 hace capas 1-20, GPU2 hace 21-40, etc.
Para homelab, tensor parallelism con vLLM es la opción más práctica.
4. La Monitorización es Crítica
Cerebras monitoriza 300+ sistemas CS-3 en tiempo real. Tú necesitas monitorizar tus 2-3 nodos para:
- Detectar cuellos de botella: GPU underutilized = problema de red o I/O
- Optimizar costes: No dejes GPUs encendidas sin usar (€0.15/kWh)
- Prevenir fallos: Temperatura >85°C = throttling = inferencia lenta
Herramientas: Prometheus + Grafana + nvidia-smi exporter.
Tutorial: Clustering IA Básico en Casa
Vamos a montar una mini-infraestructura tipo Cerebras con 2 máquinas y networking 10GbE.
Hardware Necesario
Opción Económica (2 nodos, ~€3,500 total):
NODO 1 (Servidor principal):
├─ GPU: RTX 4070 Ti Super 16GB → €900
├─ CPU: AMD Ryzen 5 7600 → €200
├─ RAM: 32GB DDR5 → €100
├─ SSD: 2TB NVMe (modelos) → €150
├─ NIC: 10GbE SFP+ (Mellanox CX3) → €50 (usado)
└─ Resto (placa, PSU, caja) → €400
NODO 2 (Nodo inferencia):
├─ GPU: RTX 4070 Super 12GB → €650
├─ CPU: AMD Ryzen 5 7600 → €200
├─ RAM: 32GB DDR5 → €100
├─ NIC: 10GbE SFP+ (Mellanox CX3) → €50 (usado)
└─ Resto (placa, PSU, caja) → €400
NETWORKING:
├─ Switch 10GbE SFP+ 8 puertos → €200 (MikroTik CRS309)
└─ 2x cables DAC SFP+ 1m → €30
TOTAL: ~€3,430
Capacidad combinada:
- 28GB VRAM total (16+12)
- Llama 3.3 70B Q4 distribuido
- Mistral Large 123B Q2 distribuido (calidad justa)
- Qwen 2.5 72B Q4 distribuido
Instalación del Software
1. Sistema base en ambos nodos (Ubuntu 24.04 LTS)
# Actualizar
sudo apt update && sudo apt upgrade -y
# Drivers NVIDIA
sudo apt install -y nvidia-driver-550 nvidia-utils-550
# Docker + NVIDIA Container Toolkit
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
2. Configurar almacenamiento compartido (Nodo 1 = servidor NFS)
# En NODO 1 (servidor NFS)
sudo apt install -y nfs-kernel-server
# Crear directorio de modelos
sudo mkdir -p /mnt/models
sudo chown $USER:$USER /mnt/models
# Exportar via NFS
echo "/mnt/models 192.168.10.0/24(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports
sudo exportfs -ra
sudo systemctl restart nfs-server
# En NODO 2 (cliente NFS)
sudo apt install -y nfs-common
sudo mkdir -p /mnt/models
echo "192.168.10.1:/mnt/models /mnt/models nfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a
3. Instalar vLLM con soporte multi-GPU
# En ambos nodos
docker pull vllm/vllm-openai:latest
# Descargar modelo en NODO 1 (se sincroniza via NFS a NODO 2)
cd /mnt/models
git lfs install
git clone https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct
4. Configurar Ray Cluster para distribución
# En NODO 1 (head node)
docker run -d --name ray-head --gpus all --network host \
-v /mnt/models:/models \
rayproject/ray:latest-gpu ray start --head --port=6379
# En NODO 2 (worker node)
docker run -d --name ray-worker --gpus all --network host \
-v /mnt/models:/models \
rayproject/ray:latest-gpu ray start --address='192.168.10.1:6379'
# Verificar cluster
docker exec ray-head ray status
5. Lanzar vLLM distribuido
# En NODO 1, lanzar vLLM con tensor parallelism
docker run -d --name vllm-server \
--gpus all \
--network host \
-v /mnt/models:/models \
-e RAY_ADDRESS=192.168.10.1:6379 \
vllm/vllm-openai:latest \
--model /models/Llama-3.3-70B-Instruct \
--tensor-parallel-size 2 \
--host 0.0.0.0 \
--port 8000
# Verificar que detecta ambas GPUs
docker logs vllm-server | grep "tensor_parallel_size"
6. Probar inferencia distribuida
# Desde cualquier máquina en la red
curl http://192.168.10.1:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "/models/Llama-3.3-70B-Instruct",
"prompt": "Explica qué es tensor parallelism en 100 palabras",
"max_tokens": 200
}'
# Monitorizar GPUs en tiempo real
# En NODO 1
watch -n 1 nvidia-smi
# En NODO 2
watch -n 1 nvidia-smi
Deberías ver ambas GPUs trabajando simultáneamente con utilización >80%.
Networking para Inferencia Distribuida
¿Por Qué 10GbE y No Gigabit?
Durante inferencia distribuida con tensor parallelism, las GPUs intercambian activaciones entre capas:
- Llama 70B: ~2-4 GB/s de tráfico inter-GPU
- Gigabit Ethernet: 125 MB/s teóricos, ~100 MB/s reales
- 10 Gigabit Ethernet: 1,250 MB/s teóricos, ~1,100 MB/s reales
Con Gigabit, las GPUs pasan el 70% del tiempo esperando datos de red. Con 10GbE, pasan el 5% esperando.
Configuración de Red Optimizada
# Configurar IPs estáticas en interfaz 10GbE (ejemplo: ens1)
# En NODO 1
sudo ip addr add 192.168.10.1/24 dev ens1
sudo ip link set ens1 up
# En NODO 2
sudo ip addr add 192.168.10.2/24 dev ens1
sudo ip link set ens1 up
# Hacer permanente (netplan en Ubuntu)
cat <
Alternativa: Bonding de Interfaces
Si no quieres comprar hardware 10GbE, puedes hacer bonding de 2x 2.5GbE:
# Instalar ifenslave
sudo apt install -y ifenslave
# Cargar módulo bonding
echo "bonding" | sudo tee -a /etc/modules
# Configurar bond0 (netplan)
cat <
Esto te da ~4.5 Gbps efectivos (suficiente para modelos <70B).
Almacenamiento Eficiente de Modelos
Estrategia de 3 Capas
- Almacenamiento frío (HDD): Modelos que no usas frecuentemente
- 8-12 TB WD Red Plus (€180-€280)
- Backup de todos los modelos
- Almacenamiento caliente (NVMe compartido): Modelos activos
- 2-4 TB NVMe en servidor NFS
- Los 3-5 modelos que usas más
- Caché local (NVMe en cada nodo): Modelo actualmente cargado
- 500GB-1TB NVMe en cada nodo de inferencia
- Primera carga desde NFS, luego desde caché local
Script de Gestión de Modelos
#!/bin/bash
# cache_model.sh - Cachea modelo desde NFS a local
MODEL_NAME=$1
NFS_PATH="/mnt/models"
CACHE_PATH="/var/cache/models"
if [ ! -d "$CACHE_PATH/$MODEL_NAME" ]; then
echo "📦 Cacheando $MODEL_NAME desde NFS..."
rsync -avP "$NFS_PATH/$MODEL_NAME" "$CACHE_PATH/" --bwlimit=1000000 # 1 GB/s max
echo "✅ $MODEL_NAME cacheado localmente"
else
echo "✅ $MODEL_NAME ya está en caché"
fi
echo "$CACHE_PATH/$MODEL_NAME"
Compresión de Modelos Inactivos
Los modelos GGUF/safetensors comprimen bien con zstd:
# Comprimir modelo inactivo
zstd -19 --threads=16 /mnt/cold/llama-3.1-405b-q4.gguf
# Ahorra ~30-40% de espacio
# Descomprimir cuando lo necesites (1-2 min en CPU moderno)
zstd -d /mnt/cold/llama-3.1-405b-q4.gguf.zst
Monitorización y Optimización
Stack de Monitorización Completo
Crea ~/monitoring/docker-compose.yml
:
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.retention.time=30d'
restart: unless-stopped
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
restart: unless-stopped
nvidia-exporter-node1:
image: utkuozdemir/nvidia_gpu_exporter:latest
container_name: nvidia-exporter-node1
ports:
- "9835:9835"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
volumes:
prometheus-data:
grafana-data:
prometheus.yml
:
global:
scrape_interval: 5s
scrape_configs:
- job_name: 'nvidia-gpu-node1'
static_configs:
- targets: ['192.168.10.1:9835']
labels:
node: 'nodo1'
- job_name: 'nvidia-gpu-node2'
static_configs:
- targets: ['192.168.10.2:9835']
labels:
node: 'nodo2'
Lanzar:
cd ~/monitoring
docker compose up -d
Accede a Grafana en http://192.168.10.1:3000
(admin/admin) e importa el dashboard ID 14574 (NVIDIA GPU Metrics).
Métricas Clave a Monitorizar
- GPU Utilization: Debe estar >80% durante inferencia (si <50%, hay cuello de botella)
- GPU Memory Usage: Evita swap (si VRAM full = OOM o swap a RAM)
- GPU Temperature: <85°C ideal, >90°C = throttling
- Power Consumption: TDP máximo = GPU trabajando al 100%
- Network Throughput: Debería ser constante durante inferencia distribuida
Escalabilidad: De 1 GPU a N GPUs
Roadmap de Expansión
Fase 1: Single GPU (€1,500)
- RTX 4070 Ti Super 16GB
- Llama 3.3 70B Q4, Qwen 2.5 72B Q4
- FLUX Schnell para imágenes
Fase 2: Dual GPU en una máquina (€2,800)
- 2x RTX 4070 Ti Super 16GB
- 32GB VRAM total
- Llama 3.3 70B Q5/Q8, Mistral Large 123B Q4
- Tensor parallelism local (sin networking necesario)
Fase 3: Cluster 2 nodos (€3,500)
- 2 máquinas con 1 GPU cada una
- 10GbE networking (€200)
- 28GB VRAM total distribuido
- Failover: Si nodo1 falla, nodo2 sigue funcionando
Fase 4: Cluster 3+ nodos (€5,000+)
- 3 máquinas con 1-2 GPUs cada una
- 40-60GB VRAM total
- Pipeline parallelism + Tensor parallelism combinados
- Modelos 405B quantizados (Q2/Q3)
Cuándo Escalar
Escala solo cuando:
- Necesitas modelos más grandes: Tu modelo actual no cabe en VRAM
- Necesitas más throughput: Tienes cola de requests esperando
- Quieres redundancia: Para servicios críticos (chatbots internos, APIs)
No escales si:
- Tu GPU actual está <50% utilizada
- Modelos quantizados Q4/Q5 te dan resultados suficientemente buenos
- Solo experimentas y no tienes carga de producción
Preguntas Frecuentes
¿Vale la pena montar un cluster de IA en casa?
Depende de tu caso de uso. Si ejecutas modelos >70B frecuentemente o tienes múltiples usuarios/servicios consumiendo inferencia, sí. Si solo experimentas con modelos 7B-13B, una sola GPU es suficiente. El sweet spot es 2 nodos con 1 GPU cada uno: te da redundancia y capacidad distribuida por ~€3,500.
¿Qué es tensor parallelism y cómo funciona?
Tensor parallelism divide el modelo horizontalmente entre GPUs. Cada GPU tiene una fracción de cada capa. Durante inferencia, todas las GPUs procesan el mismo token simultáneamente, cada una calculando su porción de la capa. Los resultados se combinan antes de pasar a la siguiente capa. Es ideal para latencia baja, pero requiere networking rápido (10GbE+).
¿Cuánto ancho de banda necesito para inferencia distribuida?
Para modelos 70B con tensor parallelism entre 2 GPUs, necesitas ~2-4 GB/s (16-32 Gbps). 10 Gigabit Ethernet (10 Gbps) es el mínimo práctico. Gigabit Ethernet (1 Gbps) es insuficiente y causará que las GPUs estén idle el 70% del tiempo esperando datos de red. Si tienes 2.5GbE, haz bonding de 2 interfaces para llegar a ~4.5 Gbps.
¿Puedo mezclar GPUs diferentes en un cluster?
Técnicamente sí, pero no es recomendable. El rendimiento estará limitado por la GPU más lenta. Por ejemplo, si tienes RTX 4090 (24GB) + RTX 4060 Ti (16GB), el modelo se dividirá equitativamente pero la 4060 Ti será cuello de botella. Lo ideal es GPUs idénticas o al menos de la misma generación y arquitectura (todas Ada Lovelace, todas Blackwell, etc.).
¿Qué software es mejor para orquestar múltiples GPUs: Ray, Kubernetes, Docker Swarm?
Para IA específicamente, Ray es el mejor. Está diseñado para machine learning distribuido y se integra nativamente con vLLM, TensorFlow, PyTorch. Kubernetes es overkill para homelabs pequeños (2-3 nodos) y Docker Swarm no tiene soporte nativo para tensor parallelism. Si solo tienes 2 nodos, puedes empezar sin orquestador y usar vLLM directamente.
¿Cómo comparto modelos entre nodos sin duplicarlos?
Usa almacenamiento compartido por red:
- NFS (Linux): Fácil de configurar, buen rendimiento con 10GbE
- Samba/CIFS (Windows): Más lento pero funciona cross-platform
- GlusterFS/CephFS: Para clusters grandes (>5 nodos), overkill para homelab
La primera vez que un nodo carga un modelo desde NFS tarda 2-3 min (dependiendo de networking). Después puedes cachearlo localmente en NVMe.
¿Cuánto consume un cluster de 2 nodos con GPUs?
Cluster ejemplo (2x RTX 4070 Ti Super + CPUs Ryzen 5):
- Idle: ~200W total (100W por nodo)
- Inferencia 70B: ~800W total (400W por nodo)
- Coste 24/7 @0.15€/kWh: €17.5/mes idle, €86/mes full load
Si solo usas inferencia 4h/día: ~€30/mes. Usa scripts de wake-on-LAN para encender nodos bajo demanda.
¿Puedo ejecutar Llama 3.1 405B en casa?
Técnicamente sí, pero necesitas ~200GB VRAM para la versión quantizada Q4. Eso significa 4-6x RTX 4090 (€7,200-€10,800 solo en GPUs). Es impractico para homelab. Alternativa real: Llama 3.3 70B Q5 da calidad comparable para el 95% de tareas y corre en 2x GPUs consumer (€1,800). O usa Qwen 2.5 72B, DeepSeek V3, Mixtral 8x22B.
¿Cómo monitorizo la salud del cluster?
Stack mínimo: Prometheus + Grafana + nvidia_gpu_exporter. Monitoriza:
- GPU utilization, memory, temperature
- Network throughput entre nodos
- Disk I/O en almacenamiento compartido
- Ray cluster status (si usas Ray)
Configura alertas en Grafana para: GPU temp >85°C, VRAM >95%, node unreachable.
¿Qué hago si un nodo falla durante inferencia?
Con Ray + vLLM, puedes configurar réplicas. Si tienes 3 nodos y 1 falla, Ray redistribuye la carga a los nodos restantes. El request actual se pierde, pero los siguientes se procesan normalmente. Para alta disponibilidad, necesitas al menos 3 nodos (N+1 redundancy).
Conclusión: Tu Mini-Cerebras Casero
Cerebras invierte $1,100 millones en infraestructura masiva, pero los principios arquitectónicos son escalables:
- Distribución inteligente: Tensor/pipeline parallelism con vLLM + Ray
- Networking de baja latencia: 10GbE entre nodos (€200)
- Almacenamiento compartido: NFS para evitar duplicar modelos
- Monitorización activa: Prometheus + Grafana para optimizar
- Escalabilidad progresiva: De 1 GPU a N GPUs según necesidad
Roadmap recomendado:
- Empieza con 1 GPU (RTX 4070 Ti Super, €1,500 total)
- Aprende inferencia local (Ollama, vLLM, modelos quantizados)
- Si necesitas más capacidad, añade un 2º nodo + 10GbE (€2,000 adicionales)
- Implementa clustering con Ray + vLLM tensor parallelism
- Optimiza networking y almacenamiento según uso real
No necesitas $1,100 millones ni datacenters. Necesitas entender los principios y aplicarlos a tu escala.
Recursos relacionados:
- Monta tu servidor IA casero: Guía de hardware 2025
- Instala Docker: Tutorial completo
- n8n: Automatiza tu infraestructura IA
- Proxmox: Virtualización para homelab
¿Has montado un cluster IA en casa? Comparte tu experiencia en los comentarios.