Perplexity abrió Lily, un motor de inferencia escrito en Rust y Metal que ejecuta Qwen3.6-35B-A3B directamente en Apple Silicon, con mejoras promedio de 23% en prefill y 35% en decode frente a MLX-LM.
***
- Lily elimina PyTorch y MLX de la ruta de ejecución, y concentra sus kernels de Metal en un único modelo.
- En un M5 Max, el motor alcanzó 4.156 tokens por segundo en prefill y 170 en decode.
- El checkpoint de 4 bits pesa 19,4 GB, por lo que un Mac con 32 GB de memoria unificada es el mínimo realista.
🚀 Perplexity libera Lily, su motor de IA para Apple Silicon
Escrito en Rust y Metal, supera a MLX-LM un 23% en prefill y 35% en decode.
Ejecuta Qwen3.6-35B-A3B. Requiere al menos 32 GB de memoria unificada. pic.twitter.com/awF8O6xnt3
— Diario฿itcoin (@DiarioBitcoin) September 3, 2026
Un motor diseñado para una tarea específica
Perplexity liberó Lily, un motor de inferencia local escrito en Rust y Metal para ejecutar Qwen3.6-35B-A3B en equipos con Apple Silicon. La tecnología funciona como un runtime de proceso único: la capa en Rust carga el checkpoint y coordina el ciclo de generación, mientras una API de completado de chats compatible con OpenAI transmite los tokens y los kernels de Metal ejecutan el modelo.
La propuesta detrás de Lily no busca convertirse en un entorno universal para múltiples arquitecturas, sino explotar al máximo una combinación concreta de modelo y hardware. En la ruta de ejecución no intervienen PyTorch ni MLX, una decisión que permite a Perplexity controlar directamente la estructura del modelo, los planes de ejecución y la selección de kernels para la GPU de Apple.
La compañía desarrolló el motor como parte de Hybrid Compute, una función de Perplexity Computer que ya se encuentra en producción. Además, una demostración independiente está disponible en el repositorio público pplx-garden, donde Lily ofrece generación de texto greedy mediante un servidor de inferencia en Rust y Metal, con una API HTTP minimalista compatible con OpenAI.
La especialización tiene un costo evidente: Lily solo admite Qwen3.6-35B-A3B y una familia de hardware. Sin embargo, Perplexity sostiene que esa limitación permite evitar capas de abstracción y optimizar los puntos que más pesan en la inferencia, especialmente el enrutamiento de expertos durante el prefill y el movimiento de datos durante el decode.
Qwen3.6 combina tres cargas de trabajo
Qwen3.6-35B-A3B almacena 35.000 millones de parámetros, aunque activa aproximadamente 3.000 millones por token gracias a su arquitectura de mezcla de expertos. Un router puntúa 256 expertos y selecciona ocho para cada token, mientras un experto compartido procesa todos los tokens, lo que genera patrones de carga desiguales entre las distintas partes del modelo.
El modelo también combina 10 capas de atención completa con grouped-query attention, o GQA, y 30 capas de Gated DeltaNet, una estructura recurrente de tamaño fijo. En la configuración descrita, la atención utiliza 16 cabezas de consulta y dos cabezas KV, una distribución que exige administrar de manera distinta el caché creciente de atención y el estado recurrente.
Estas características producen tres problemas técnicos diferenciados. El motor debe repartir grupos de expertos con tamaños variables, leer un caché KV que aumenta a medida que crece el contexto y conservar una recurrencia de dimensiones fijas, todo ello sin generar sincronizaciones innecesarias entre la CPU y la GPU.
El checkpoint emplea cuantización afín de 4 bits por grupos de 64 pesos, con una escala y un sesgo en bfloat16 para cada grupo. Así, unos 70 GB de pesos en bfloat16 quedan comprimidos en un archivo de 19,4 GB, aunque las operaciones de tensores de Metal 4 requieren reconstruir esos valores antes de consumirlos.
Las optimizaciones en el prefill
Lily reconstruye los pesos por bloques dentro del GEMM agrupado, en lugar de expandir todo el modelo y enviarlo a la memoria unificada. Los valores descomprimidos permanecen en la memoria del grupo de hilos, mientras la acumulación se realiza en FP32, con lo que el arreglo completo de pesos reconstruidos nunca llega a ocupar espacio adicional en la memoria del sistema.
Según la ablación presentada por Perplexity, esa descuantización fusionada elevó el rendimiento de prefill de extremo a extremo en 77,4% con un prompt de 512 tokens. Los GEMM de expertos representan aproximadamente 90% del tiempo de prefill, por lo que reducir las transferencias y mantener los pesos empaquetados ataca el principal cuello de botella de esta etapa.
El motor también mantiene dentro de un único command buffer de la GPU el histograma de enrutamiento, el prefix scan, el scatter y el mapa de bloques. En la medición de la empresa, esa estrategia añadió 89% de rendimiento con 512 tokens al eliminar la sincronización con la CPU que ocurría dentro de cada capa de mezcla de expertos.
Perplexity reportó otras mejoras más específicas, como un aumento de 13,2% a 2.000 tokens al pasar de bloques de 16 filas a bloques de 32 filas con cuatro simdgroups. Un scan de Gated DeltaNet residente en registros aportó 5,6% adicional, mientras que los prompts largos se procesan en fragmentos acotados para evitar que las activaciones temporales compitan con los pesos y el caché por la memoria disponible.
El decode busca mover menos datos
En decode con batch 1, la reutilización de los pesos es limitada y el ancho de banda se convierte en el techo de rendimiento. Un paso registrado previamente lanzaba 795 kernels organizados en 555 etapas secuenciales, una estructura que Lily reemplaza mediante un pase concurrente de Metal capaz de solapar kernels independientes cuando sus dependencias lo permiten.
El token seleccionado se escribe directamente en la ranura de entrada del siguiente paso que permanece en la GPU. Con ello, el motor elimina un viaje de ida y vuelta a la CPU por cada token generado, y además fusiona cuatro cadenas de kernels para conservar los resultados intermedios en los registros en lugar de trasladarlos repetidamente entre niveles de memoria.
Las lecturas coalescidas del caché elevaron el ancho de banda de las claves de 33,8 a 47,9 GB por segundo, mientras que el de los valores aumentó de 42,0 a 61,8 GB por segundo. El empaquetado GQA, que permite que cuatro cabezas de consulta compartan un grupo de hilos y carguen cada fila KV una sola vez, mejoró el decode en 23,8% con un contexto de 32.000 tokens.
La disposición de atención con bloques fijos también produjo ganancias crecientes conforme aumentó el contexto. Perplexity registró mejoras de 7,7% a 32.000 tokens, 27,4% a 64.000 y 40,2% a 128.000, resultados que muestran por qué la gestión del caché puede ser tan importante como la potencia de cálculo al generar respuestas largas.
Resultados y requisitos para usarlo
En un M5 Max con CPU de 40 núcleos y 128 GB de memoria, Lily fue comparado con la ruta de generación directa más rápida de MLX-LM usando bytes idénticos del checkpoint de 4 bits. A lo largo de 10 longitudes de contexto, desde 256 hasta 128.000 tokens, el motor promedió 4.156 tokens por segundo en prefill frente a 3.388, equivalente a 1,23 veces el rendimiento.
La ventaja fue mayor durante el decode, con un promedio de 170,0 tokens por segundo frente a 126,4 de MLX-LM, o 1,35 veces el resultado de referencia. En una prueba con un prompt de 4.000 tokens y 4.000 tokens de contexto, Lily alcanzó 5.749,9 tokens por segundo en prefill y 186,6 en decode, frente a 4.737,5 y 140,9, respectivamente.
El motor fue más rápido en cada punto registrado, con ventajas que oscilaron entre 1,12 y 1,42 veces en prefill y entre 1,31 y 1,37 veces en decode. Una verificación teacher-forced sobre 192 posiciones situó la perplejidad de Lily apenas 0,04% por encima, mientras que el token mejor clasificado coincidió con el de la referencia en 96,35% de las posiciones.
El checkpoint de 4 bits pesa 19,4 GB, por lo que un equipo Apple Silicon con 32 GB o más de memoria unificada constituye el mínimo realista para una instalación independiente. El producto Hybrid Compute de Perplexity indica macOS 15 o posterior y 24 GB como mínimo, aunque recomienda 32 GB para obtener mejores resultados, una diferencia que refleja el margen adicional necesario para ejecutar el modelo junto con el sistema y el contexto.
La publicación de Lily deja una conclusión relevante para la inferencia local: un runtime menos general puede superar a una pila reutilizable cuando conoce de antemano la arquitectura, el patrón de memoria y el dispositivo de destino. Su alcance limitado impide tratarlo como reemplazo universal de MLX-LM, pero ofrece un caso concreto de cómo Rust, Metal y la ejecución residente en GPU pueden reducir los costos de mover datos durante la generación.
Imagen original de DiarioBitcoin, creada con inteligencia artificial, de uso libre, licenciada bajo Dominio Público.
Este artículo fue escrito por un redactor de contenido de IA y revisado por un editor humano para garantizar calidad y precisión.
ADVERTENCIA: DiarioBitcoin ofrece contenido informativo y educativo sobre diversos temas, incluyendo criptomonedas, IA, tecnología y regulaciones. No brindamos asesoramiento financiero. Las inversiones en criptoactivos son de alto riesgo y pueden no ser adecuadas para todos. Investigue, consulte a un experto y verifique la legislación aplicable antes de invertir. Podría perder todo su capital.
Suscríbete a nuestro boletín
Artículos Relacionados
Estados Unidos
El Pentágono compromete hasta USD $131.230 millones para modernizar el F-15
Empresas
Nvidia proyecta un salto de 70% en ingresos y SpaceX sería clave para el auge de la IA
Blockchain
BIS prueba XRP Ledger para verificar datos oficiales sin alterar su contenido
IA