PowerInfer
Inferencia LLM híbrida CPU/GPU que aprovecha la localidad de activación — ejecuta modelos de 70B parámetros en una sola GPU de consumo al dividir inteligentemente el cómputo entre CPU y GPU.
🌟 Más de 8.000 estrellas en GitHub | Desarrollado en SJTU IPADS | Licencia MIT
¿Qué es PowerInfer?
PowerInfer es un motor de inferencia de alto rendimiento para grandes modelos de lenguaje que aprovecha una idea clave: Los LLM muestran una fuerte localidad de activación — un pequeño subconjunto de neuronas ("neuronas calientes") se activan de forma constante en la mayoría de los pasos de inferencia, mientras que la mayoría permanece inactiva.
PowerInfer usa esta propiedad para:
Mantener las neuronas calientes en la GPU para un cómputo rápido
Descargar las neuronas frías a la CPU/RAM sin una pérdida significativa de calidad
Enrutamiento dinámico del cómputo entre CPU y GPU según los patrones de activación
El resultado: puedes ejecutar un modelo de 70B con solo 16 GB de VRAM en lugar de requerir más de 140 GB, todos en la GPU.
Capacidades clave
Compatibilidad con GPU de consumo — las RTX 3090/4090 pueden ejecutar modelos de 70B
Programación consciente de las neuronas — el predictor determina el enrutamiento entre CPU y GPU por inferencia
Degradación mínima de la calidad — mantiene más del 95% de la calidad de precisión completa
Compatibilidad con llama.cpp — soporte para el formato GGUF
Descarga de CPU consciente de NUMA — optimizado para CPUs con gran cantidad de núcleos
¿Por qué usar PowerInfer en Clore.ai?
Clore.ai alquila GPUs a un costo mucho menor que las alternativas en la nube. Con PowerInfer:
Ejecuta Llama 2 70B en una única RTX 4090 (24 GB de VRAM)
Reduce drásticamente los costos de alquiler de GPU frente a configuraciones multi-GPU
Procesa ventanas de contexto largas con la RAM de la CPU como desbordamiento
Ejecuta modelos que antes requerían costosas instancias A100/H100
Requisitos de hardware
7B
4GB
16GB
Excelente
13B
6GB
32GB
Muy bueno
34B
12GB
64GB
Bueno
70B
16GB
128GB
Moderada
Inicio rápido en Clore.ai
Paso 1: Elige tu servidor
En clore.ai mercado, filtra por:
GPU NVIDIA con 16 GB+ de VRAM (RTX 3090, RTX 4090, A100)
Alta cantidad de núcleos de CPU (16+ núcleos ideal)
64 GB+ de RAM para modelos de 70B, 32 GB para modelos de 13B
Paso 2: Crea una imagen Docker personalizada
PowerInfer requiere una configuración Docker personalizada. Usa este Dockerfile:
Compila y súbelo a Docker Hub o úsalo en línea con Clore.ai:
Paso 3: Despliega en Clore.ai
En tu pedido de Clore.ai, configura:
Imagen Docker:
yourname/powerinfer:latestPuertos:
22(SSH)Entorno:
NVIDIA_VISIBLE_DEVICES=all
Compilando PowerInfer desde el código fuente
Si prefieres compilar dentro del contenedor:
Verificar compilación
Obtener modelos
Descargar modelos GGUF
PowerInfer usa el formato GGUF (igual que llama.cpp):
Generar predictor de neuronas (requerido para PowerInfer)
PowerInfer necesita un predictor de activación de neuronas para cada modelo. Este es el diferenciador clave frente a llama.cpp:
Tiempo de generación del predictor: Crear un predictor de neuronas puede tardar entre 30 y 60 minutos según el tamaño del modelo. Esta es una operación única — el predictor se reutiliza en ejecuciones posteriores.
Ejecutando inferencia
Inferencia básica (sin predictor)
Para probar sin generar predictor (división estándar GPU/CPU):
Modo PowerInfer (con predictor)
Modo completo de PowerInfer con enrutamiento consciente de neuronas:
Modo chat interactivo
Modo servidor (API compatible con OpenAI)
Optimización de la división de capas en GPU
El --gpu-layers parámetro determina cuántas capas del transformer mantener en la GPU. Ajústalo según tu VRAM:
Guía de asignación de capas:
8GB
Todas (32)
20 capas
10 capas
4 capas
16GB
Todas (32)
Todas (40)
25 capas
10 capas
24GB
Todas (32)
Todas (40)
Todas (60)
20 capas
48GB
Todas (32)
Todas (40)
Todas (60)
Todas (80)
Benchmark de rendimiento
Comparación de rendimiento (Llama 2 70B, RTX 3090)
llama.cpp (solo GPU)
20/80
~4 t/s
llama.cpp (solo CPU)
0/80
~1 t/s
PowerInfer
20/80 + predictor
~12 t/s
3 veces más rápido que el llama.cpp estándar para inferencia de modelos grandes en GPUs de consumo es lo habitual con la programación consciente de neuronas de PowerInfer.
Ejecución como servicio
Crea un servicio systemd para ofrecer la API de forma persistente:
Uso de la API
Una vez que el servidor esté en funcionamiento, usa cualquier cliente compatible con OpenAI:
Solución de problemas
Memoria insuficiente en CUDA
Inferencia lenta en CPU
Fallo de compilación
Problema común: Si cmake no puede encontrar CUDA, establece la variable de entorno CUDA_HOME : export CUDA_HOME=/usr/local/cuda antes de ejecutar cmake.
Recomendaciones de GPU para Clore.ai
El diseño híbrido CPU/GPU de PowerInfer cambia la economía de ejecutar modelos grandes. Los servidores de Clore.ai con GPUs de alta VRAM Y CPUs rápidas son ideales.
RTX 3090
24 GB
$0.07–0.21/h
70B (con 64 GB+ de RAM)
~8–12 tok/s
RTX 4090
24 GB
$0.14–0.42/h
70B (descarga a CPU más rápida)
~12–18 tok/s
La CPU importa tanto como la GPU: PowerInfer descarga las neuronas "frías" a la CPU. Los servidores de Clore.ai con CPUs AMD EPYC o Intel Xeon (muchos núcleos, alto ancho de banda de memoria) superarán significativamente a las CPUs de consumo de un solo socket. Revisa las especificaciones del servidor antes de alquilarlo para trabajo con modelos grandes.
Cuello de botella del ancho de banda de memoria: Para modelos de 70B, el ancho de banda de la RAM de la CPU es el factor limitante durante el cálculo de neuronas frías. Los servidores con RAM DDR5 ECC o arquitecturas cercanas a HBM verán mejor rendimiento.
Recursos
🐙 GitHub: github.com/SJTU-IPADS/PowerInfer
📄 Artículo de investigación: PowerInfer: servicio rápido de grandes modelos de lenguaje con una GPU de consumo
🤗 Modelos GGUF: huggingface.co/TheBloke
🧩 Laboratorio SJTU IPADS: ipads.se.sjtu.edu.cn
Última actualización
¿Te fue útil?