- Auf dem iPhone 16 Pro Max kommt es bei der Ausführung von MLX-LLMs zu fehlerhaften numerischen Ausgaben, während derselbe Code auf dem iPhone 15 Pro und dem MacBook Pro normal funktioniert
- Tensorwerte weichen um mehr als eine Größenordnung ab, und selbst bei identischer Eingabe werden die Ergebnisse verfälscht
- Als Ursache wird ein Hardwarefehler in der Neural Engine oder im Metal-basierten ML-Rechen-Stack vermutet
- Auch Apple-Intelligence-Funktionen zeigen ähnliche Instabilitäten, etwa fehlgeschlagene Downloads, was einen Zusammenhang möglich erscheinen lässt
- Der Entwickler betont anhand dieses Falls, dass man beim Debugging auch physische Hardwareprobleme berücksichtigen sollte
Fehler bei der Ausführung von MLX-LLMs entdeckt
- Auf dem iPhone 16 Pro Max wird bei der Ausführung eines MLX-basierten LLMs bedeutungsloser Output (gibberish) erzeugt
- Derselbe Code läuft auf dem iPhone 15 Pro und dem MacBook Pro normal
- Die CPU-Auslastung schnellt auf 100 %, und da kein „stop“-Token erzeugt wird, läuft die Ausgabe endlos weiter
- Obwohl dasselbe Modell und derselbe Prompt verwendet wurden, werden die Tensor-Ausgabewerte ungewöhnlich groß
- Auf dem iPhone 15 Pro:
[53.875, 62.5625, -187.75, ...]
- Auf dem iPhone 16 Pro Max:
[191.5, 23.625, 173.75, ..., 1298, -147.25, -162.5]
- Die Eingabewerte waren identisch, doch in den Zwischenschritten der Berechnung wurden die Zahlen stark verfälscht
Probleme mit Apple-Intelligence-Funktionen
- Über die Apple-Intelligence-API sollte eine Funktion zur Ausgabenkategorisierung implementiert werden, doch der Download der Modellunterstützung schlug fehl
- Auch nach mehrfachen Änderungen in den Einstellungen ließ sich die Funktion nicht aktivieren
- Im Apple-Community-Forum berichteten ebenfalls zahlreiche Nutzer vom selben Problem (12 Seiten an Beiträgen)
- Deshalb wurde der Zugriff auf Apple Intelligence aufgegeben und auf einen MLX-basierten Ansatz umgestellt
Debugging-Prozess und Ursachensuche
- Im Gemma-Modellcode von MLX wurden Breakpoints gesetzt, um die Tensorwerte jeder Schicht nachzuverfolgen
- Die Eingabewerte waren auf beiden Geräten identisch, aber auf dem iPhone 16 Pro Max wurden die Zahlen ab einer Zwischenstufe ungewöhnlich groß
- Auch auf dem Mac wurde dasselbe korrekte Ergebnis wie auf dem iPhone 15 Pro bestätigt
- Dadurch verfestigte sich die Überzeugung, dass es sich nicht um ein Code- oder Modellproblem, sondern um ein Hardwareproblem handelt
Möglichkeit eines Hardwaredefekts
- Möglich ist ein Rechenfehler in der Neural Engine des A18-Chips des iPhone 16 Pro Max oder im Metal-basierten ML-Ausführungspfad
- Da MLX Tensorberechnungen über Metal kompiliert, könnte ein Defekt in diesem Stack die verfälschten Ergebnisse verursacht haben
- Es wird auch erwähnt, dass die Probleme mit Apple Intelligence dieselbe Ursache haben könnten, eindeutige Belege gibt es jedoch nicht
Fazit und Lehren
- Das betroffene iPhone 16 Pro Max wurde als Gerät mit Hardwaredefekt identifiziert
- Nach dem Austausch gegen ein iPhone 17 Pro Max funktionierten anschließend alle Funktionen normal
- Der Entwickler betont aus dieser Erfahrung heraus, dass man beim Debugging nicht nur Software-, sondern auch physische Hardwareprobleme berücksichtigen sollte
- Drei Lehren:
- Fehler bei der LLM-Ausführung sind nicht immer ein Codeproblem
- Die Bedeutung von Vergleichstests in derselben Umgebung
- Selbst teure Hardware garantiert nicht unbedingt die Genauigkeit von ML-Berechnungen
Noch keine Kommentare.