DEV Community

LeoJulieta
LeoJulieta

Posted on

Llmspeed: Mide el rendimiento de LLMs locales en minutos

Llmspeed : la herramienta definitiva para medir el rendimiento de LLMs locales (46 votos y 18 comentarios en Hacker News)

Introducción

¿Estás a punto de invertir en una GPU de 24 GB o en un clúster en la nube y no sabes si realmente vas a necesitar tanto poder de cálculo? Llmspeed te da la respuesta en minutos, no en semanas. Con 46 votos y 18 comentarios en Hacker News, esta herramienta está cambiando la forma en que ingenieros, investigadores y startups evalúan la viabilidad de ejecutar modelos de lenguaje grande (LLM) en sus propios equipos antes de gastar en costosas infraestructuras.

En este artículo encontrarás una guía práctica paso a paso (≈ 3 000 palabras) para:

  1. Entender qué es Llmspeed y cómo funciona su API.
  2. Instalar y ejecutar pruebas en los hardware más habituales.
  3. Medir latencia, throughput y consumo energético con scripts listos para copiar.
  4. Analizar resultados reales y calcular el coste total de propiedad (TCO).
  5. Evaluar seguridad y privacidad al ejecutar LLMs en local.
  6. Resolver dudas frecuentes con una sección de FAQ y enlaces a recursos oficiales.

1. ¿Qué es Llmspeed y cómo funciona?

Llmspeed es un benchmark agnóstico al modelo que se apoya en ONNX Runtime y vLLM para ejecutar cualquier modelo exportable a ONNX o disponible en Hugging Face. La herramienta expone una API sencilla (/run, /metrics) y genera un informe JSON con:

  • latencia media por token (ms)
  • throughput (tokens / s)
  • consumo energético (J) – opcional, mediante pyRAPL (CPU) o NVML (GPU)

Todo ello se guarda en una carpeta results/ para su posterior análisis.


2. Instalación rápida

Requisitos mínimos

Componente Versión mínima
Python 3.9
pip 22.0
CUDA 11.8 (solo GPU Nvidia)
ONNX Runtime 1.16.0
vLLM 0.2.5

Paso a paso

# 1. Crear entorno virtual
python -m venv .venv && source .venv/bin/activate

# 2. Instalar dependencias principales
pip install --upgrade pip
pip install llmspeed onnxruntime-gpu vllm pyRAPL nvidia-ml-py3 tqdm

# 3. (Opcional) Instalar soporte para AMD
pip install onnxruntime-rocm
Enter fullscreen mode Exit fullscreen mode

Tip: Si tu máquina solo tiene CPU, sustituye onnxruntime-gpu por onnxruntime.


3. Ejecutar el benchmark

3.1. Descargar un modelo (ejemplo: Llama‑2‑7B)

# Usa huggingface-cli para descargar
huggingface-cli download meta-llama/Llama-2-7b-chat-hf --local-dir ./models/llama2-7b
# Convierte a ONNX (solo la primera fase, el resto se hace al vuelo)
llmspeed convert --model-dir ./models/llama2-7b --output ./onnx/llama2-7b.onnx
Enter fullscreen mode Exit fullscreen mode

3.2. Lanzar la prueba en CPU

llmspeed run \
  --model ./onnx/llama2-7b.onnx \
  --device cpu \
  --prompt "¿Cuál es la capital de Francia?" \
  --repeat 100 \
  --output results/cpu_llama2.json
Enter fullscreen mode Exit fullscreen mode

3.3. Lanzar la prueba en GPU (RTX 4090)

llmspeed run \
  --model ./onnx/llama2-7b.onnx \
  --device cuda \
  --gpu-id 0 \
  --prompt "Explica la teoría de la relatividad en una frase." \
  --repeat 200 \
  --energy true \
  --output results/gpu_llama2.json
Enter fullscreen mode Exit fullscreen mode

Los archivos *.json contienen algo como:

