⏱️ Lectura: 11 min

Correr un modelo de 26.000 millones de parámetros en una laptop de 8 GB suena a contradicción. La cuenta no cierra: ese tamaño de modelo suele exigir 50 GB o más de memoria si se carga completo. TurboFieldfare, publicado por el desarrollador drumih en GitHub, propone otra cuenta: no cargar el modelo completo nunca.

📑 En este artículo
  1. TL;DR
  2. Introducción
  3. Qué pasó
  4. Contexto e historia
  5. Detalles técnicos y rendimiento
  6. Cómo empezar
  7. Impacto y análisis
  8. Qué sigue
  9. Preguntas frecuentes
    1. ¿Qué necesito para correr TurboFieldfare?
    2. ¿Corre en Windows o Linux?
    3. ¿Cuánta RAM necesito realmente?
    4. ¿Puedo usarlo con imágenes o audio?
    5. ¿Es más rápido que cargar el modelo completo en RAM?
    6. ¿Puedo usar la app y el CLI al mismo tiempo?
  10. Referencias

El proyecto se llama TurboFieldfare y su objetivo declarado es correr Gemma 4 26B-A4B, la variante instruccional de mezcla de expertos de Google, en cualquier Mac con Apple Silicon. Incluye a los equipos de 8 GB de RAM, el segmento donde normalmente ni se intenta correr un modelo de este tamaño.

TL;DR

  • TurboFieldfare es un runtime en Swift y Metal que corre Gemma 4 26B-A4B con apenas unos 2 GB de RAM.
  • El modelo pesa 14,3 GB instalado en disco, pero solo carga en memoria un núcleo compartido de 1,35 GB más la caché KV.
  • Funciona en cualquier Mac con Apple Silicon, incluida una MacBook Air M2 con 8 GB de RAM.
  • En la M2 de 8 GB mide entre 5,1 y 6,3 tokens por segundo en decodificación.
  • En una Mac con M5 Pro de 24 GB alcanza entre 31 y 35 tokens por segundo.
  • Usa cuantización de 4 bits para pesos y expertos, y 8 bits para el router del modelo de mezcla de expertos.
  • Es un runtime hecho a medida para este modelo, no un envoltorio sobre MLX o llama.cpp.
  • El repositorio en GitHub ya acumula 1.500 estrellas y 47 forks.

Introducción

El proyecto TurboFieldfare demuestra que la mezcla de expertos (MoE) no solo sirve para escalar modelos, también sirve para achicar su huella de memoria en tiempo real.

Es un runtime nativo, no una librería genérica: está escrito específicamente para Gemma 4 26B-A4B, y no funciona como wrapper sobre MLX ni sobre llama.cpp.

Qué pasó

El repositorio drumih/turbo-fieldfare distribuye un runtime completo escrito en Swift y Metal, sin dependencias de MLX ni llama.cpp. Es específico para este modelo: no es una capa genérica que también sirva para otros pesos.

El paquete Swift expone seis productos distintos, cada uno con una función concreta: la librería del runtime, la app nativa de Mac, un servicio de decodificación de un solo uso, una interfaz de línea de comandos, un servidor compatible con la API de OpenAI, y un instalador que empaqueta el modelo.

Todos comparten el mismo directorio de modelo, con extensión .gturbo, pero solo un producto puede ser dueño del modelo y de Metal a la vez. Si la app está corriendo, el CLI no puede cargar el modelo al mismo tiempo.

Contexto e historia

Gemma 4 26B-A4B es un modelo de mezcla de expertos (MoE): de sus 26.000 millones de parámetros totales, solo unos 3.880 millones se activan por cada token generado. La arquitectura MoE separa el modelo en múltiples expertos y un router que decide cuáles usar en cada paso.

Esa separación es la que TurboFieldfare aprovecha. Si solo una fracción de los parámetros participa en cada token, no hace falta tener todos los parámetros en memoria al mismo tiempo. Basta con tener listo el núcleo compartido (embeddings, atención, capas comunes) y traer del disco los expertos puntuales que el router elija.

Esta idea de transmitir pesos desde el almacenamiento, en lugar de mantenerlos todos en RAM, no es exclusiva de este proyecto: es la misma lógica detrás de técnicas de offloading que distintos equipos vienen explorando para correr modelos grandes en hardware de consumo. TurboFieldfare la lleva al extremo con un runtime nativo en Metal en vez de depender de un framework genérico.

Diagrama conceptual de streaming de expertos desde SSD hacia RAM
Solo el núcleo compartido y la caché KV viven en RAM: los expertos llegan bajo demanda. Foto de Jackson Sophat en Unsplash

