Trooper.AI ofrece una plantilla de despliegue completamente automatizada para vLLM que instala, configura y ejecuta un servidor de inferencia compatible con OpenAI en tu servidor con GPU utilizando systemd.
El objetivo:
La plantilla realiza automáticamente:
Solo usted controla un conjunto reducido de parámetros públicos.
Comprensión de los números de GPU: vLLM funciona con múltiples GPUs, pero requiere que la cantidad de GPUs divida exactamente las cabezas de atención del modelo. Por ejemplo, un modelo como Gemma con 32 cabezas de atención puede usar 1, 2, 4 u 8 GPUs —pero no 3.
Aviso importante sobre las capturas de pantalla: Los servidores mostrados en las capturas son solo con fines demostrativos y están protegidos por el Firewall de Nivel de Red de Trooper.AI, incluido en todos los pedidos de Servidores GPU. Para información detallada, consulte 🛡️ Firewall personalizable de hardware de Trooper.AI
Esta plantilla despliega un servidor de inferencia vLLM listo para usar en tu instancia de Trooper.AI. Instala el entorno de ejecución necesario, configura el punto final de la API y prepara el modelo para solicitudes compatibles con OpenAI.
A continuación se ofrece una breve explicación de cada opción de configuración.
Argumentos avanzados opcionales pasados directamente al comando de inicio del servidor vLLM
Úsalo si necesita habilitar funciones adicionales como:
Ejemplo:
--tensor-parallel-size 2
Déjalo vacío a menos que sepas exactamente qué banderas quieres usar.
Tu token de acceso de HuggingFace
Esto es requerido si el modelo:
Para modelos públicos este campo puede dejarse vacío.
Puede generar un token aquí:
https://huggingface.co/settings/tokens
El token solo se utiliza durante la descarga del modelo.
Define la ventana de contexto máxima que el servidor debe soportar.
Esto afecta directamente al uso de memoria VRAM.
Valores típicos:
| ¿Requiere autenticación o está alojado en un repositorio privado? Para modelos públicos este campo puede dejarse vacío. Puede generar un token aquí: Código https://huggingface.co/settings/tokens (el token solo se usa durante la descarga del modelo). max_tokens Define el tamaño máximo de ventana de contexto que debe soportar el servidor. Esto afecta directamente al uso de memoria VRAM. Valores típicos: Context Recommended small models 4096 medium models 8192 long context models 16384+. Nota: Valores más altos aumentan significativamente el consumo de memoria. Si su servidor se queda sin VRAM, reduzca este valor. modelname Identificador del modelo Hugging Face que vLLM debe cargar. Ejemplo: Código mistralai/Mistral-7B-Instruct-v0.2 Otros ejemplos compatibles: Qwen/Qwen2.5-14B-Instruct google/gemma-3-12b-it meta-llama/Meta-Llama-3-8B-Instruct. | Recomendado |
|---|---|
| modelos pequeños | 4096 |
| modelos medianos | 8192 |
| modelos de contexto largo | 16384+ |
Valores más altos aumentan significativamente el uso de memoria. Si tu servidor se queda sin VRAM, reduce este valor.
El identificador del modelo de HuggingFace que debe cargar vLLM.
Ejemplo:
mistralai/Ministral-3-14B-Instruct-2512
Otros ejemplos compatibles:
Qwen/Qwen2.5-14B-Instruct
google/gemma-3-12b-it
meta-llama/Meta-Llama-3-8B-Instruct
... and many more
Asegúrate de que el modelo sea compatible con vLLM y quepa en la memoria de tu GPU.
Esta es tu clave de autenticación de la API
Todas las solicitudes al servidor de vLLM deben incluir este token en el encabezado:
Authorization: Bearer YOUR_TOKEN
Esto protege tu servidor de accesos no autorizados.
Ejemplo de solicitud:
curl https://your-server/v1/chat/completions \
-H "Authorization: Bearer YOUR_TOKEN"
Usa una cadena aleatoria fuerte.
Puede utilizar una amplia gama de modelos de lenguaje grandes desde HuggingFace dentro de vLLM. Asegúrese de contar con suficiente memoria VRAM disponible, ya que el rendimiento depende de tener espacio libre adecuado en la VRAM de la GPU para albergar al modelo y el tamaño del contexto, multiplicado por el número de usuarios concurrentes.
Trooper.AI selecciona automáticamente la precisión óptima según la arquitectura de la GPU.
Cálculo de VRAM: Peso del modelo + ~25% búfer de caché KV.
La VRAM puede compartirse entre múltiples GPU mediante Tensor Parallelism (--tensor-parallel-size N).
| Modelo | Parámetros | Precisión | VRAM total mínimo | Configuración de GPU | GPU |
|---|---|---|---|---|---|
| Qwen/Qwen3-4B | 4B | BF16 | ~8 GB | 1× NVIDIA Tesla V100 (16 GB) / RTX 4070 Ti Super | 1 |
| Qwen/Qwen3-8B | 8B | BF16 | ~20 GB | 1 × RTX 3090 / RTX 4090 (24 GB) | 1 |
| mistralai/Ministral-3-14B-Instruct-2512 | 14B | FP8 | ~29 GB | 1× RTX 4080 Pro de 32 GB o 1× A100 de 40 GB | 1 |
| Qwen/Qwen3-32B | 32B | FP8 | ~40 GB | 1× A100 40 GB o 2× RTX 4090 (2×24 GB) | 1–2 |
| meta-llama/Llama-3.1-8B-Instruct | 8B | FP8 | ~20 GB | 1 × RTX 3090 / RTX 4090 (24 GB) | 1 |
| meta-llama/Llama-3.1-70B-Instruct | 70B | FP8 | ~90 GB | 1 × NVIDIA RTX Pro 6000 Blackwell (96 GB) o 2 × A100 (2 × 40 GB) | 1–2 |
Nota: FP8 se utiliza en arquitecturas Ada/Hopper (series RTX 40, A100, H100) para alcanzar el máximo rendimiento. \
Trooper.AI selecciona automáticamente la precisión óptima según tu GPU.
En configuraciones con múltiples GPUs se emplea Tensor Parallelism — la VRAM escala de forma lineal entre las tarjetas.
Estos parámetros pueden configurarse mediante variables de entorno antes de ejecutar el instalador.
| variable | Descripción |
|---|---|
TOKEN |
Clave de API para autenticación |
modelname |
ruta del modelo de Hugging Face |
hf_token |
Token de Hugging Face (para modelos restringidos) |
commandline_args |
Argumentos adicionales opcionales de la CLI de vLLM |
Nuestra plantilla incluye una prueba de rendimiento para ayudarle a optimizar su servidor de GPU para uso con múltiples agentes. Úsela para probar y comparar modelos, tipos de GPU y parámetros con el fin de maximizar la capacidad de procesamiento y los usuarios concurrentes.
¿Cómo funciona el benchmark?
El benchmark inicia múltiples agentes simultáneamente, cada uno interactuando con el punto de extremo (endpoint) del servidor vLLM en un tema diferente. Esto evita la caché y prueba el rendimiento en condiciones reales. Puede ver el throughput de cada agente, el throughput total y comparar costos para servicios basados en tokens como GPT-5 mini. Con frecuencia, un servidor vLLM de Trooper.AI es 2–4 veces más económico que los servicios grandes de inferencia basada en tokens mientras mantiene tu trabajo con modelos de lenguaje privado.
Detecta la arquitectura de GPU (Volta, Ampere, Ada, Hopper, Blackwell)
Detecta el tamaño de la VRAM
Selecciona precisión óptima automáticamente:
Utiliza caché de clave-valor (KV) en FP16 para mayor estabilidad
Ajustes:
Instala vLLM con CUDA
Crea un servicio de systemd:
vllm-server.service
Inicia un servidor de API persistente compatible con OpenAI en un punto final seguro mediante HTTPS.
No se requiere ajuste manual.
URL base:
http://YOUR_SERVER:PORT/v1
Puntos de conexión:
/v1/models/v1/completions/v1/chat/completionsEncabezado de autenticación:
Authorization: Bearer YOUR_TOKEN_FROM_CONFIG
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://YOUR_SERVER_ENDPOINT.apps.trooper.ai/v1"
)
resp = client.chat.completions.create(
model="Qwen/Qwen3-14B",
messages=[
{"role": "user", "content": "Hello, what is vLLM?"}
],
max_tokens=200
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://YOUR_SERVER_ENDPOINT.apps.trooper.ai/v1"
});
const completion = await client.chat.completions.create({
model: "Qwen/Qwen3-14B",
messages: [
{ role: "user", content: "Hello from Node.js" }
],
max_tokens: 200
});
console.log(completion.choices[0].message.content);
<?php
$ch = curl_init("https://YOUR_SERVER_ENDPOINT.apps.trooper.ai/v1/chat/completions");
$data = [
"model" => "Qwen/Qwen3-14B",
"messages" => [
["role" => "user", "content" => "Hello from PHP"]
],
"max_tokens" => 200
];
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode($data)
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
resp = client.chat.completions.create(
model="Qwen/Qwen3-14B",
messages=[{"role":"user","content":"Explain transformers"}],
stream=True
)
for chunk in resp:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
const stream = await client.chat.completions.create({
model: "Qwen/Qwen3-14B",
messages: [{ role: "user", content: "Explain transformers" }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0].delta?.content || "");
}
Los servidores vLLM de Trooper.AI están diseñados para:
Trooper.AI utiliza:
Esto evita:
Para dar una idea aproximada de la economía del autoalojamiento (self-hosting), la siguiente comparación proyecta el costo de ejecutar Ministral-3-14B-Instruct-2512 en un servidor GPU de Trooper.AI frente al uso de la API de GPT-5 mini para la misma carga de trabajo.
La estimación se basa en la ejecución real del benchmark descrita en este artículo y proyectada para una hora de rendimiento continuo de inferencia.
| Plataforma | Costo por hora |
|---|---|
| API de GPT-5 Mini | ~$3.12 |
| Ministral-3-14B en servidor de GPU de Trooper.AI | €0.51 (~$0.54) |
Esta estimación se basa en el prueba de rendimiento real realizada en este artículo utilizando Ministral-3-14B-Instruct-2512 en un servidor GPU de Trooper.AI.
| Métrica | Valor |
|---|---|
| Tokens totales procesados | 307,028 |
| tiempo de ejecución | 153 segundos |
| Rendimiento | ~2006 tokens/seg |
| Tokens proyectados/hora | ~7,22 M de tokens |
Distribución de tokens en el benchmark:
| Tipo de token | tokens |
|---|---|
| Tokens de entrada | 275,186 |
| Tokens de salida | 31,842 |
Escalando esta proporción hasta ~7.22M tokens/hora y aplicando precios de GPT-5 mini:
resulta en una estimación de ~€3.12 por hora para la misma carga de trabajo.
El servidor Ministral-3 en Trooper.AI funciona con un costo fijo de €0.51/hora (~$0.54), independientemente del volumen de tokens, lo que permite procesar millones de tokens por hora a un costo predecible.
Con el rendimiento observado podemos estimar el costo de ejecutar el sistema por una hora completa.
| Métrica | Valor |
|---|---|
| Tokenes por hora | ~7,221,543 |
| costo de GPT-5 mini | $3.12 |
| costo del servidor de Trooper.AI | €0.51 (~$0.54) |
Ejecutar la misma carga de trabajo durante una hora seguiría siendo:
≈ 5.8× más barato en Trooper.AI
Autohospedar modelos de lenguaje tiende a ser más económico cuando:
Ejemplos típicos incluyen:
En este benchmark:
| Métrica | Resultado |
|---|---|
| Modelo | Ministral-3-14B |
| Costo del servidor | €0.51/hour |
| Tokens procesados | 307k |
| tiempo de ejecución | 153 segundos |
| Reducción de costos | 82.8% |
| Ventaja de costo | 5.8× más barato que el modelo GPT-5 mini |
Para cargas de trabajo con alto rendimiento, ejecutar modelos como Ministral-3 en servidores GPU de Trooper.AI puede reducir drásticamente los costos de inferencia al mismo tiempo que elimina los límites de tasa de la API.
La plantilla Trooper.AI vLLM te ofrece:
Solo eliges el modelo y la clave de API.
Todo lo demás se optimiza automáticamente.
Con el panel de control puedes detectar fácilmente los problemas al iniciar y solucionarlos. ¿No tienes suficiente VRAM? Actualiza a un plan superior (Blib) en minutos desde el panel o ajusta el uso de la VRAM reduciendo el tamaño de la ventana de tokens. Revisa los registros en tiempo real con facilidad mediante el panel:
Para usar Ministral 3 necesitas normalmente Transformers 4.x y esto puede forzarse fácilmente con la casilla «Ministral 3 Fix» en la configuración del plantilla. Tenga en cuenta que vLLM es una herramienta experta y debe saber cómo optimizarla y solucionar problemas, pero lo ayudamos lo mejor posible.
Primero, active la corrección de Ministral 3:
Segundo, usa estos parámetros para aprovechar al máximo las funciones del modelo:
--async-scheduling --tokenizer_mode mistral --config_format mistral --load_format mistral --enable-auto-tool-choice --tool-call-parser mistral --limit-mm-per-prompt='{"image":{"count":4,"width":768,"height":768}}'
Esto iniciará entonces Ministral 3 en tu servidor, siempre que los demás parámetros se ajusten al tamaño de tu VRAM.
Para NVIDIA Nemotron 3 Nano necesitas al menos la versión vLLM 0.18.1 (versión nocturna hasta el 2025-03-30). Puedes configurar el analizador y límite de tokens para usar thinking_token_budget. Lee más aquí: https://docs.vllm.ai/en/latest/features/reasoning_outputs/#online-serving
Ten en cuenta que esto reducirá el throughput aproximadamente un -30%!
Modifica command_line_args como algo así:
--async-scheduling
--reasoning-parser-plugin /home/trooperai/vllm-server/nano_v3_reasoning_parser.py
--reasoning-parser nano_v3
--reasoning-config '{"think_start_str": "<think>", "think_end_str": " - I have to give the solution based on the thinking directly now:</think>"}'
Descargar el analizador desde:
wget -O - https://huggingface.co/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16/resolve/main/nano_v3_reasoning_parser.py
Alternativamente puedes usar el parámetro nemotron_3_parser configurado en ON. Esto lo hará por ti. Asegúrate también de activar la versión nocturna para desarrolladores.
Así obtienes mayor control sobre la función de razonamiento de Nemotron 3 Nano.
Para ajustes avanzados, configuración multi-GPU o plantillas personalizadas, comuníquese con el soporte de Trooper.AI.