☰
PocketPal AI 上手指南:下载、加载模型并完全离线地运行手机端 LLM
2026/9/25 17:55:50 网站建设 项目流程
  • 人工智能
  • AI 应用
  • 大模型
  • 本地部署
  • 移动开发
  • 语音

【免费下载链接】pocketpal-ai

An app that brings language models directly to your phone.

项目地址:https://gitcode.com/gh_mirrors/po/pocketpal-ai
点击查看免费下载

本篇指南以 PocketPal AI 的 Getting Started 文档为主线,带你完成「安装 → 下载模型 → 加载模型 → 离线对话」的完整闭环,并结合 src/store/ModelStore.ts 等源码,验证文档中描述的「Auto Offload/Load 自动内存管理」和高级生成参数在仓库中的真实实现。读完后,你不仅能独立跑起一次纯端侧对话,还能理解模型上下后台时的内存回收机制与性能指标(tokens/sec、ms/token)的来源。

一、安装应用

PocketPal AI 是一款把语言模型直接装进手机的隐私优先应用:无需账号、无需云端,对话数据不出设备(项目定位与隐私说明见 README.md)。

  • iOS / iPadOS 用户:从 App Store 获取 PocketPal AI。
  • Android 用户:从 Google Play 获取(应用包名为com.pocketpalai)。

原作者在 docs/getting_started.md 中特别说明:这是一个个人项目,作者在工作之余维护,可能还存在 bug,且无法覆盖所有设备。遇到问题时建议直接提 issue,或者直接参与贡献。

二、内置模型与任意 GGUF 模型支持

文档指出,PocketPal AI 出厂预置了几款主流小语言模型(SLM):

  • Danube 2 和 Danube 3
  • Phi
  • Gemma 2
  • Qwen

这些模型需要下载后才能使用;你也可以直接在应用内下载并使用它们,并加载任何你喜欢的其他 GGUF 模型。仓库源码印证了这些内置模型的深度支持——例如 src/utils/chat.ts 中为 Danube3 与 Danube2 分别内置了系统提示词模板(You are a helpful assistant named H2O Danube3.../...H2O Danube2...),说明它们不只是列表项,而是有专门针对的 chat template 配置。此外,设备规则文件 src/store/bundledDeviceRules/rules.android.json 与 rules.ios.json 中也包含 Qwen 等模型的匹配规则,用于按设备推荐合适的模型档位。

注意:原始文档自述「部分内容已过时,将会更新」。当前仓库的模型体系比文档发布时更丰富(例如支持 Hugging Face 在线搜索 GGUF、远程 OpenAI 兼容服务器等),下文会结合源码给出以当前仓库为准的说明。

三、下载模型

操作步骤与文档一致:

  1. 点按汉堡菜单(☰);
  2. 进入「Models」页面;
  3. 选择目标模型,点按下载。

下载逻辑由ModelStore统一管理:src/store/ModelStore.ts 中定义了addHFModel等方法,负责把 Hugging Face 上的模型与具体modelFile配对、写入本地模型列表;实际的文件下载则委托给 src/services/downloads/ 中的下载管理器。从源码结构看,应用还支持在 HF 搜索结果中挑选量化档位、下载投影模型(mmproj)等扩展能力,均围绕同一套模型数据模型展开。

四、加载模型

下载完成后,点按Load即可把模型载入内存——之后就可以开始聊天了。README 还补充了一个快捷入口:除了模型页,你也可以在聊天页输入框左侧的 chevron 图标直接从聊天界面加载模型。

加载与卸载由ModelStore的loadModel/releaseContext等上下文操作完成(基于 llama.rn 对 llama.cpp 的 GGUF 推理桥接,见 README.md 的技术栈说明)。

五、Auto Offload/Load:自动内存管理机制

为了让设备保持流畅,PocketPal AI 可以自动管理内存占用,这一点在仓库中有明确的源码实现,值得展开:

  • 在模型页面启用「Auto Offload/Load」(默认开启);
  • 应用切到后台时,自动 offload(释放)模型;
  • 切回前台时自动 reload(较大模型需要等待几秒)。

对应实现位于 src/store/ModelStore.ts:handleAppStateChange监听 React Native 的AppState变化(监听器在构造函数中通过setupAppStateListener注册),并区分三种状态迁移:

