news 2026/3/7 2:17:41

9999元的iPhone 16 PM连“2+2”都算不对?排查3天以为是自己菜,最终发现是硬件Bug

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
9999元的iPhone 16 PM连“2+2”都算不对?排查3天以为是自己菜,最终发现是硬件Bug

【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)为了极致严谨,把提示词标准化为:<start_of_turn>user\nWhat is 2+2?<end_of_turn>\n<start_of_turn>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,就是个硬件存在缺陷的残次品。

推荐阅读:

2026 奇点智能技术大会上海站官宣!解码AI Agent、世界模型与氛围编程等新范式

50万行代码不敢交给AI?TypeScript之父直言:它就像是个“高级复读机”

多模态和编程能力可以兼得吗?Kimi新模型K2.5实测

未来没有前后端,只有 AI Agent 工程师。

这场十倍速的变革已至,你的下一步在哪?

4 月 17-18 日,由 CSDN 与奇点智能研究院联合主办「2026 奇点智能技术大会」将在上海隆重召开,大会聚焦 Agent 系统、世界模型、AI 原生研发等 12 大前沿专题,为你绘制通往未来的认知地图。

成为时代的见证者,更要成为时代的先行者。

奇点智能技术大会上海站,我们不见不散!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/26 3:16:37

【小程序毕设源码分享】基于springboot+小程序的武设专业解读武术兴趣班小程序的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/3/5 14:12:54

如何科学地“设计”SFT 数据?一次关于 ODA 的完整平台级验证

在大模型后训练阶段&#xff0c;SFT&#xff08;监督微调&#xff09;数据的构建至关重要。然而&#xff0c;长期以来&#xff0c;这一过程业界的通行做法往往依赖“直觉”或“试错”&#xff0c;即多收一点、再筛一轮、训一次模型、看下效果&#xff0c;然后再调整。这个过程不…

作者头像 李华
网站建设 2026/2/27 2:44:03

黑客攻击MongoDB实例删除数据库并植入勒索信息

威胁行为者正通过大规模自动化勒索软件活动&#xff0c;持续攻击暴露在互联网上的MongoDB实例。攻击模式高度一致&#xff1a;攻击者扫描公网可访问的未受保护MongoDB数据库&#xff0c;删除存储数据后植入比特币勒索信息。 MongoDB实例遭入侵分析 最新证据显示&#xff0c;尽…

作者头像 李华
网站建设 2026/3/4 12:39:53

基于SSM的高校旧书交易系统的设计与实现(毕业论文)

摘 要 随着教育资源的日益丰富和高等教育的普及&#xff0c;大学生群体在学习和科研过程中产生了大量的书籍需求。然而&#xff0c;由于课程结束或毕业离校等原因&#xff0c;许多书籍在使用一段时间后便被闲置&#xff0c;这造成了大量资源的浪费。基于此&#xff0c;本文基于…

作者头像 李华
网站建设 2026/3/6 7:03:33

Vue与Web Components的集成:技术原理、实践方案与生态协同

Vue与Web Components的集成&#xff1a;技术原理、实践方案与生态协同 一、技术演进背景与核心价值 Web Components作为W3C标准化的浏览器原生组件技术&#xff0c;由Custom Elements、Shadow DOM和HTML Templates三大核心规范构成。其设计初衷在于解决Web开发中的组件复用难题…

作者头像 李华
网站建设 2026/3/1 3:33:54

GitHub项目上传、删除与协议设置:新手到高手的完整指南

GitHub项目上传、删除与协议设置&#xff1a;新手到高手的完整指南 引言 对于每一位开发者而言&#xff0c;GitHub不仅是代码的托管平台&#xff0c;更是个人技术履历和协作开发的核心。然而&#xff0c;从如何将第一个项目成功推送&#xff0c;到管理项目生命周期&#xff0…

作者头像 李华