我做了一个能在 iPhone Pro 上本地运行 Mistral 7B 0.2 LLM 的应用
像 Mistral 7B 这样的“大语言模型”如今已经可以直接在 iPhone Pro 设备上本地运行,但仍然受限于 RAM、量化方案和散热条件。评论者比较了多款 iOS 和桌面端的本地推理应用,权衡模型多样性、速度(每秒 token 数)、对话历史,以及本地隐私与云端模型(如 GPT-4)更高质量之间的取舍。他们还讨论了 Apple 的硬件和软件栈(Metal vs. Neural Engine)、App Store 政策、定价是否公平,以及未来应用是否会捆绑专门为离线场景设计的嵌入式模型。
应用能力与用户体验
- 这款应用可在较新的 iPhone Pro 以及部分 iPad/Mac 上,完全离线运行量化后的 Mistral 7B(以及其他小模型)。
- 对话历史是一个重要的用户体验问题:有些工具没有这个功能,而这款应用和其他一些应用支持保存、搜索、继续和导出聊天记录。
- 用户希望能看到性能信息(tokens/sec、RAM 使用量),并拥有更细粒度的控制(模型选择、temperature、system prompts、主题、触觉反馈)。
性能、模型与设备限制
- 手机上的 7B 模型几乎处于临界可用状态:有多条反馈称,高质量量化的 7B 模型极其慢(每个 token 需要数秒),或者除了 16GB iPad / Apple Silicon Mac 之外根本不可行。
- 更低 bit 和更小的模型(例如 1–3B、Q2–Q4 量化)通常运行尚可;7B 往往还需要缩短上下文长度。
- 有人指出,在批大小为 1 的情况下,数据中心 GPU 可以为量化 7B 模型提供超过 100 tokens/sec 的速度,远远超过手机。
稳定性与崩溃
- 多名用户报告称,在使用 Metal 加载大型或过度激进量化的模型时,会出现设备死机、应用挂起和崩溃(有时需要强制重启)。
- 开发者回应称,新版本加入了:
- 更安全的 RAM 余量检查。
- 当内存紧张时,从 GPU(Metal)回退到 CPU。
- 将默认模型改为更轻量的量化,以减少崩溃。
系统提示词与自定义
- 有几位用户抱怨许多 iOS LLM 应用不允许设置 system prompts,并称如果没有这个功能,这些应用就“没什么用”。
- 一些替代应用明确支持可编辑的 system prompts 和自定义模型预设。
- 关于 Mistral 的聊天模板如何表示 system prompts 与普通消息,也存在争论。
本地 LLM vs 服务器端 LLM
- 共识是:本地模型比顶级托管模型(如 GPT-4)更慢、更弱,但在隐私、离线使用、实验以及特定工作流(对个人数据做 RAG、函数调用)方面更有吸引力。
- 讨论还涉及吞吐量与延迟:批处理会提高服务器吞吐量,但如果调优得当,对单个用户速度的影响只有轻微下降。
Apple 硬件、ANE 与工具链
- 大多数 iOS LLM 应用通过 Metal 使用 CPU/GPU,而不是 Neural Engine,原因包括:
- 缺少直接的 ANE API(只有 CoreML)。
- CoreML 目前对 LLM 的限制较多(固定形状、量化支持较弱、内存占用大)。
- 有人希望未来 Apple 的工具链(CoreML、MLX)能让基于 ANE 的 LLM 变得实用。
定价、复用与 App Store 问题
- 关于价格的抱怨主要集中在:为一个在许多设备上无法运行的应用付费;而其他人则回应说,需求已明确说明,而且可以退款。
- 有评论者指称,这个应用在很大程度上只是某个现有免费应用的换皮版本。
- 据称 Apple 并不会在 LLM 内容“安全”方面做超出年龄分级之外的强制要求;仅仅输出冒犯性内容本身并不会构成障碍。