
【CSDN 编者按】一部售价近万元的iPhone,却在最基础的数学推理上“翻了车”。本文作者原本只是想做一个轻量级的记账 App,却在调试 MLX 与本地大模型的过程中,意外撞上了一起极其隐蔽、也极具代表性的硬件级 Bug:同样的模型、同样的代码,在 iPhone 15 和 Mac 上一切正常,唯独 iPhone 16 Pro Max 输出彻底失真。三天的自我怀疑、无数次对代码和框架的反复检查,最终指向的不是软件,而是 Neural Engine 相关的硬件缺陷。
原文链接:https://journal.rafaelcosta.me/my-thousand-dollar-iphone-cant-do-math/
作者 | Rafael Costa 翻译 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
过去几个月,我一直在做一个 Clawdbot / Moltbot 的克隆项目,我给这个复刻版取名 Schmidt。它的核心功能和原版差不多,但我做的是一个自定义聊天 UI,而不是依赖 Telegram、WhatsApp 这类“我真的很怕哪天被封号”的平台。
这个项目占据了我大量的清晨和深夜时间,于是为了缓解一下,我决定搞点简单点的东西。刚好我最近订阅了 MiniMax M2.1 大模型,就想着跟风做个简易的记账 APP,顺便测试下这个模型的能力。
这个 APP 的核心功能很简单:
● 每笔消费完成后,自动记录到 APP 中;
● 在 Apple Watch 表盘组件中显示:本月预算已用百分比;
● 对消费进行分类,方便后续分析。
做这个 APP 的初衷,还是因为 Nubank 原本超好用的原生 APP “摆烂” 了——现在它被替换成了功能大打折扣的 Flutter 版本。
![]()
和快捷指令(Shortcuts)的集成过程虽然需要手动操作,但胜在稳定。短短 15 分钟,我就做出了能记录消费的初版 APP,而我最想要的 Apple Watch 表盘功能可以后续再完善。
我本以为,消费分类这个功能做起来会很轻松,就想着先把它搞定。
![]()
先试 Apple Intelligence:下载卡壳,全网用户都踩坑
在这个 LLM 百花齐放的时代,Apple 自然也推出了自家的 Apple Intelligence API,供像我这样的开发者使用。翻看官方文档后发现,使用这个功能的流程很简单:先检测功能是否可用,再调用模型响应文本查询即可,而我的需求只是让模型做消费分类。
MiniMax 很快就帮我写完了 Prompt,接着我把代码部署到了 iPhone 上测试。第一笔消费是在一家叫 Kasai Kitchin 的店产生的,结果模型给出的分类是…… 未知。
太奇怪了。
查看日志后我发现了问题:模型支持包还在下载中,功能根本没启用。这就更离谱了,我明明已经开启了这个功能。没办法,我只能去设置里反复开关这个功能——讲真,苹果的服务出现这种问题,早就见怪不怪了,说不定是设置 APP 卡死了。
![]()
然后我就等着支持包下载完成——结果等了 4 个小时,下载进度纹丝不动。上网一查才发现,不少用户都遇到了这个问题(相关的讨论帖已经有 12 页,全是吐槽的用户)。只能说,这阵子苹果的服务拉胯,已经是常态了。
行吧,Apple Intelligence 这条路走不通,那就换个方案。
![]()
再试 MLX LLM:CPU 跑满,输出全是乱码
显然,苹果不只有 iOS 框架工程师会用 Swift 开发机器学习 API,他们还提供了另一种完全不同的方案——将模型直接下载到 APP 本地运行。
这种方式对用户的存储空间不友好,但对我这个开发者来说简直太香了!
还是先在 MiniMax 上做测试,结合官方文档和几篇 Medium 文章,我很快就搞定了代码。本以为这次在 iPhone 上运行会顺顺利利,结果输出的全是无意义的乱码。
不仅如此,手机的 CPU 直接拉满,模型开始无休无止地生成内容,而且完全不会触发停止符,就这样一直跑下去。比如问一句“2+2 等于几?”,我的 iPhone 16 Pro Max 给出的答案居然是“Applied.....*_dAK [...]”这类莫名其妙的字符。
![]()
当时我第一反应是:我是不是太菜了?连现成的框架都用不明白?或者,问题出在 MiniMax 上?——毕竟,把工作甩给大模型的好处就是,出了问题可以甩锅给它。但吐槽归吐槽,我还是得自己动手写代码解决。
![]()
自研 MLX 实现:代码没问题,自我怀疑拉满
于是,我重新翻了官方文档和 Medium 的教程,结果让我大跌眼镜:MiniMax 的实现完全是照着文档来的。我甚至还尝试了一些已经废弃的生成方法,结果还是输出乱码——这下好了,没人能甩锅,只能怪自己。
那阵子我每天上班都被这个问题折磨,折腾了 3 天,我几乎都要放弃了……
直到某个周二早上7点,我突然想到一个办法:要不试试在我的旧机 iPhone 15 Pro 上运行?在此之前,我一直用主力机 iPhone 16 Pro Max 测试——这部手机还是之前不小心摔报废后,苹果售后 Apple Care 给换的新机。
我赶在上班前火速做好所有准备,运行代码的那一刻:成了!Gemma、Qwen 等所有模型都能生成逻辑通顺的回答!
我当时还在想:这总不可能是硬件问题吧?肯定不是,iPhone 15 Pro 装的还是 iOS 18,而 iPhone 16 Pro Max 是 iOS 26,问题一定出在系统上。好奇心战胜了一切,我索性翘了早会,给旧机更了 iOS 26。等了好一会儿,更新完成后再测试:结果和 iPhone 15 Pro 未更新时一样,依旧能正常运行。
事情的走向,越来越扑朔迷离了……
![]()
找到实锤:在 Gemma 的 MLX 实现中加断点调试
那天上班,我和同事们吃午饭、喝咖啡时,一直聊这个问题的可能原因。下班回家后,我立刻开始着手调试 MLX 的运行过程,具体的调试思路如下:
(1)选用一个验证过的、能塞进内存的可靠模型(我选了量化版的 Gemma);
(2)用最简单的提示词测试,比如“2+2 等于几?”;
(3)为了极致严谨,把提示词标准化为: user\nWhat is 2+2? \n model;
(4)将生成温度设为 0.0,尽可能排除随机因素的影响;
(5)找到模型的实现代码;
(6)定位到模型遍历各层网络的代码位置;
(7)输入数据经过每一层时,打印出 MLXArray / 张量的具体数值。
没过多久,我就找到了需要调试的位置,手动加上断点、埋好日志,开始测试。
![]()
我先在 iPhone 16 Pro Max 上运行,模型成功加载,提示词“2+2 等于几?” 也正常输入,张量数值开始一行行打印出来。这一次,日志终于不是乱码了——全是数字,这些浮点数代表了模型处理输入时的内部状态。
然后我把输出结果保存到文件,又在 iPhone 15 Pro 上做了一遍相同的操作,模型、提示词、代码完全一致,接下来就是对比两份结果。
看到对比结果的那一刻,我知道这已经超出我的专业知识范围了。
我筛选了一个本应完全一致的特征值——日志第 58 行的数组,这个位置刚好在数值归一化 / 软最大化处理之前。我觉得,在能正常运行的设备上,这个数值应该是完全固定的。
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]]]]"
显然不一样,完全没有任何相似性,数值偏差直接到了一个数量级。
而更诡异的是:最开始的输入张量,两台手机明明是一模一样的——这说明问题不是输入,而是中间某个计算环节出了大问题。
为了彻底确认,我在 MacBook Pro 上跑了一遍同样的代码(iPad 兼容模式):结果和 iPhone 15 Pro 完全一致。这样一来,结论就很明确了:
模型没问题,代码没问题,我也没问题——就是我的手机坏了。
![]()
我的推测
结合整个调试过程,我来说说自己的判断吧:
iPhone 16 Pro Max 使用的是 A18 芯片,内置 Neural Engine,专门用于 ML 加速,而MLX 通过 Metal 把张量运算编译到这些硬件单元上——问题就出在这个硬件 - 框架的调用栈中,导致运算结果出现严重错误。
这可能不是普遍问题,但很不幸,我手上这部从 Apple Care 换来的准新机,中奖了。
更扎心的是:如果我之前遇到的 Apple Intelligence 无法正常下载 / 运行的问题与此相关,那那 12 页帖子里的用户,恐怕有不少都和我遇到了同样的问题,只是他们没有办法像我这样做底层调试而已。
![]()
最后的教训
我花了 3 天时间怀疑自己能力不行,先是甩锅给 MiniMax,最后又自我否定。结果从头到尾,问题都是这部价值 1400 美元(国内官方起售价为9999元)的手机,硬件本身就有缺陷。
当然,我可以继续花时间去深究具体是哪个硬件模块出了问题,但这完全不值得。
不过这次经历也给了我一个重要的调试教训:排查问题时,一定要考虑物理硬件层的可能性。我这三天一直想当然地认为是软件问题——我的代码、第三方库、框架,甚至是自己的开发能力。
而这次问题的突破口,恰恰就是那个简单的想法:“万一不是我菜,也不是代码的问题呢?”
故事的最后,我用这部 iPhone 16 Pro Max以旧换新了一部 iPhone 17 Pro Max,并做了全量测试——所有功能都能正常运行,和预期完全一致。所以可以确定,我之前那部 iPhone 16 Pro Max,就是个硬件存在缺陷的残次品。
未来没有前后端,只有 AI Agent 工程师。
这场十倍速的变革已至,你的下一步在哪?
4 月 17-18 日,由 CSDN 与奇点智能研究院联合主办「2026 奇点智能技术大会」将在上海隆重召开,大会聚焦 Agent 系统、世界模型、AI 原生研发等 12 大前沿专题,为你绘制通往未来的认知地图。
成为时代的见证者,更要成为时代的先行者。
奇点智能技术大会上海站,我们不见不散!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.