Detalles técnicos y rendimiento

Los números del proyecto son concretos. El modelo instalado ocupa 14,3 GB en disco, en su versión solo de texto. En memoria, TurboFieldfare mantiene apenas unos 2 GB: el núcleo compartido de 1,35 GB más una caché KV en FP16 con ventana de 4K tokens.

La cuantización es agresiva pero segmentada por rol. Los pesos usan el formato afín de 4 bits de MLX con grupo de tamaño 64, tanto para el núcleo compartido como para los expertos enrutados. El router, en cambio, se queda en 8 bits: es la pieza que decide qué experto activar, y un error ahí se propaga a toda la generación.

Los resultados medidos varían según el hardware. En una MacBook Air M2 de 8 GB, la decodificación mide entre 5,1 y 6,3 tokens por segundo. En una Mac con chip M5 Pro y 24 GB de RAM, sube a un rango de 31 a 35 tokens por segundo.

📌 Nota: el propio proyecto aclara que estos números son un punto de referencia, no un techo de rendimiento. El largo del prompt, el largo de la generación, el estado de la caché de páginas del sistema operativo y el hardware específico afectan el resultado.

Esta variabilidad es esperable en cualquier esquema de streaming desde disco: el primer token después de cargar un experto nuevo cuesta más que uno cuyo experto ya vive en la caché de páginas del sistema.

flowchart TD
    A["Prompt del usuario"] --> B["Nucleo compartido en RAM"]
    B --> C["Router MoE en 8 bits"]
    C --> D["Experto necesario en SSD"]
    D --> E["Cache de paginas del so"]
    E --> F["Token generado"]
    subgraph Memoria
    B
    end
    subgraph Disco
    D
    end

Producto SwiftQué haceCuándo usarlo
TurboFieldfareLibrería con el runtime y los kernels de MetalSi vas a integrar el motor en tu propia app
TurboFieldfareMacApp nativa de Mac para instalar y generar textoUso interactivo directo, sin escribir código
TurboFieldfareDecodeServiceProceso de un solo uso que posee el modelo y MetalLo invoca la app; no se usa manualmente
TurboFieldfareCLIChat de instrucciones y completado crudo por terminalScripts, pruebas rápidas, automatización
TurboFieldfareServerServidor local compatible con Chat Completions de OpenAISi ya tenés código que habla con la API de OpenAI
TurboFieldfareRepackInstalador que descarga y verifica el modeloPrimera instalación o para revalidar el paquete

Cómo empezar

TurboFieldfare es exclusivo de Apple Silicon: el paquete es arm64 puro y no corre en Windows ni en Linux, ni en Mac con procesador Intel. Requiere macOS 26 con Metal 4, Xcode 26 y Swift 6.2 o superior. No hay build alternativo para otras plataformas porque el runtime depende directamente de Metal.

Para instalarlo y compilarlo en una Mac con Apple Silicon:

git clone https://github.com/drumih/turbo-fieldfare.git
cd turbo-fieldfare
swift build -c release
.build/release/TurboFieldfareMac

La primera compilación descarga los paquetes de Swift que necesita el tokenizador. Conviene compilar el paquete completo para que la app y su servicio de decodificación queden disponibles juntos.

Al abrir la app por primera vez, hay que elegir Download para que TurboFieldfare traiga el modelo (unos 15 GB) desde el repositorio de Hugging Face indicado en el proyecto. El instalador nunca materializa el checkpoint original completo: transmite los rangos de bytes necesarios y los reempaqueta directamente en el formato .gturbo a medida que llegan.

Una vez instalado, con Load Model se carga el modelo en memoria y con Generate arranca la generación. Los valores por defecto son temperatura 0.2, Top-K 64 y Top-P 0.95; si necesitás salida determinística, hay que poner la temperatura en 0.

Para integrarlo en un script existente, el servidor local compatible con OpenAI es la vía más directa. Un ejemplo de llamada desde cualquier lenguaje que ya use la API de Chat Completions:

curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma-4-26b-a4b",
    "messages": [
      {"role": "user", "content": "Explica que es un modelo de mezcla de expertos en dos oraciones."}
    ],
    "temperature": 0.2
  }'

La respuesta llega en el mismo formato que devuelve la API de OpenAI, así que cualquier cliente existente para Chat Completions funciona sin modificaciones, apuntando al puerto local en vez del endpoint de OpenAI.

