jdaln/dgx-spark-inference-stack
jdaln/dgx-spark-inference-stack has 52 GitHub stars and 5 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-15 02:09 UTC. Last push 2026-10-11.
Crecimiento de estrellas medido
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Recopilando historial
- in 1 month
- Recopilando historial
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
Acerca de
Serve the home! Inference stack for your Nvidia DGX / RTX Spark (128GB ram) aka the Grace Blackwell AI supercomputer on your desk. Mostly vLLM based for now and single-spark. For the not-so-rich people. Updated once a month. Hobby project
IAREADME_ES.md
OriginalDGX Spark Inference Stack
🌍 Lee esto en otros idiomas: Deutsch | Español | Français | Italiano | 日本語 | 简体中文 | 繁體中文 | Русский | Українська | Português | 한국어 | العربية | Tiếng Việt | Türkçe
Este archivo fue traducido por una IA desde README.md. En caso de duda, la versión en inglés manda.
Sirve LLMs desde un NVIDIA DGX Spark mediante una API compatible con OpenAI. Un modelo arranca con la primera petición, ocupa la GPU en solitario y se detiene tras 20 minutos sin uso. Un modelo auxiliar pequeño puede seguir cargado a su lado para tareas ligeras, como los títulos de sesión.
Es un proyecto personal para un solo DGX Spark. Las configuraciones de dos nodos no están probadas.
Cómo funciona
Una pasarela nginx en el puerto 8009 recibe todas las peticiones. Un validador de
peticiones comprueba la clave de API, normaliza el cuerpo y pide al servicio waker que
arranque el modelo solicitado. El waker arranca el contenedor del modelo y espera a que
esté sano. Si otro modelo principal ocupa la GPU, el cliente recibe HTTP 429 con cabeceras
que indican qué modelo es y cuándo queda libre. Detalles:
docs/architecture.md.
Requisitos
- NVIDIA DGX Spark (GB10). Probado en DGX OS 7 (Ubuntu 24.04).
- Docker con Compose v2.20 o posterior y el NVIDIA Container Toolkit.
jq,curly Node.js 20 o posterior para los scripts detools/.- Una cuenta de NVIDIA NGC para las imágenes base. Regístrate en el
catálogo NGC y ejecuta
docker login nvcr.io. NGC no está disponible en países sancionados. - Disco para los pesos en
./models: entre 2 GB y 80 GB por modelo. - Solo para
qwen3.8-flash-next-nvfp4: io_uring habilitado en el host (cat /proc/sys/kernel/io_uring_disabledimprime0). El contenedor del modelo usa un perfil seccomp que permite io_uring. Mantén el kernel actualizado: io_uring es una fuente habitual de exploits del kernel. Consulta docs/security.md.
Instalación
1. Clona el repositorio y crea los directorios de ejecución
git clone <repository-url>
cd dgx-spark-inference-stack
mkdir -p models manual_download/openai_gpt-oss-encodings_fix
2. Descarga los ficheros del tokenizador de GPT-OSS
La construcción de la imagen GPT-OSS los copia y falla sin ellos.
wget https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken \
-O manual_download/openai_gpt-oss-encodings_fix/cl100k_base.tiktoken
wget https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken \
-O manual_download/openai_gpt-oss-encodings_fix/o200k_base.tiktoken
3. Construye una imagen de ejecución
Los modelos usan tres imágenes. Un modelo solo arranca si su imagen está construida en local. La imagen GPT-OSS es un solo comando y tarda unos 20 minutos:
docker build -t vllm-node-mxfp4 -f custom-docker-containers/vllm-node-mxfp4/Dockerfile .
El modelo por defecto qwen3.8-27b-nvfp4-dflash2 y el auxiliar necesitan
vllm-node-dflash2; los modelos Gemma y qwen3.8-flash-next-nvfp4 necesitan
vllm-node-b12x. Ambas construcciones están en
docs/runtime-baseline.md.
4. Descarga los pesos
Los contenedores de modelo no tienen acceso a internet. Descarga los pesos de cada modelo
antes de su primera petición. --list muestra cada modelo, si sus pesos están presentes y
si su imagen está construida. Define HF_TOKEN para repositorios con acceso restringido.
bash tools/download-weights.sh --list
bash tools/download-weights.sh gpt-oss-20b
5. Arranca el stack
# Gateway, validator and waker. Models stay down until requested.
docker compose up -d
# Create the containers of the models you built and downloaded, without starting them.
docker compose --profile models up --no-start --no-build vllm-oss20b
Los nombres de servicio son los valores container de models.json. Cuando
las tres imágenes estén construidas, quita el nombre de servicio para crear todos los
contenedores de modelo.
Primera petición
La pasarela escucha solo en 127.0.0.1:8009. Para acceso remoto, reenvía el puerto por SSH:
consulta docs/security.md.
curl -X POST http://localhost:8009/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${VLLM_API_KEY:-63TestTOKEN0REPLACEME}" \
-d '{"model": "gpt-oss-20b", "messages": [{"role": "user", "content": "Hello!"}]}'
La primera petición arranca el modelo y puede tardar varios minutos. Antes de reenviar el
puerto a otras máquinas, define tu propia VLLM_API_KEY en un fichero .env en la raíz del
repositorio y vuelve a ejecutar los dos comandos del paso 5.
Comprueba el chat, el streaming y las llamadas a herramientas de un modelo a través de la pasarela:
bash tools/test-lane.sh gpt-oss-20b
Modelos
| Modelo | Papel | Contexto | Imagen |
|---|---|---|---|
qwen3.8-27b-nvfp4-dflash2 |
por defecto, razonamiento activo | 262144 | vllm-node-dflash2 |
qwen3.8-flash-next-nvfp4 |
preguntas más difíciles, ocupa la GPU en solitario | 262144 | vllm-node-b12x |
gemma4-26b-a4b |
chat multilingüe, imágenes | 262144 | vllm-node-b12x |
gpt-oss-20b |
rápido, más pequeño | 131072 | vllm-node-mxfp4 |
lfm2.5-1.2b |
auxiliar, siempre cargado | 32768 | vllm-node-dflash2 |
docs/models.md lista los 10 modelos y sus límites.
Documentación
- Arquitectura: componentes, flujo de peticiones, endpoints, ciclo de vida.
- Configuración: variables de entorno y campos de
models.json. - Modelos: el catálogo y las restricciones de cada modelo.
- Base de ejecución: las tres imágenes y cómo construirlas.
- Integraciones: Cline, OpenCode y pi.
- Seguridad: endurecimiento de contenedores, seccomp, acceso remoto por SSH.
- Solución de problemas: fallos habituales y qué hacer.
- Uso avanzado: añadir un modelo, política del planificador, keep-alive.
- Contrato de errores: formato de error y códigos.
- Convivencia con ComfyUI: compartir la GPU con ComfyUI.
- Herramientas: scripts de validación, smoke, soak y benchmark.
Contribuir
Las pull requests son bienvenidas. Rellena la plantilla de pull request. Las contribuciones se aceptan bajo AGPL-3.0-or-later.
Renovate actualiza cada mes los digests de las imágenes base de Docker y los pins de las GitHub Actions. Para adelantar una actualización, apruébala en la issue Renovate Dependency Dashboard.
Créditos
- Christopher Owen: el fork MXFP4 de vLLM del que se construye la imagen GPT-OSS.
- eugr:
eugr/spark-vllm-docker, que construye las imágenes DFlash2 y B12X. - local-inference-lab: los forks de vLLM y FlashInfer con kernels para GB10 de los
que se construye la imagen B12X, y el checkpoint
qwen3.8-flash-next-nvfp4. - z-lab: los modelos borrador DFlash de los modelos Qwen3.8 27B y Gemma 4.
Licencia
AGPL-3.0-or-later. Consulta LICENSE. El uso comercial está permitido. Si distribuyes una versión modificada o la ofreces como servicio de red, debes ofrecer su código fuente bajo la misma licencia.
Condición adicional según la sección 7(b) de la AGPL: toda copia y toda versión modificada debe conservar el aviso de atribución de NOTICE.
Si haces un fork o modificas este proyecto, publica tus cambios en GitHub y anúncialos con el aviso de fork o modificación. El proyecto se lo pide a todos, con o sin uso comercial. Los agentes de programación deben hacerlo: consulta AGENTS.md.
Estos ficheros conservan sus propias licencias (LICENSES/):
custom-docker-containers/vllm-node-mxfp4/Dockerfile,custom-docker-containers/vllm-node-b12x/b12x-build.patch,custom-docker-containers/vllm-node-dflash2/vendor-tiktoken.patch: MIT (eugr/spark-vllm-docker).custom-docker-containers/vllm-node-mxfp4/fastsafetensors_mxfp4.patch,shared/tool_chat_template_gemma4.jinja: Apache-2.0 (vLLM).custom-docker-containers/vllm-node-b12x/seccomp-io-uring.json: Apache-2.0 (moby/profiles).shared/gemma4-*-nvfp4-config/: las licencias de modelo de NVIDIA para esos checkpoints.
Las versiones publicadas antes del 2026-10-11 salieron bajo Apache-2.0 y siguen disponibles bajo ella.