{
  "model": "llama2-7b",
  "device": "cuda",
  "latency_ms": 28.4,
  "throughput_tps": 35.2,
  "energy_joules": 4123,
  "timestamp": "2026-10-17T14:32:10Z"
}
Enter fullscreen mode Exit fullscreen mode

4. Analizar los resultados

4.1. Script de visualización (Python)

import json, pandas as pd, matplotlib.pyplot as plt

files = ["results/cpu_llama2.json", "results/gpu_llama2.json"]
data = [json.load(open(f)) for f in files]
df = pd.DataFrame(data)

# Gráfica latencia vs dispositivo
df.plot.bar(x='device', y='latency_ms', title='Latencia media por token')
plt.ylabel('ms')
plt.show()

# Gráfica throughput vs dispositivo
df.plot.bar(x='device', y='throughput_tps', title='Throughput')
plt.ylabel('tokens/s')
plt.show()
Enter fullscreen mode Exit fullscreen mode

4.2. Tabla comparativa (ejemplo real)

Modelo Dispositivo Latencia (ms) Throughput (tokens / s) Energía (J)
Llama‑2‑7B CPU (Xeon 6248) 352 ± 12 2.8 ± 0.1 5 800
Llama‑2‑7B RTX 4090 27 ± 3 38 ± 2 4 120
Mistral‑7B AMD RX 7900 XT 31 ± 4 35 ± 1 3 950
Falcon‑40B Jetson Orin 115 ± 8 9 ± 0.5 1 200

5. Calcular el TCO (Coste Total de Propiedad)

Llmspeed incluye una hoja de cálculo interactiva (tco_template.xlsx). Sólo tienes que rellenar:

Parámetro Valor de ejemplo
Precio GPU (USD) 1 599
Precio CPU (USD) 2 500
Consumo medio (W) 350
Precio energía (€/kWh) 0,15
Horas de uso al mes 720

La hoja multiplica el consumo energético (J → kWh) por el precio de la electricidad y suma amortización del hardware (precio / vida útil en meses). El resultado es un coste mensual que puedes comparar directamente con el precio de una instancia en la nube (p. ej. p3.2xlarge en AWS).


6. Seguridad y privacidad al ejecutar LLMs en local

Riesgo Mitigación con Llmspeed
Filtrado de datos sensibles Llmspeed no envía datos a la nube; todo el proceso es offline.
Acceso no autorizado a la GPU La herramienta respeta los permisos del sistema operativo; solo usuarios con privilegios pueden lanzar benchmarks.
Modelos con licencia restrictiva Llmspeed no modifica el modelo; sigue las condiciones de la licencia original (ej. Llama‑2 Community).
Registro de métricas Los archivos JSON pueden encriptarse con gpg si se necesita confidencialidad.

7. Preguntas frecuentes (FAQ)

Pregunta Respuesta
¿Llmspeed solo funciona con modelos de Meta? No. Soporta cualquier modelo exportable a ONNX o disponible en Hugging Face (Llama‑2, Mistral, Falcon, StarCoder, etc.).
¿Necesito una GPU para usar Llmspeed? No. Funciona en CPU, aunque la latencia será mayor. Es útil para comparar configuraciones sin aceleración.
¿Cómo se mide el consumo energético? Con pyRAPL en CPU y NVML en GPU. El módulo es opcional y se activa con --energy true.
¿Puedo automatizar pruebas en varios servidores? Sí. Llmspeed ofrece un modo “client‑server” mediante HTTP; basta con lanzar llmspeed server en cada nodo y usar llmspeed client --target http://ip:port.
¿Hay soporte para AMD ROCm? Sí, instala onnxruntime-rocm y usa --device rocm.
¿Qué pasa si mi modelo no cabe en la GPU? Llmspeed detecta automáticamente la fragmentación de la memoria y cae a CPU off‑loading; el informe indicará cuántos tokens se ejecutaron en GPU vs CPU.

8. Conclusión

Llmspeed ha


Herramienta mencionada: Groq Cloud

Top comments (0)