世界を動かす技術を、日本語で。

千ドルのiPhoneは計算ができない

概要

  • iPhone 16 Pro Max でMLX LLMを実行すると 数値出力が異常 になる問題
  • iPhone 15 Pro やMacBook Proでは 同じコードが正常動作
  • ハードウェア(Neural Engine)故障 の可能性が高いと推測
  • デバッグ過程 で問題の切り分けと発見
  • iPhone 17 Pro Max では問題が再発せず、16 Pro Max固有の不具合と結論

iPhone 16 Pro Maxで発生したMLX LLMの異常動作

  • MLX LLM をiPhone 16 Pro Maxで実行すると、 テンソル出力が桁違いに異常
  • iPhone 15 ProMacBook Pro では、同じコード・モデル・プロンプトで 正常な数値出力
  • Neural Engine やML関連システムの ハードウェア欠陥 を疑う状況
  • Apple Care で交換されたiPhone 16 Pro Maxで発生したため、 初期不良品の可能性
  • Apple Intelligence API も一部正常に動作せず、同様のハードウェア依存の不具合を示唆

開発・デバッグの経緯

  • MiniMax M2.1 サブスクに合わせて、 支出管理アプリ を自作
    • 支払いごとに自動登録
    • Apple Watchコンプリケーションへの予算進捗表示
    • 支出カテゴリ分類機能の実装
  • MLX LLM で分類機能を試すも、16 Pro Maxのみ 出力が文字化け(gibberish)
  • 温度0.0、同一プロンプト、同一モデル で各デバイス比較
    • iPhone 15 Pro・MacBook Proは同一数値
    • 16 Pro Maxのみ 桁違いの異常値 を出力
  • MLXのレイヤーごとのテンソル値 をログ出力して比較
    • 入力値は同一、途中から16 Pro Maxのみ値が大きく逸脱

原因特定と考察

  • iPhone 16 Pro MaxのA18チップ のNeural Engineで発生
  • MLXはMetal経由でNeural Engineを活用 しているため、 ハードウェア計算結果が破損
  • 他のユーザーもApple Intelligence APIで類似の問題報告 (12ページ分のスレッド)
  • Macや15 Proでは問題再現せず、ソフトウェアやコードの問題ではないと判断

教訓と対応

  • デバッグ時は物理層(ハードウェア故障)も疑う重要性
  • 自己責任やコードの問題と決めつけず、ハードウェアの可能性も検討
  • iPhone 16 Pro MaxはAppleに下取りiPhone 17 Pro Maxでは問題解消
  • ハードウェア不具合が原因 と確定、今後の開発・デバッグの参考事例

まとめ

  • 最新機種でもハードウェア不良は起こりうる 事例
  • ML・LLMの異常出力時はハードウェア故障も視野に
  • Apple IntelligenceやMLX利用時のトラブルシュート手順の参考
  • 交換後のiPhone 17 Pro Maxで正常動作を確認 し、問題端末の特定と解決

Hackerたちの意見

本物のデバッグを見るのが好きなんだ、陰謀論じゃなくて!レーダーを提出した?(これを書きながら静かに笑ってるけど、もしかしたらAppleにまだ読んでる人がいるかもね)

この記事が、古いグラフ電卓の方がスマホより数学の相棒として優れてるって話だと思ってクリックしたんだけど。スマホで数学をする最適な方法は、HP Primeエミュレーターだと思う。

物理的な電卓が手元にないときは、AndroidフォンでTI 83+エミュレーターを使ってる。同じコンセプトだけど、別のブランドの電卓を使ってるって感じ。

ついに、ダサいCalculator.appをiPhoneから削除して、自分の好きなアプリに置き換えられることに気づいて嬉しかった!今はNumWorksに落ち着いたけど、これは学校でも使われてる現代的なグラフ計算機のエミュレーターらしい。もちろん、アプリを起動するためのコントロールセンターのボタンも作ったよ。正直、Calculator.appに対する不満は、この大きな画面で過去の計算結果をいくつか見られて、必要ならスクロールできるべきだってこと。デフォルトが1990年代の4機能電卓の完全なコピーなんていらないよ(確かに桁数は多いし、ペーストもできるけど、それ以外はほとんど何も追加されてないし)。

個人的にはiHP48が一番好きだな(以前はm48+を使ってたけど、壊れちゃった)。大学時代にHP 48GXにメタカーネルをインストールして使ってたけど、今でも直感的で速いんだよね。

