- Benchmark de FreeToken: Mide el rendimiento del servicio local para modelos grandes de mezcla de expertos.
- Idea principal: Combina la GPU, la CPU, la memoria del sistema y el ancho de banda PCIe en una sola plataforma de inferencia.
- Mejor caso de uso: Ejecutar modelos MoE de pesos abiertos que superan la memoria GPU disponible.
- Proceso de configuración: Instalar el runtime, confirmar los archivos del modelo, iniciar un endpoint local y probar las solicitudes.
- Ventaja principal: La caché adaptativa y la ejecución CPU-GPU mejoran la consistencia en hardware de consumo.
Descripción general del benchmark de FreeToken
El benchmark de FreeToken evalúa un sistema de servicio nativo para edge diseñado para modelos grandes de mezcla de expertos, o MoE. En lugar de exigir que el modelo completo quepa en la VRAM, FreeToken mantiene todo el conjunto de expertos en la memoria del host y utiliza la GPU como caché elástica y recurso de ejecución.
El sistema está orientado a la inferencia local en equipos con distintas capacidades de GPU, enlaces PCIe, anchos de banda de CPU y presupuestos de memoria. Su benchmark se centra en el rendimiento de decodificación, el tiempo hasta el primer token, las cargas de trabajo de agentes con varios turnos y el rendimiento en varias clases de GPU de consumo.
Aspectos destacados del video:
- FreeToken combina la VRAM de la GPU, el procesamiento de la CPU y la RAM del sistema para servir modelos localmente.
- La aplicación de escritorio admite flujos de trabajo en Windows, Linux y macOS.
- La interfaz de línea de comandos puede iniciar un modelo y exponer un endpoint local compatible con OpenAI.
- Las estadísticas del runtime incluyen la velocidad de tokens, los tokens procesados, las solicitudes y la actividad de la caché.
| Área del benchmark | Qué mide | Por qué importa |
|---|---|---|
| Rendimiento de decodificación | Tokens generados por segundo | Muestra la velocidad de generación sostenida |
| TTFT | Tiempo hasta el primer token | Indica la capacidad de respuesta del prompt y del inicio |
| Caché de expertos | Expertos enrutados que se conservan en la VRAM | Revela la eficacia con la que se utiliza la memoria GPU limitada |
| Escalado entre hardware | Resultados en distintas configuraciones de GPU y host | Muestra la portabilidad más allá de una única máquina de prueba |
Trata el rendimiento y el TTFT como métricas independientes. Un sistema puede generar tokens rápidamente después del inicio y, aun así, producir un retraso incómodo hasta el primer token en prompts largos.
Cómo sirve FreeToken los modelos MoE grandes
Los modelos MoE contienen muchos expertos, pero activan solo un pequeño subconjunto para cada token. Esto reduce el cálculo activo, pero la colección completa de expertos puede seguir siendo mucho mayor que la VRAM de una GPU de consumo. FreeToken aborda esta diferencia mediante una jerarquía de memoria de dos niveles.
El conjunto de expertos residente en la CPU almacena todos los pesos de los expertos enrutados y actúa como fuente de verdad. Los pesos del modelo que no pertenecen a expertos permanecen en la GPU, mientras que la VRAM restante se divide entre la caché KV y una caché elástica de expertos.
| Capa del runtime | Función principal | Comportamiento adaptativo |
|---|---|---|
| Memoria GPU | Almacena los pesos no expertos, la caché KV y los expertos seleccionados | La capacidad de la caché puede cambiar durante el runtime |
| Memoria del sistema | Contiene el conjunto completo de expertos | Sigue disponible incluso cuando la VRAM es limitada |
| Enlace PCIe | Mueve los expertos seleccionados a la caché de la GPU | El trabajo de transferencia se equilibra con la ejecución en la CPU |
| CPU | Ejecuta directamente algunos fallos de caché | Utiliza el ancho de banda medido del host en lugar de una asignación fija |
Durante el prellenado, FreeToken utiliza doble búfer para la capa completa. Mientras la GPU calcula una capa, los expertos de la siguiente pueden moverse a través de PCIe. Esto solapa la transferencia y el cálculo en lugar de esperar a que termine cada movimiento de expertos antes de continuar con la ejecución.
Durante la decodificación, el sistema utiliza una caché de expertos compartida con política de menos recientemente usado. Es más probable que los expertos enrutados recientemente permanezcan en la VRAM, mientras que los fallos se dividen entre el llenado de la caché de la GPU y la ejecución directa en la CPU.
El artículo describe este equilibrio mediante la política q-star. El runtime perfila el ancho de banda de los expertos en el host y el ancho de banda de transferencia PCIe, y luego utiliza esas mediciones para decidir cuántos expertos ausentes deben moverse a la GPU y cuántos deben ejecutarse en la CPU.
Caché elástica
La capacidad de expertos de la GPU puede reconstruirse en puntos seguros del runtime sin volver a cargar el conjunto de modelos residente en el host.
Estado semántico
Los puntos de control en los límites del razonamiento, las llamadas a herramientas y las conversaciones reducen los recálculos innecesarios durante las sesiones de agentes.
Fallos adaptativos
Los fallos de caché pueden convertirse en trabajo de la GPU o en trabajo directo de la CPU, según el ancho de banda medido.
Compatibilidad con grafos
Los datos de control residentes en el dispositivo mantienen las decisiones dependientes del enrutamiento compatibles con la ejecución CUDA capturada.
Más memoria del sistema no crea automáticamente un mayor rendimiento. El ancho de banda PCIe, el ancho de banda de la memoria del host, la velocidad de ejecución de la CPU y la disposición del modelo influyen en el resultado final.
Guía de configuración de FreeToken
FreeToken puede utilizarse mediante una aplicación de escritorio o un flujo de trabajo de línea de comandos. La CLI resulta útil para realizar pruebas repetibles porque expone de forma más directa la ruta del modelo, los argumentos de inicio, el comportamiento del endpoint y la salida del runtime.
El flujo de configuración siguiente sigue el patrón de inicio rápido documentado. Confirma que los archivos del modelo ya estén presentes en la ruta proporcionada al comando de inicio; el runtime no puede servir un modelo que falte en esa ubicación.
Elige el runtime
Selecciona la aplicación de escritorio para disfrutar de un flujo guiado, o utiliza la CLI para crear scripts y automatizar benchmarks. Según los materiales publicados del proyecto, las versiones de escritorio disponibles cubren Windows, Linux y macOS.
Instala el paquete
Instala FreeToken con el comando basado en UV recomendado por el proyecto: uv pip install freetoken. Si UV no está instalado, añádelo primero y asegúrate de que su ejecutable esté disponible en la ruta del sistema.
Confirma la ruta del modelo
Descarga o prepara un modelo local compatible y verifica que el directorio proporcionado contenga los archivos necesarios. Una instalación válida por sí sola no garantiza que el modelo pueda iniciarse.
Inicia el servidor
Inicia el runtime con el argumento de modelo documentado, como freetoken start --model <model-name-or-path>. Utiliza la sintaxis exacta compatible con la versión instalada.
Comprueba el endpoint
Consulta el endpoint local compatible con OpenAI, inspecciona el modelo servido y envía una solicitud de prueba de chat-completion antes de comenzar un benchmark más largo.
| Punto de control de configuración | Resultado esperado | Enfoque de solución de problemas |
|---|---|---|
| El comando UV funciona | Comienza la instalación del paquete | Comprueba la instalación y la configuración de PATH |
| Las dependencias terminan | El runtime queda disponible | Revisa los errores de Python y de los paquetes |
| La ruta del modelo se resuelve | Se detectan los archivos del modelo | Confirma el directorio y los permisos de los archivos |
| El servidor se inicia | El servicio local queda a la escucha | Comprueba la compatibilidad del modelo y la memoria |
| La solicitud de prueba tiene éxito | Se devuelve una respuesta de finalización | Verifica el endpoint, el nombre del modelo y el formato de la solicitud |
La consola del runtime puede mostrar información operativa útil, como la velocidad en tokens por segundo, el número de solicitudes, el total de tokens procesados y la información de aciertos de caché. La disponibilidad de VRAM y RAM del sistema también es importante para decidir si una configuración de modelo es adecuada.
Ejecuta una solicitud corta antes de realizar una evaluación larga. Esto confirma a la vez la ruta del modelo, el nombre del endpoint, la asignación de memoria y la ruta básica de ejecución CPU-GPU.
Resultados del benchmark de FreeToken
La evaluación publicada prueba FreeToken con cargas de trabajo de agentes, en lugar de basarse únicamente en prompts cortos y aislados. Los escenarios incluyen razonamiento matemático, tareas de programación con uso de herramientas, solicitudes nativas de agentes de programación y un flujo de trabajo de correo electrónico y calendario.
El benchmark compara FreeToken con sistemas de servicio edge como llama.cpp, Ollama y KTransformers. La evaluación utiliza varias configuraciones de GPU y host, incluidas RTX 3090, RTX 4090, RTX 5090, un portátil con RTX 4060 y una estación de trabajo RTX PRO 6000 Blackwell.
| Modelo | Escala del modelo | Parámetros activos | Nota de evaluación |
|---|---|---|---|
| DeepSeek-V4-Flash | 284B | 13B | Los expertos enrutados utilizan una implementación MXFP4 |
| Qwen3.6-35B-A3B | 35B | 3B | Probado en BF16, con una versión para portátil en NVFP4 |
| GLM-5.2 | 753B | 40B | Demostración a escala frontier en RTX PRO 6000 |
En la evaluación con RTX 5090, FreeToken registra entre 77 y 83 tokens por segundo en Qwen3.6 y entre 22 y 25 tokens por segundo en DeepSeek-V4-Flash. Estas cifras representan las cargas de trabajo y configuraciones probadas, no una garantía de velocidad universal para todos los sistemas.
| Resultado de la carga de trabajo | Resultado de FreeToken informado | Comparación descrita en la evaluación |
|---|---|---|
| Decodificación de Qwen3.6 | 77–83 tok/s | Entre 1,8 y 2,3 veces la línea base más potente según la carga de trabajo |
| Decodificación de DeepSeek-V4-Flash | 22–25 tok/s | Entre 1,5 y 1,9 veces la línea base más potente según la carga de trabajo |
| Portátil con RTX 4060 | 39,3 tok/s en Qwen3.6 NVFP4 | 92 % de la velocidad probada de la RTX 4090 |
| RTX PRO 6000 con GLM-5.2 | 14,9 tok/s | Comparado con 7,3 tok/s de llama.cpp |
| TTFT de varios turnos | El peor turno estuvo por debajo de 44 segundos en las celdas probadas | Las líneas base superaron los 150 segundos en al menos una celda |
El benchmark también informa de que la política de caché de FreeToken redujo los fallos de expertos durante la decodificación en comparación con la asignación estática o basada en el prellenado. En las capacidades de RTX 5090 probadas, las tasas de fallos registradas fueron del 16 % para Qwen3.6 y del 39 % para DeepSeek-V4-Flash, frente a tasas superiores en las políticas de línea base evaluadas.
Para obtener más detalles técnicos, consulta el artículo de investigación de FreeToken, que explica la política de ejecución adaptada al ancho de banda, la caché consciente de la semántica, la implementación y la metodología de evaluación.
Los resultados más sólidos dependen del formato del modelo, la capacidad de la caché, el ancho de banda del host y la forma de la carga de trabajo. Utiliza las cifras publicadas como puntos de referencia, no como un rendimiento local garantizado.
Lista de comprobación para pruebas prácticas
Un benchmark local útil debe registrar más que la velocidad máxima de tokens. Prueba el mismo modelo, formato de prompt, cuantización, longitud de contexto y carga de trabajo en cada configuración. Para el servicio de agentes, conserva el contexto de varios turnos y el comportamiento de las llamadas a herramientas, ya que el prellenado repetido puede revelar diferencias que las pruebas de un solo turno ocultan.
Preparación del benchmark:
- Verifica la ruta del modelo y confirma el formato de modelo previsto
- Registra la VRAM de la GPU, la memoria del sistema, el tipo de CPU y la configuración del enlace PCIe
- Ejecuta una solicitud corta de calentamiento antes de recopilar mediciones
- Mide tanto el rendimiento de decodificación como el tiempo hasta el primer token
- Repite las cargas de trabajo de varios turnos o con uso de herramientas al evaluar el rendimiento del agente
| Variable de prueba | Mantener constante | Registrar por separado |
|---|---|---|
| Modelo | Mismo checkpoint y precisión | Formato del archivo y cuantización |
| Prompt | Mismo texto y presupuesto de tokens | Longitud del contexto y número de turnos |
| Runtime | Mismas opciones de inicio | Tamaño de la caché y número de hilos de la CPU |
| Hardware | Misma máquina para comparaciones directas | Aplicaciones en segundo plano y presión de memoria |
| Métricas | Mismo intervalo de medición | Media, cola y solicitudes fallidas |
Utiliza la consola del runtime para supervisar la velocidad de tokens, el total de solicitudes, los tokens procesados y el comportamiento de la caché. Si el rendimiento cambia entre ejecuciones, comprueba si otra aplicación ha consumido VRAM o si ha variado el ancho de banda de memoria disponible del host.
Una secuencia de pruebas práctica es:
- Comienza con un prompt corto para validar la corrección.
- Mide una generación de un solo turno para establecer la velocidad de decodificación de referencia.
- Añade un prompt largo para observar el prellenado y el TTFT.
- Ejecuta varios turnos reutilizando el contexto.
- Repite la prueba con actividad de GPU en segundo plano si quieres estudiar el comportamiento de los recursos elásticos.
Da prioridad al TTFT de cola para los agentes interactivos. Un tiempo de respuesta estable entre turnos puede ser más valioso que una tasa máxima superior en un prompt corto.
Preguntas frecuentes sobre FreeToken
Q: ¿Qué es el benchmark de FreeToken?
Es una evaluación de FreeToken, un sistema de servicio nativo para edge destinado a modelos MoE grandes. El benchmark mide el rendimiento de decodificación, el tiempo hasta el primer token, el comportamiento de la caché de expertos y el rendimiento en hardware de consumo.
Q: ¿FreeToken requiere que el modelo completo quepa en la VRAM?
No. FreeToken mantiene todo el conjunto de expertos en la memoria del host y utiliza la memoria GPU disponible como una caché elástica. El modelo sigue necesitando suficiente memoria del sistema, almacenamiento y compatibilidad con la ejecución.
Q: ¿Cómo gestiona FreeToken los fallos de caché?
El runtime puede transferir determinados expertos ausentes a la GPU o ejecutar directamente otros fallos en la CPU. Una política basada en el ancho de banda medido determina el equilibrio para la máquina utilizada.
Q: ¿Puedo utilizar FreeToken mediante una API local?
Sí. El flujo documentado expone un endpoint local compatible con OpenAI después de iniciar el servidor del modelo, lo que permite a un cliente compatible o a un agente de programación enviar solicitudes de chat-completion.
FreeToken se entiende mejor como un sistema local para servir modelos MoE, no como un juego o una plataforma de código para contenidos. Su valor reside en coordinar la memoria, el ancho de banda, la caché y la ejecución.