状态迁移行为
active/inactive → active(回到前台)调用checkAndReloadAutoReleasedModel()自动重新加载之前被释放的模型
active/inactive → background(进入后台)若isAutoReleaseEnabled为真且存在本地活动模型,则markAutoReleased(...)并releaseContext()释放推理上下文
active → inactive不做任何自动释放动作

源码注释还揭示了两个设计细节,体现了文档未提及的边界处理:

  • 远程模型豁免:origin === ModelOrigin.REMOTE的模型不执行自动释放——远程模型没有需要释放的原生上下文,且releaseContext()会把引擎清掉却没有重载路径;
  • 前台恢复后的能力重探测:回到前台时还会reprobeRemoteCapsIfUnknown(),因为 iOS 可能在中断连接时拆掉能力探测请求,导致 caps 一直停留在未知状态。

这个开关的 UI 落在模型页的模型卡片上,参见 src/screens/ModelsScreen/ModelCard/ModelCard.tsx 及 src/locales/en.json 中的 offload 相关文案。

六、高级设置(Advanced Settings)

点按模型项上的 chevron 图标可以打开高级 LLM 设置,文档列举的典型参数包括:

  • Temperature(温度)
  • BOS token(起始符令牌)
  • Chat template options(聊天模板选项)
  • 等等

这些设置对应仓库中的 src/components/CompletionSettings/(通用完成参数组件)、src/components/ModelSettingsSheet/(按模型的设置面板)以及 src/components/ChatGenerationSettingsSheet/(会话级生成设置)等组件,参数最终汇聚为 src/utils/completionTypes.ts 中的CompletionParams,再经由 src/api/completionEngines.ts 分发给本地 llama.cpp 引擎或远程 OpenAI 兼容引擎。默认的上下文初始化参数则由 src/utils/contextInitParamsVersions.ts 管理版本化结构。

七、开始聊天与性能指标

模型加载后,进入「Chat」页面即可与模型对话。README 补充:推理期间屏幕会自动保持唤醒(keep awake),空闲时自动停止。

生成性能的实时指标也同步展示——关注聊天气泡即可查看:

  • Tokens per second(每秒生成令牌数)
  • Milliseconds per token(每令牌耗时,毫秒)

这些指标由 src/components/AssistantTurnFooter/ 的回合页脚呈现,是本地推理路径下 llama.rn 返回的采样计时数据。

八、复制文本:现状与限制

文档明确说明了一个现存限制:目前尚未找到在**保留文本格式(尤其 Markdown)**的前提下从生成回复中框选复制文本的简单方案。当前的可行途径有两条:

  • 段落级复制:长按某个段落,复制该段内容;
  • 整段复制:使用文字气泡底部的复制图标,复制整条 AI 回复。

这一能力的 UI 分别对应 src/components/TextMessage/(消息正文,支持长按交互)与气泡底部的复制按钮(AssistantTurnFooter)。文档还向开发者抛出了一个问题:PocketPal AI 基于 React Native 构建,在「文本可选」与「保留 Markdown 格式」之间取得平衡一直是个难题,有相关经验者欢迎交流。

九、反馈与贡献

如果你有对新模型或新功能建议,文档鼓励通过创建 issue 反馈;应用内也有内置通道(App Info → "Sharing your thoughts",见 README.md 的反馈说明)。

对于想深入源码的读者,建议按以下路径继续:

  • 应用整体架构与四层层级(UI / Bridging / Engine / Hardware):README.md;
  • 模型与内存管理的核心状态机:src/store/ModelStore.ts;
  • 贡献流程:CONTRIBUTING.md。

Happy exploring! 📱

  • 人工智能
  • AI 应用
  • 大模型
  • 本地部署
  • 移动开发
  • 语音

【免费下载链接】pocketpal-ai

An app that brings language models directly to your phone.

项目地址:https://gitcode.com/gh_mirrors/po/pocketpal-ai
点击查看免费下载

相关推荐

上一篇:Hindsight Observations 知识整合机制详解:从记忆到证据化信念的自动沉淀
下一篇:ScyllaDB nodetool resetlocalschema 命令详解:从磁盘重载 schema 与解决版本不一致

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询