在手机上运行离线 AI:Gemma 4 安装与使用指南

在手机上运行离线 AI:Gemma 4 安装与使用指南

前言

在手机上拥有一个离线 AI:本教程帮助你在 Android 手机上离线运行 Gemma 4(E2B / E4B 变体),实现隐私、本地可用、免费且有趣的 AI 体验。

动机

  • 隐私保护:所有对话和推理在本地进行,不上传云端。
  • 离线可用:无网络或弱网环境下依然可用。
  • 免费:通过开源工具与免费模型变体,避免云计费。
  • 趣味性:探索在移动设备上运行大型模型的可能性和玩法。

目标

清晰介绍如何在手机上运行 Gemma 4 模型(E2B 或 E4B),包含三种部署方法(图形化应用、Termux+Ollama、Termux+llama.cpp)、测试与性能优化建议。

成果预览

  • 成功运行效果示例(文本描述):打开客户端或 Termux,启动模型后发送“介绍一下你自己”,模型能在离线环境下返回连贯的自我介绍(通常首字响应在 1~10 秒,依设备与方法而异)。

  • 截图占位:请将实际成功界面截图放在本教程对应位置以便展示(建议放入 docs/images/ 并在此处引用)。

  • 成功运行效果示例(文本描述):打开客户端或 Termux,启动模型后发送“介绍一下你自己”,模型能在离线环境下返回连贯的自我介绍(通常首字响应在 1~10 秒,依设备与方法而异)。

  • 成功运行截图(性能测试):请将下列两张截图复制到仓库 source/img/gemma4/,并分别命名为 perf-1.jpgperf-2.jpg,文档会引用它们:

    性能测试截图 1

    性能测试截图 2


第二章:部署方法 — 三种方式供你选择

选择依据:想要最简体验就用方法一;熟悉命令行并希望可控则选方法二;追求极致性能与调参则选方法三。

  1. 下载应用:在 Google Play 商店搜索并安装“Google AI Edge Gallery”,认准谷歌官方出品或https://akexiaozhan.lanzouu.com/iLuPA3mr2rna。
  2. 进入首页,点击左上角三条杠,选择 Models,选择 Gemma 4 E4B it 模型,点击 Download 下载。
  3. 下载后选择 Try it 开始离线聊天。

说明:此方法免维护、无需命令行,适合大多数用户。

方法二:Termux + Ollama(进阶命令行玩法)

适合想要通过 Ollama 管理模型、使用更灵活接口的用户。

步骤概览:

  1. 从 F-Droid 安装 Termux(F-Droid 版本更活跃)。
  2. 打开 Termux,更新与安装 Ollama:
pkg update && pkg upgrade -y
pkg install curl git -y
# 如果仓库提供 ollama 包,直接安装;否则使用 Ollama 官方安装脚本(示例):
curl -sSL https://ollama.com/install.sh | sh
  1. 启动 Ollama 服务(在一个 Termux 会话中保持运行):
ollama serve &
# 或者保持前台运行:ollama serve
  1. 在新 Termux 会话中拉取并运行模型:
# 运行 E2B
ollama run gemma4:e2b
# 或者运行 E4B
ollama run gemma4:e4b

注意:ollama serve 必须先启动,否则 ollama run 会报错。

方法三:Termux + llama.cpp(极致性能爱好者)

适合需要最大化本地性能、使用 Vulkan GPU offload 的高级用户。

  1. 安装 Termux 并更新系统:
apt update && apt upgrade -y
termux-setup-storage
  1. 安装编译与运行依赖(示例命令,视 Termux 仓库而定):
pkg install build-essential cmake clang git python -y
# 若有预打包 llama.cpp 可安装:
pkg install llama-cpp llama-cpp-backend-vulkan || true
  1. 下载 GGUF 模型文件(通过 Hugging Face 或镜像站):将 .gguf 文件放至手机存储的某个目录,例如 ~/models/

提示:下载建议使用手机/电脑先下载好再拷回手机,避免移动网络中断。

  1. 运行模型(示例):
