- iPhone 16 Pro MaxでMLX LLM実行時に誤った数値出力が発生し、同じコードがiPhone 15 ProとMacBook Proでは正常に動作した
- テンソル値に一桁以上の差が見られ、同一入力でも結果が歪む現象が確認された
- 問題の原因はNeural EngineまたはMetalベースのML演算スタックのハードウェア欠陥と推定される
- Apple Intelligence機能でもダウンロード失敗など類似の不安定性が見られ、関連している可能性が示された
- 開発者はこの事例を通じて、デバッグ時には物理的なハードウェア問題も考慮すべきだと強調した
MLX LLM実行エラーを発見
- iPhone 16 Pro MaxでMLXベースのLLM実行時に無意味な出力(gibberish) が生成された
- 同じコードはiPhone 15 ProとMacBook Proでは正常に動作
- CPU使用率が100%まで急上昇し、
stopトークンが生成されないため無限出力状態が続いた
- 同一モデルとプロンプトを使っていたにもかかわらず、テンソル出力値が異常に大きくなる現象が起きた
- iPhone 15 Proでは
[53.875, 62.5625, -187.75, ...]
- iPhone 16 Pro Maxでは
[191.5, 23.625, 173.75, ..., 1298, -147.25, -162.5]
- 入力値は同じだったが、中間演算段階で数値が急激に歪んだ
Apple Intelligence機能の問題
- Apple Intelligence APIを使って支出分類機能を実装しようとしたが、モデルサポートがダウンロードされなかった
- 設定を何度変更しても機能が有効にならなかった
- Appleコミュニティフォーラムでも同じ問題を経験するユーザーが多数(12ページ分) 報告されている
- このためApple Intelligenceへのアクセスを断念し、MLXベースのアプローチへ切り替えた
デバッグ過程と原因追跡
- MLXのGemmaモデル実装部にブレークポイントを設定し、各レイヤーのテンソル値を追跡した
- 入力値は2台で同一だったが、iPhone 16 Pro Maxでは中間段階から数値が異常に大きくなった
- MacでもiPhone 15 Proと同じ正常な結果を確認
- これにより、コードやモデルではなくハードウェアの問題だと確信した
ハードウェア欠陥の可能性
- iPhone 16 Pro MaxのA18チップのNeural EngineまたはMetalベースのML演算経路で計算エラーが発生している可能性がある
- MLXはMetalを通じてテンソル演算をコンパイルするため、このスタックの欠陥が結果の歪みを引き起こす可能性がある
- Apple Intelligenceの問題と同じ原因である可能性にも触れられているが、明確な証拠はない
結論と教訓
- 問題のiPhone 16 Pro Maxはハードウェア欠陥のある個体だったことが確認された
- その後iPhone 17 Pro Maxに交換したところ、すべての機能が正常に動作した
- 開発者はこの経験を通じて、デバッグ時にはソフトウェアだけでなく物理的なハードウェア問題も考慮すべきだと強調した
- 3つの教訓:
- LLM実行エラーが常にコードの問題とは限らない
- 同一環境での比較テストの重要性
- 高価なハードウェアでもML演算の正確性を保証できない場合がある
1件のコメント
Hacker Newsの意見
「月たす太陽は何?」と聞くのと同じくらいおかしい
ただし今回の現象そのものは別問題。Appleの数値演算APIが一部の端末で食い違う結果を返している。これはAppleが注目すべき問題だ
日と月を合わせると明になるので(Wikiリンク)
「満月」のような答えもあり得るけれど、明確で決定的な答えはなさそう
バックアップは当然として、できればiCloud+プランで進めるのがよい。こういう問題ではそれがいちばん簡単な解決策だ
つまり、そのiPhone 16 Pro Maxにはハードウェアの欠陥があったようだ
たとえばIntelの文書でも言及されている
それでもiPhone 16でLLMがまったく動作しないのは驚きだ。LLMは普通、量子化(quantization) にかなり寛容なので
最初はその理由でこの問題を無視しかけたが、
他のすべてのApple端末では同じ結果が出ていて、Apple純正のLLMがこの端末でだけ失敗した点が奇妙だった
これは根本的な問題というより予期しない失敗に見える。Appleがこういう状態の端末を出荷したのはよくない
今は自分のスマホで数学をするとき、HP Primeエミュレータを使っている
もうひとつのお気に入りの電卓はfree42やplus42(リンク)
CASツールとしてはMathStudioが最高だ(mathstud.io)
ブラウザでも動くが、モバイルアプリもある。セルフホスト版Wolfram Alphaのような感じだ
今でも直感的で速い
Control Centerのボタンからすぐ起動できるようにしてある
不満なのは、画面がこんなに大きいのに過去の計算履歴をスクロールして見られないことだ
1990年代の4機能電卓の複製みたいなUIはもう見たくない
MLXはCPU、Apple GPU(Metal)、NVIDIA GPU(CUDA)でも動作する(リンク)
設定をあらゆる組み合わせで変えてみたが、予測テキストがランダムに止まったり誤動作したりする
あるいは音声入力への切り替えを促す最適化なのかもしれない
それでも少なくとも「7」とは言わなかったのでまだましだ
App Storeのいくつかのアプリも試していれば、興味深い結果が出たかもしれない