feat(AI): 集成MNN推理引擎替换MLX作为主AI运行时 - 引入MNN(alibaba) + Arm SME2 + CPU作为主AI运行时,支持A19/iPhone17的 SME2和A17的NEON加速 - 添加MLX Swift作为兜底GPU推理方案,实现双后端切换机制 - 使用单一Qwen3.5-2B多模态模型(1.2GB),替代原有的LLM+VL分离架构 - 实现InferenceEngine.current引擎选择逻辑,真机默认MNN,模拟器回退MLX - 更新AIAgent架构,通过MNNLLMBridge(ObjC++) → MNNBackend进行推理 - 修改队列机制防止并发推理导致OOM,使用信号量闸门控制显存占用 - 更新文档中的技术栈说明、模块边界和周次交付计划 ```
6.5 KiB
康康 · 小红书发布文案(比赛评审用)
使用说明:
◻︎处填真机实测数字(打开 我的 → 模型管理 → 性能自检,截图同时把数字抄进来)#比赛官方话题#和@官方账号替换成组委会指定的话题和账号(评审通常按官方话题检索作品,漏带话题可能查不到你的帖子)- 主推版做主帖;技术版可隔 2~3 天发第二篇,小红书对"同一项目多角度连发"权重友好
- 发布时间建议:工作日 12:00–13:30 或 20:00–22:30
版本 A · 主推版(大众 + 评委兼顾)
标题(三选一,均 ≤ 20 字)
- 体检报告拍一下,AI 解读不联网📱
- 我做了个不上传的健康 AI,飞行模式都能用
- 爸妈的体检报告,终于有 AI 肯"离线"看了
正文
体检报告上一堆↑↓箭头,看得懂的没几个; 想让 AI 帮忙解读,又得把化验单拍给云端—— 等于把自己最隐私的数据交出去了。
所以我做了「康康」:一个 100% 本地推理 的健康档案 App🍃 所有 AI 都跑在 iPhone 自己的芯片上,开飞行模式照样用,数据一个字节都不出手机。
✅ 它能做什么👇
📷 拍一张,报告变档案 化验单/体检报告对着拍,OCR + 端侧大模型自动抽出每项指标、参考范围、偏高偏低,归档成可检索的电子档案。
📈 趋势看得见 血压、血糖、体重……长期指标自动画折线,AI 用大白话告诉你"这半年在变好还是变差"。
💬 问它,它真的记得你 "我去年尿酸多少?""最近三次血脂对比一下"——它从你自己的历史记录里检索回答,每句话都带引用,点一下能跳回原始报告。
🗣️ 嘴说就能记 "昨晚头疼,睡得不好"——说一句,自动整理成日记;药盒扫一下,自动录入正在吃的药。
🏥 看病前 30 秒 一键生成给医生看的就诊摘要:近期症状 + 关键指标 + 用药过敏史,门诊不再大脑空白。
🔐 隐私三件套 系统级硬件加密 + Face ID 锁 + 永久删除。没有账号、没有云、没有"用户协议第 38 条"。
⚙️ 技术控看这里: 端侧跑的是 Qwen3.5 大模型,推理框架是阿里开源的 MNN,在 iPhone 17 上吃满了 Arm 最新的 SME2 矩阵指令——纯 CPU 解码 ◻︎ tok/s,锁屏界面实时显示生成速度,推理快到不像没联网😎
这是我参加 #比赛官方话题# 的参赛作品,从设计到代码一个人肝了六周。 如果你也觉得"健康数据就该留在自己手机里",求个赞和收藏🙏 有想要的功能评论区告诉我,下个版本安排!
⚠️ 康康只做记录和科普式解读,不做诊断不替代医生,身体不舒服请及时就医。
话题标签
#比赛官方话题# #端侧AI #本地大模型 #健康管理 #体检报告解读 #隐私保护 #iOS开发 #独立开发者 #AI应用 #数字健康
配图脚本(9 宫格)
| # | 内容 | 备注 |
|---|---|---|
| 1 | 封面:手机展示首页 + 大字标题"体检报告 AI 解读,不联网" | 封面字要大,缩略图能读清 |
| 2 | 拍照识别报告全流程(拍摄→指标确认页) | 可两张拼一张 |
| 3 | 报告详情 C2:原图/解读/指标 三 Tab | 露出"对比上次"区块 |
| 4 | 趋势页折线图 + AI 一句话解读 | |
| 5 | AI 问答:带 [1][2] 引用 Pill 的回答 | 体现"检索自己的记录" |
| 6 | 控制中心飞行模式开启 + App 正常生成回答 同屏 | 全帖最有说服力的一张 |
| 7 | 性能自检卡:SME2 标识 + prefill/decode tok/s | 评委重点看这张 |
| 8 | 锁屏 Live Activity 实时 tok/s | |
| 9 | 隐私设置页:Face ID + 永久删除 |
版本 B · 技术圈层版(隔 2~3 天发)
标题(二选一)
- 在 iPhone 的 CPU 上,我把大模型跑到 ◻︎ tok/s
- 不用 GPU,iPhone 17 纯 CPU 跑通 Qwen3.5🔥
正文
最近所有人都在卷云端大模型,我反着来: 把整套健康 AI——视觉识别、RAG 问答、趋势解读——全部塞进 iPhone 本地,纯 CPU 推理。
为什么是 CPU 不是 GPU? 因为 Arm 在新一代芯片里加了 SME2(可伸缩矩阵扩展):专为矩阵乘法设计的指令集,大模型推理的核心运算正好是它的主场。
我的技术栈👇 🔹 模型:Qwen3.5-2B(多模态,一个模型同时干文本 + 看图识报告) 🔹 推理框架:MNN(阿里开源),iPhone 17/A19 走 SME2,老机型自动回退 NEON 🔹 兜底:MLX(Apple 官方,Metal GPU),双后端运行时无感切换 🔹 应用层:SwiftUI + SwiftData,RAG 用结构化检索(意图抽取→按关键词查库→拼 prompt),不引入 embedding 模型,首响更快
实测数据(iPhone 17,可在 App 内"性能自检"复现): ⚡ prefill ◻︎ tok/s / decode ◻︎ tok/s ⚡ 拍一张化验单到出结构化指标:约 ◻︎ 秒 ⚡ 模型常驻互斥 + actor 串行闸门,长时间使用不 OOM
几个有意思的坑: 1️⃣ MNN 默认 enable_thinking=true,模型疯狂输出 吃光 token 预算,要在 bridge 层 set_config 关掉 2️⃣ 长文本逐行复读死循环——采样器默认不带 repetition penalty,MNN 要显式写进 mixed_samplers 3️⃣ LLM 和 VL 同时驻留必 jetsam,做了常驻互斥 + 推理优先级闸门(交互任务可插队后台预生成)
做这个项目的初衷很简单:健康数据是最不该上云的数据。 端侧推理已经到了"真能用"的拐点,这是我给 #比赛官方话题# 交的答卷。
代码细节/性能调优有兴趣的评论区聊👇
⚠️ App 仅做记录与科普式解读,不提供诊断建议。
话题标签
#比赛官方话题# #端侧AI #MNN #Qwen #ArmSME2 #大模型推理 #iOS开发 #SwiftUI #独立开发者 #本地大模型
配图脚本
- 封面:性能自检卡大图,tok/s 数字放大做封面字
- 架构图:UI → Service → AIRuntime → MNN(SME2)/MLX 双后端
- 飞行模式 + 流式生成同屏
- 锁屏 Live Activity tok/s
- 拍照识别报告前后对比(原图 → 结构化指标)
- Xcode/代码截图:MNNLLMBridge 或 actor 闸门片段(打码无关信息)
- 老机型 NEON vs iPhone 17 SME2 速度对比(如有数据)
发布贴士
- 官方话题必带且放第一位,正文里也 @官方账号 一次
- 封面图决定 80% 点击:大字 + 高对比,别用纯截图
- 发布后 1 小时内回评论(尤其问"怎么下载"的,回复"比赛 demo 阶段,关注我等上架"),互动率影响推荐量
- 不要写"治疗""诊断""疗效"等词,健康类内容平台审得严,现有文案已规避
- 主帖发出后把链接填进比赛报名系统/问卷(如果章程要求回填链接)