cd ~/models
# 示例运行命令,请根据实际二进制与参数调整
./llama-cli -m gemma4-e4b.gguf -ngl 99 -c 16384 -b 512 -t 8

常用参数说明:

  • -m <模型文件>:指定 GGUF 文件。
  • -ngl N:将前 N 层 offload 到 GPU(Vulkan);设为 0 则关闭 GPU offload。
  • -c <ctx>:上下文长度(context),如 2048 / 4096 / 16384。
  • -b <batch>:token batch,大数值可增加吞吐但占内存。
  • -t <threads>:CPU 线程数。

注意:Vulkan 驱动与 -ngl 的配合可能对稳定性有影响,若出现错误请调小 -ngl 或设为 0。


第三章:运行与测试 — 验证你的 AI

首次启动与加载时间

  • 方法一(App):通常在几十秒到几分钟(取决于设备与模型)完成下载与加载。
  • Ollama:取决于网络与设备,多数情况下初次下载模型需数分钟;加载到内存取决于模型大小与设备 RAM。
  • llama.cpp:模型本地化后加载速度取决于 I/O 与量化格式,GGUF + q4 量化通常更快且占用更少内存。

对话测试用例

请在模型运行后逐条测试以下提示:

  • “介绍一下你自己。”
  • “用两句话解释量子纠缠。”
  • “讲一个适合上班路上的冷笑话。”

记录每条测试的首字响应时间(从发送到收到首个 token)与完整回复时间。

性能记录(示例模板)

  • 设备:真我 NEO7 Turbo(16GB)
  • 方法:Termux + llama.cpp(q4)
  • 模型:E4B (gemma4-e4b.gguf)
  • 首字响应:约 0.8s
  • 平均推理速度:约 12 tokens/s(视参数而定)

请根据你自己的设备记录并比较不同方法的数据。


第四章:性能优化 — 榨干手机性能

内存管理

  • 使用 4-bit 量化(如 q4_k_m 等 q4 系列 GGUF 文件)能大幅降低内存使用。
  • 限制并发会话数(示例):
export OLLAMA_MAX_SESSIONS=1
  • 使用 termux-wake-lock 防止 Android 系统在后台清理 Termux 进程:
termux-wake-lock
# 结束时:
termux-wake-unlock

推理速度与精度权衡

  • Vulkan 加速:通过 -ngl 参数将部分层 offload 到 GPU,提高速度但可能带来不稳定性。
  • 调整上下文长度 -c:手机建议从 20484096 开始测试;过大上下文会显著增加内存占用。
  • 减少 batch/beam/采样复杂度有助于降低内存压力并提升响应速度。

第五章:常见问题与排障(FAQ)

问题 1:下载模型很慢或失败?

  • 建议:使用 Hugging Face 镜像站(或在台式机下载后拷回手机),并保证足够存储空间。可使用 aria2 或其它下载工具断点续传。

问题 2:运行 Ollama 时 Termux 闪退?

  • 解法:检查是否启用了系统电池优化或后台限制,关闭 Termux 的电池优化;使用 termux-wake-lock 保持进程存活。

问题 3:ollama run 报错 “no such file or directory”?

  • 原因:通常 Ollama 服务未启动。确保在另一个 Termux 窗口中运行了 ollama serve 并保持其运行。

问题 4:llama.cpp 输出乱码?

  • 可能原因:-ngl 设置过高导致 Vulkan/驱动问题。尝试将 -ngl 调小或设为 0,或更新 Vulkan 驱动/系统。

附录:资源与致谢

  • Google AI Edge Gallery(App): 在 Google Play 搜索 “Google AI Edge Gallery”。
  • Gemma 4 官方资料:请参考模型发布方的技术报告与说明(建议访问官方页面或对应 README)。
  • Termux(F-Droid): 从 F-Droid 安装最新 Termux。
  • llama.cpp 仓库:https://github.com/ggerganov/llama.cpp
  • Hugging Face 镜像与模型下载:优先使用官方或受信任的镜像站点。

感谢社区开源工具与贡献者:Ollama、Termux、llama.cpp 及模型维护者们。