Para confirmar que el modelo está corriendo con el perfil de memoria reducido, alcanza con abrir el Monitor de Actividad de macOS y revisar la memoria residente del proceso TurboFieldfareDecodeService mientras generás texto: debería rondar los 2 GB y no acercarse a los 14,3 GB del modelo instalado en disco.

Impacto y análisis

Lo relevante de TurboFieldfare no es solo el número de RAM: es que corre un modelo de mezcla de expertos de 26B en el segmento más barato de Mac que Apple vende hoy, la MacBook Air M2 de 8 GB. Ese segmento suele quedar afuera de cualquier experimento serio con modelos grandes.

El costo de esa economía de memoria es previsible: el modelo depende del disco en cada paso donde necesita un experto que no esté ya en caché. En un SSD lento o con poco margen de caché de páginas, el rendimiento cae por debajo de lo medido en el proyecto.

También hay límites de alcance. TurboFieldfare es solo de texto: no procesa imágenes, audio ni video, aunque Gemma 4 en otras variantes sí sea multimodal. La app y el CLI tampoco ejecutan herramientas: solo el servidor loopback acepta declaraciones de funciones y devuelve las llamadas para que el cliente las autorice y ejecute, sin correrlas por su cuenta.

💡 Tip: si tu Mac tiene 8 GB de RAM y ya usás Chrome, Slack y un IDE al mismo tiempo, dejale a TurboFieldfare margen real: cerrá lo que no necesites antes de cargar el modelo, porque el sistema operativo también compite por esa misma caché de páginas que acelera la lectura de expertos.

El otro punto honesto es la advertencia del propio proyecto: el modelo puede repetirse o dar respuestas incorrectas, igual que cualquier LLM. Reducir la huella de memoria no cambia la calidad del modelo subyacente, solo dónde y cómo corre.

MacBook Air con chip M2 usada para correr un modelo de lenguaje local
La validación oficial del proyecto es justo una MacBook Air M2 de 8 GB. Foto de Hack Capital en Unsplash

Qué sigue

El proyecto mantiene un registro curado de experimentos con 103 resultados medidos sobre kernels, caché, entrada/salida, prefill y decodificación, pensado como referencia para quien quiera optimizar su propio fork. También publica una guía para que la comunidad aporte resultados de benchmark en otros modelos de Apple Silicon, algo clave porque el proyecto solo valida oficialmente contra un M2 de 8 GB y un M5 Pro de 24 GB.

El patrón de streaming de expertos desde SSD que usa TurboFieldfare es replicable para otros modelos MoE, siempre que alguien escriba el runtime específico. Ese es el trabajo pesado: no es un ajuste de configuración, es un motor de inferencia hecho a medida en Swift y Metal.

📖 Resumen en Telegram: Ver resumen

Probalo vos: cloná el repositorio con git clone https://github.com/drumih/turbo-fieldfare.git y corré swift build -c release en cualquier Mac con Apple Silicon para ver el modelo cargar en minutos.

Preguntas frecuentes

¿Qué necesito para correr TurboFieldfare?

Una Mac con Apple Silicon, macOS 26 con Metal 4, Xcode 26 y Swift 6.2 o superior, además de espacio libre para los cerca de 14,3 GB que ocupa el modelo instalado.

¿Corre en Windows o Linux?

No. El paquete es arm64 puro y depende de Metal, el framework gráfico de Apple, así que solo funciona en Mac con Apple Silicon.

¿Cuánta RAM necesito realmente?

El proyecto está validado en una MacBook Air M2 con 8 GB de RAM total, de los cuales TurboFieldfare usa unos 2 GB para el núcleo compartido y la caché KV.

¿Puedo usarlo con imágenes o audio?

No. TurboFieldfare es un runtime solo de texto: no acepta ni genera imágenes, audio ni video.

¿Es más rápido que cargar el modelo completo en RAM?

El proyecto no publica esa comparación directa. Lo que sí mide es el rendimiento del esquema de streaming: entre 5,1 y 6,3 tokens por segundo en un M2 de 8 GB, y entre 31 y 35 en un M5 Pro de 24 GB.

¿Puedo usar la app y el CLI al mismo tiempo?

No. Todos los productos comparten el mismo directorio de modelo .gturbo, pero solo uno puede ser dueño del modelo y de Metal en un momento dado.

Referencias

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Imagen destacada: Foto de Nikolai Chernichenko en Unsplash


Andrés Morales

Desarrollador e investigador en inteligencia artificial. Escribe sobre modelos de lenguaje, frameworks, herramientas para devs y lanzamientos open source. Cubre papers de ML, ecosistema de startups tech y tendencias de programación.

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.