GraphNCalc83は最高だよ。[0] https://apps.apple.com/us/app/graphncalc83/id744882019

携帯には「RealCalc」アプリを使ってる。昔のHP48に結構似てるんだよね。

本格的な数学をやらなきゃいけない時は、TI-84を探しに行くんだ。もう全部が筋肉記憶に焼き付いてるから。

PCalc -- これはMac Classic以来、すべてのAppleプラットフォームで動くからね: https://pcalc.com/mac/thirty.html あと、もう一つのお気に入りの電卓はfree42、またはその大きなディスプレイ版のplus42だよ: https://thomasokken.com/plus42/ ポケットモバイルデバイス用のCASツールでは、MathStudio(以前はSpaceTimeって呼ばれてた)が一番いいと思う: https://mathstud.io ウェブブラウザでも使えるけど、モバイルアプリ版もあるんだ。まるで自分専用のWolfram Alphaみたいだね。

低レベルの数値演算の最適化は、再現性がないことが多いんだよね。例えば: https://www.intel.com/content/dam/develop/external/us/en/doc... (2013年)でも、iPhone 16でそのLLMが全く動かないのは驚きだよ。結局、LLMは量子化に対する耐性があることで知られてるし。

そうそう、「浮動小数点の加算は可換ではない」ってのは、みんなが頭に入れておくべきマントラだよね。この記事を最初に読んだとき、すぐに却下したくなった理由がそれなんだけど。でも、これについて気になったのは、* 他のAppleデバイスは同じ結果を出したこと * Appleの自社LLMがこのデバイスで静かに失敗したこと。これは根本的な問題というより、予期しない失敗を示唆してるように思える。Appleが自社のLLMが動かないデバイスを出荷するのはちょっと悪い(TM)よね。

これが原因で、俺のキーボードの予測入力がめちゃくちゃ壊れてるのかも。

あれ、俺だけじゃないの?最近の数ヶ月(約6ヶ月?)iPhoneでのタイピングが本当にひどい。思いつく限りのキーボード設定を無効化/有効化してみたけど、予測入力がランダムに壊れたり、何も修正しなくなったりするんだよね。

ここまでひどくなると、(a)わざと煽ってるのか、(b)音声からテキストへの移行を「最適化」してるのか、半分信じちゃうよ。

バグを再現するコードを投稿すれば、Appleだけじゃなくて、自分や他の人にも役立つかもしれないよ。

方法論は一つのことだけど、LLMを使って計算させるのが素晴らしいとは思えないな。まるで「月と太陽を足したら何になる?」って聞くのと同じくらい面白い。でも現象は別の話。Appleの数値APIが一部のデバイスで不安定な結果を出してるのは、Appleが注目すべきことだと思う。

(これは完全に脱線するけど、すみません)私の頭はすぐに「明」と答えたよ。太陽と月の部首を組み合わせるとそうなるからね。まあ、その質問には合理的な答えもあるかもしれない。「満月」もあり得るし。ただ、明確な答えはないけどね。

月と太陽を足したら何? もちろん、日食だよ。

彼が別のiPhone 16 Pro Maxで試してみたら、そのデバイス特有の不具合だったのか確認できたのにね。

本当にその通り!まともなAppleユーザーや、普通のAppleサポートの人が提案すること(実際に彼らが提案すること)だけど、データをリセットした後にOSを一から再インストールしてみた?(もちろんバックアップする前にね;できればiCloud+のプランで)こういう問題にはそれが一番だし、すごく簡単だよ。

ページの一番下に最新のアップデートがあるよ。「さて、今は2月1日で、iPhone 17 Pro Maxをテストしてみたけど…すべて期待通りに動いてる。だから、あの特定のiPhone 16 Pro Maxはハードウェアに欠陥があったってことはかなり確実だね。」

「2+2は何?」って聞いたら、どうやら「Applied.....*_dAK[...]」ってiPhoneが言ったみたい。少なくとも、機械が7だとは言わなかったけどね!

トゥルルとクラパウシウスがQ&Aを担当させられたのかもね。

同じモデルの別の電話でも同じエラーが出るか試してみたいな。

他のニューラルエンジンを使ってるアプリも変な挙動すると思うな。いくつかのApp Storeのアプリを試してみて、変な挙動を見るのも面白かっただろうね。