- En el iPhone 16 Pro Max, al ejecutar un LLM con MLX se producen salidas numéricas incorrectas, mientras que el mismo código funciona con normalidad en un iPhone 15 Pro y una MacBook Pro
- Los valores de los tensores difieren por más de una cifra, y se confirmó un fenómeno en el que el resultado se distorsiona incluso con la misma entrada
- Se estima que la causa del problema es un defecto de hardware en el Neural Engine o en la pila de operaciones de ML basada en Metal
- Las funciones de Apple Intelligence también mostraron inestabilidad similar, como fallas al descargar, lo que plantea una posible relación
- El desarrollador enfatiza, a partir de este caso, que al depurar también hay que considerar problemas de hardware físico
Se detecta un error al ejecutar MLX LLM
- En el iPhone 16 Pro Max, al ejecutar un LLM basado en MLX se genera una salida sin sentido (gibberish)
- El mismo código funciona normalmente en un iPhone 15 Pro y una MacBook Pro
- El uso de CPU sube al 100% y, como no se genera el token “stop”, el estado de salida infinita continúa
- Aun usando el mismo modelo y prompt, los valores de salida de los tensores se vuelven anormalmente grandes
- En el iPhone 15 Pro:
[53.875, 62.5625, -187.75, ...]
- En el iPhone 16 Pro Max:
[191.5, 23.625, 173.75, ..., 1298, -147.25, -162.5]
- Los valores de entrada eran los mismos, pero en la etapa de cálculo intermedio los números se distorsionaban bruscamente
Problemas con las funciones de Apple Intelligence
- Se intentó implementar una función de clasificación de gastos usando la API de Apple Intelligence, pero no se descargó el soporte del modelo
- Aunque se cambiaron varias veces los ajustes, la función no se activó
- En los foros de la comunidad de Apple también se reportó que muchos usuarios sufrían el mismo problema (12 páginas de reportes)
- Debido a esto, se abandonó el acceso a Apple Intelligence y se cambió a un enfoque basado en MLX
Proceso de depuración y rastreo de la causa
- Se colocó un breakpoint en la implementación del modelo Gemma de MLX para rastrear los valores de los tensores en cada capa
- Los valores de entrada eran idénticos en ambos dispositivos, pero en el iPhone 16 Pro Max los números empezaban a crecer de forma anormal desde una etapa intermedia
- En la Mac también se confirmó el mismo resultado correcto que en el iPhone 15 Pro
- Con esto, se concluyó que se trataba de un problema de hardware y no del código ni del modelo
Posible defecto de hardware
- Existe la posibilidad de que haya errores de cálculo en el Neural Engine del chip A18 del iPhone 16 Pro Max o en la ruta de operaciones de ML basada en Metal
- MLX compila las operaciones de tensores mediante Metal, por lo que un defecto en esa pila podría provocar la distorsión de los resultados
- También se menciona la posibilidad de que tenga la misma causa que el problema de Apple Intelligence, aunque no hay pruebas claras
Conclusión y lecciones
- Se confirmó que el iPhone 16 Pro Max con el problema era una unidad con defecto de hardware
- Después de cambiarlo por un iPhone 17 Pro Max, todas las funciones operaron normalmente
- A partir de esta experiencia, el desarrollador enfatiza que al depurar se deben considerar no solo los problemas de software, sino también los de hardware físico
- Tres lecciones:
- Un error al ejecutar un LLM no siempre es un problema de código
- La importancia de las pruebas comparativas en el mismo entorno
- Incluso hardware costoso puede no garantizar la precisión de los cálculos de ML
1 comentarios
Opiniones de Hacker News
Es casi tan gracioso como preguntar algo como “¿qué da luna más sol?”
Pero este fenómeno en sí es distinto. La API de operaciones numéricas de Apple está dando resultados inconsistentes en algunos dispositivos. Eso es algo a lo que Apple debería prestar atención
Porque si sumas sol(日) y luna(月), obtienes 明 (enlace a Wiktionary)
También podría salir una respuesta como “luna llena”, pero no parece haber una respuesta clara y determinista
Haciendo respaldo, por supuesto, y si se puede usando un plan de iCloud+. Para este tipo de problemas, suele ser la solución más simple
O sea, parece que ese iPhone 16 Pro Max tenía un defecto de hardware
Por ejemplo, eso también se menciona en la documentación de Intel
Aun así, sorprende que el LLM no funcione en absoluto en el iPhone 16. Los LLM normalmente suelen tolerar bastante bien la cuantización (quantization)
Al principio quise descartar el problema por esa razón,
pero me pareció raro que todos los demás dispositivos de Apple dieran el mismo resultado, y que solo el LLM de Apple fallara en este equipo
Más que un problema fundamental, esto parece una falla inesperada. No está bien que Apple haya enviado un dispositivo en ese estado
Cuando hago matemáticas en mi teléfono, uso el emulador de HP Prime
Otras calculadoras que uso mucho son free42 y plus42 (enlace)
Como herramienta CAS, MathStudio es excelente (mathstud.io)
También corre en el navegador, pero además tiene app móvil. Se siente como una especie de Wolfram Alpha autoalojado
Sigue siendo intuitiva y rápida
La dejé configurada para abrirse directo desde el botón del Control Center
Mi queja es que, aunque la pantalla es así de grande, no puedes desplazarte para ver el historial de cálculos anteriores
Ya no quiero seguir viendo una UI que parece una copia de una calculadora de 4 funciones de los años 90
MLX también puede correr en CPU, Apple GPU(Metal) y NVIDIA GPU(CUDA) (enlace)
He cambiado la configuración de todas las formas posibles, pero el texto predictivo se detiene al azar o falla
O quizá sea una optimización para empujarte a usar dictado por voz
Pero bueno, al menos no dijo “7”
Habría sido interesante probar algunas apps del App Store para ver qué resultados daban