30 puntos por GN⁺ 2025-08-13 | Aún no hay comentarios. | Compartir por WhatsApp
  • Aprovechando la opción --cpu-moe de llama-cpp, las capas de expertos MOE se procesan en la CPU y solo las capas de atención se descargan a la GPU, logrando un rendimiento rápido de prefill con 5~8 GB de VRAM
  • En la GPU solo residen los parámetros no expertos, como caché KV, pesos y activaciones de Attention, tablas de enrutamiento, LayerNorm, etc., por lo que el uso de memoria es bajo
  • Incluso con una GPU del nivel de una RTX 3060Ti y 64 GB~96 GB de RAM del sistema, es posible ejecutar con soltura el modelo 120B, y el mejor rendimiento se obtiene con GPUs con soporte BF16 (RTX 3000+)
  • Con 5 GB de VRAM registró un rendimiento de 8.15 ms por token (122.66 tokens/s), y con 8 GB de VRAM mejoró hasta 7.44 ms por token (134.44 tokens/s)
  • La arquitectura 120B está diseñada para hardware de consumo, por lo que puede ejecutarse a alta velocidad incluso en entornos con recursos de GPU limitados

Estructura de CPU-MOE y offloading a GPU

  • Con la opción --cpu-moe, las capas de expertos (MOE) se procesan por completo en la CPU
    • Ejemplo: --n-cpu-moe 36 → los 36 bloques MOE se ejecutan completamente en CPU
    • Si hace falta, se puede mover parte del MOE a la GPU para ajustar el rendimiento
  • En la GPU solo se mantienen los siguientes elementos para ahorrar VRAM
    • Caché KV (secuencia)
    • Pesos y activaciones de Attention
    • Tablas de enrutamiento
    • LayerNorm y otros parámetros no expertos
  • Como los pesos MOE no residen en la GPU, no existe la carga de los grandes parámetros MLP

Requisitos de memoria y hardware

  • GPU: 5~8 GB de VRAM son suficientes (por ejemplo, RTX 3060Ti)
  • La GPU ofrece el mejor resultado si soporta BF16 (serie RTX 3000 o superior)
  • RAM del sistema: mínimo 64 GB, idealmente 96 GB
    • Aprovechando mmap de Linux, aunque el modelo completo no quepa en memoria, las capas de expertos “calientes” se mantienen cargadas

Métricas de rendimiento

Entorno con 5 GB de VRAM

  • Procesamiento del prompt: 8.15 ms/token (122.66 tokens/s)
  • Inferencia: 55.44 ms/token (18.04 tokens/s)

Entorno con 8 GB de VRAM (--n-cpu-moe 36, el resto en GPU)

  • Procesamiento del prompt: 7.44 ms/token (134.44 tokens/s)
  • Inferencia: 39.03 ms/token (25.62 tokens/s)

Entorno con 22 GB de VRAM (parte del MOE en GPU)

  • Procesamiento del prompt: 6.13 ms/token (163.01 tokens/s)
  • Inferencia: 32.45 ms/token (30.82 tokens/s)

Conclusión

  • El diseño de GPT-OSS-120B está optimizado para ejecutar modelos de gran escala a alta velocidad incluso en hardware de consumo
  • Gracias a la estructura CPU-MOE, que reduce el uso de VRAM sin sacrificar velocidad, resulta especialmente adecuado para entornos con recursos de GPU limitados

Preguntas clave y respuestas

P1. ¿Cuánta VRAM se usa realmente con esta configuración?

  • Autor original: alrededor de 5 GB de VRAM cuando todo el MOE se ejecuta en CPU, subiendo solo las capas de atención a la GPU
  • Explicación adicional: en la GPU solo residen la caché KV, los pesos y activaciones de Attention, las tablas de enrutamiento y LayerNorm

P2. ¿Cuál es la RAM mínima necesaria?

  • Autor original: mínimo 64 GB, idealmente se recomiendan 96 GB
  • Motivo: mmap de Linux mantiene en memoria las capas de expertos “calientes”, permitiendo acceso rápido sin cargar el modelo completo

P3. ¿Mover algunas capas MOE a la GPU acelera mucho el rendimiento?

  • Autor original: puede acelerar un poco, pero no hay una diferencia grande
  • Ejemplo:
    • Todo el MOE en CPU: prompt 134 tokens/s, inferencia 25 tokens/s
    • 8 MOE en GPU: prompt 163 tokens/s, inferencia 30 tokens/s
    • El uso de VRAM aumenta a 22 GB

P4. ¿Qué GPU es adecuada?

  • Autor original: con una RTX 3060Ti o superior es suficiente; se recomienda soporte BF16 (RTX 3000+)
  • Motivo: todas las capas fuera del MOE funcionan en BF16

P5. ¿Cómo se configura el comando?

  • Autor original: se proporciona un ejemplo basado en PR #15157
    ~/build/llama.cpp/build-cuda/bin/llama-server \  
        -m $LLAMA_MODEL_DIR/gpt-oss-120b-mxfp4-00001-of-00003.gguf \  
        --n-cpu-moe 36 \  
        --n-gpu-layers 999 \  
        -c 0 -fa \  
        --jinja --reasoning-format none \  
        --host 0.0.0.0 --port 8502 --api-key "dummy"  
    

Aún no hay comentarios.

Aún no hay comentarios.