
2026/02/02 5:51
私の千ドルもするiPhoneは計算ができません。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
著者は、iPhone 16 Pro Maxに深刻な欠陥があることを発見しました。この欠陥により、機械学習言語モデル(MLX LLM)を実行した際に不正確な出力が生成されます。その他のデバイスでは同じコードが正しく処理される一方で、16 Pro Maxはテンソル値が1桁離れたもの(例: “53.875” の代わりに “191.5”)を出力しました。デバッグによって、この発散は最初のニューラルネットワーク層以降で始まり、iOS のアップデートを通じて継続していることが判明し、ソフトウェアバグや設定問題ではなくハードウェア固有の故障であることが示されました。この問題は、MLX で量子化された Gemma モデルを実験中に発覚しました。MiniMax、Apple Intelligence API、およびさまざまな設定調整を試みても解決しませんでした。そのため著者は欠陥のあるユニットを Apple に返却して交換またはトレードインする予定であり、iPhone 17 Pro Max の新しいデバイスが MLX を正しく実行できることを証拠として示しています。この件は、物理的なハードウェア欠陥が消費者向けデバイス上の複雑な機械学習ワークフローをどのように妨げるかを強調し、開発者がデバッグ時に潜在的な欠陥を考慮する重要性と、製造業者が信頼できるニューラルエンジン性能を確保すべきことを示唆しています。
本文
TL;DR
iPhone 16 Pro Max で MLX LLM を実行すると、出力がゴミのようになってしまいます。対照的に iPhone 15 Pro は同じコードを完璧に動かし、MacBook Pro も問題なく動作します。16 のテンソル出力は数値レベルで大きく誤差があります。Neural Engine やその他 ML に必要なシステムにハードウェア不具合があると推測しています。
デバッグはめちゃくちゃ手間でしたが、少なくともブログ記事を仕上げることができました。
どうやってここまで来たのか?
これは単純で時間をかけずに終わるプロジェクトになるはずだった。
数ヶ月前から Clawdbot Moltbot クローン(「シュミット」と名付けた)を作っており、Telegram や WhatsApp ではなくカスタムチャット UI を使うだけで同じようなことができるものです。
このプロジェクトは早朝から深夜まで続きましたので、リラックスするためにもっとシンプルなものを作ろうと決めました。最近 MiniMax M2.1 にサブスクしたばかりだったので、モデルを試すだけの簡単な経費追跡アプリを作ることにしました。
コア機能
- 各支払いを自動で「経費」として追加。
- Apple Watch のコンパリケーションに月間予算の使用率を表示。
- 後で分析できるように購入をカテゴリ分け。
これは基本的に Nubank の素晴らしいネイティブアプリ(今は機能が少ない Flutter バージョンに置き換えられた)から離れた結果です。
Guilherme Neumann がデザインしたとされる元のコンパリケーション自体は見つけられませんでした。
ショートカットとの統合は手動ですが確実です。15 分以内に購入を登録できるバージョンを作成しました。Apple Watch のコンパリケーション(主要目標)は後回しにします。分類機能が簡単に済むので、まずそれを早く完成させました。
Apple Intelligence
LLM が盛り上がっている今、Apple も開発者向けの API を用意してくれています。ドキュメントを読んでみると、機能が利用可能かどうか確認し、テキストクエリに応答させるだけです(私の場合はリクエストをカテゴリ化する)。
MiniMax は一つのプロンプトでそれを処理し、iPhone で実行しました。最初の経費は「Kasai Kitchin」という店で購入したものでしたが、「不明」と分類されました。奇妙です。ログを見ると、モデルサポートがダウンロード中だったようです。機能が有効化されていませんでした。再び奇妙です。設定をオン・オフしてダウンロードさせる作業に 4 時間もかかりました。
多くのユーザーが同じ問題に直面し、12 ページものフラストレーションが積み上げられています。Apple のサービスは最近頻繁に不具合を起こしていますね。
結局 Apple Intelligence は諦め、次のアプローチへ進みました。
MLX LLM
iOS フレームワークのエンジニアだけでなく、Swift で機械学習 API を作る人は多いようです。モデルをダウンロードしてアプリに組み込む別の方法があるとのこと。ユーザーのストレージには向きませんが、私にはピッタリでした。
MiniMax は一瞬で完了しますし、Medium の記事も参考になります。しかし iPhone で実行すると…文字化けです。CPU が 100% 回転し、モデルは生成を続けますが、全てがゴミのように見えます。「stop」トークンも生成されないので長時間続きます。
「2+2 は何?」という質問に対して「Applied…_dAK[…]」と返ってきました。ここで唯一考えられる説明は、自分が完全に無能で簡単な「ready-made」フレームワークを実行できていない、あるいは MiniMax が原因だということです。
LLM に作業を委ねるメリットは、自分の欠点を責める対象が増えるだけ。コードを書いて自らやり遂げるしかありません。
自前で MLX を実装
ドキュメントと Medium 記事に戻り、MiniMax が指示どおりに従っていたことを確認しました。非推奨メソッドも試しましたが、まだ文字化けです。結局責任は自分にあります。
3 日間試行錯誤して諦めかけていると、月曜の朝 7–8 時、古い iPhone 15 Pro で実行するアイデアが浮きました。毎日使っていた iPhone 16 Pro Max(Apple Care の交換電話)が問題でした。準備を急ぎ、仕事に向かう前にすべてを整えて実行すると:Gemma、Qwen、その他のモデルはまともな応答を生成しました!
それでハードウェア問題ではないと考えました。iPhone 15 は iOS 18 を走らせ、iPhone 16 は 26 を走らせているので、OS の違いが原因かもしれません。結局、同じコードを iOS 26 上でも動作させたところ、結果は同じでした。
見つけた証拠:MLX の Gemma 実装でブレークポイント
仕事終わりに戻って、MLX を実行中にデバッグすることにしました。計画は次の通りです。
- RAM に収まる信頼できるモデル(量子化された Gemma)を選択。
- シンプルなプロンプト:「What is 2+2?」
<start_of_turn>user\nWhat is 2+2?<end_of_turn>\n<start_of_turn>model - 温度は
に設定し、変動を排除。0.0 - モデル実装を探す。
- 層ごとに反復している箇所で MLXArray/Tensor の値をログに出力。
数分後、ブレークポイントとログを追加。iPhone 16 Pro Max で実行すると、入力が進むたびにテンソルが表示されます。今回は数値が正しいようです。
出力をファイルに保存し、同じコードを iPhone 15 Pro でも実行しました。比較します。
iPhone 15 Pro では:
3: "[[[[53.875, 62.5625, -187.75, ..., 42.625, 6.25, -21.5625]]]]"
iPhone 16 Pro Max では:
3: "[[[[191.5, 23.625, 173.75, ..., 1298, -147.25, -162.5]]]]"
差が激しいです。両デバイスの最初のログは同じで、入力も同じです。
Mac でも iPad モードでアプリを実行すると:
3: "[[[[53.875, 62.5625, -187.75, ..., 42.625, 6.25, -21.5625]]]]"
iPhone 15 と同じです。モデル自体は壊れていません。
なぜこんなことが起きているのか?
iPhone 16 Pro Max は A18 チップと Neural Engine(機械学習専用アクセラレータ)を搭載しています。MLX は Metal を使ってテンソル演算をこのアクセラレータ向けにコンパイルします。そのスタック内のどこかで計算が大きくずれているようです。
広範な問題ではないと思いますが、Apple Care で交換されたばかりのデバイスにこんな欠陥があると残念です。Apple Intelligence のトラブルも関係している可能性があります。同じユーザーが同様のジレンマに直面し、デバッグ手段が不足している状況だと思われます。
今後は?
3 日間「自分が無能だ」と考えていたうちに、MiniMax や自分自身を責めていました。1,400 ドルの電話でハードウェア不具合があると知るまで、時間を浪費してしまったことが残念です。
デバッグ時には常に物理層も考慮すべきだという教訓を得ました。ソフトウェア(コード・ライブラリ・フレームワーク)だけでなくハードウェアもチェックする必要があります。
電話については、Apple に返却し、新しい iPhone 17 Pro Max を購入することにします。期待できる機能が動くと信じています。
2 月 1 日のアップデート
今では iPhone 17 Pro Max をテストしており、すべてが正常に動作しています。したがって、iPhone 16 Pro Max の特定の機種はハードウェア欠陥であると結論づけられます。