# Google AI Edge Gallery 深度研究报告
> **一句话总结**:这不是一个玩具 App,而是 Google 端侧 AI 战略的"样板间"——它把 LiteRT 推理引擎、Gemma 4 模型家族、FunctionGemma 函数调用专家、以及一个完整的端侧 Agent 工具链,打包塞进了你的手机里。
---
## 一、项目概览:手机上的人工智能展览馆
| 属性 | 详情 |
|------|------|
| **仓库** | `google-ai-edge/gallery` |
| **协议** | Apache 2.0 |
| **Stars** | 22.4k |
| **Forks** | 2.2k |
| **语言** | Kotlin 91.3% + HTML 8.1% |
| **平台** | Android 12+ / iOS 17+ |
| **定位** | 实验性 Beta,端侧 GenAI 能力展示 |
Google AI Edge Gallery 的核心设计哲学可以用一句话概括:**"模型跑在你的机器上,而不只是跑在云上。"** 它不满足于做一个"本地聊天机器人",而是试图构建一个完整的端侧 AI 应用生态——从对话、多模态理解、语音转录,到函数调用驱动的设备控制,全部在本地完成。
这不是炫技。在无网络环境(飞机、地铁、野外)、隐私敏感场景(医疗数据、商业机密)、以及实时响应需求(语音助手、AR 交互)中,端侧 AI 是唯一的解。
---
## 二、技术架构:LiteRT 如何实现本地模型推理?
### 2.1 从 TensorFlow Lite 到 LiteRT:一次彻底的重构
LiteRT(Lightweight Runtime)是 TensorFlow Lite 的继任者。Google 没有"渐进式升级",而是做了三件事:
**第一,统一了硬件抽象层。** 过去,你要用 GPU 加速得调 `GpuDelegate`,用 NPU 得找厂商 SDK,用 Edge TPU 又得换一套 API。LiteRT 通过 `CompiledModel::Create` 方法,把 CPU、XNNPACK、GPU(MLDrift)、NNAPI(NPU)、EdgeTPU 全部封装成一个统一的调用接口。开发者不再需要关心"我的手机是高通还是联发科",只需要指定后端,LiteRT 自动调度。
**第二,引入了 MLDrift GPU 加速。** 与旧版 TFLite GPU delegate 相比,MLDrift 带来了更高效的基于张量的数据组织、基于上下文和资源的智能计算,以及优化的数据传输和转换。Google 宣称在 CNN 和 Transformer 模型上,MLDrift 的性能优于 TFLite GPU delegate,甚至优于其他支持 GPU 的框架。
**第三,搞定了 NPU 的碎片化问题。** Google 与高通、联发科合作,在 LiteRT 中增加了对 NPU 的原生支持。内部基准测试显示:NPU 推理速度可达 CPU 的 **25 倍**,功耗仅 **1/5**。这包括自动下载 SDK、通过 Google Play 分发模型和运行时。
### 2.2 推理流程:从模型到 Token
一个典型的端侧推理链路是这样的:
```
Hugging Face 模型下载 → 量化/转换 (.task 格式) → LiteRT 编译
→ 选择后端 (CPU/GPU/NPU) → 异构执行 → 输出 Token
```
关键优化点:
- **TensorBuffer API**:消除 GPU 内存和 CPU 内存之间的数据复制,实现零拷贝
- **异步并发执行**:CPU、GPU、NPU 之间可以分工执行模型的不同部分,延迟降低至原来的一半
- **动态量化**:支持 int8 量化,显著减少模型体积和内存占用
### 2.3 与 llama.cpp、MLX 的对比
| 维度 | LiteRT | llama.cpp | MLX |
|------|--------|-----------|-----|
| **定位** | Google 官方端侧推理引擎 | 社区驱动的 LLM 推理方案 | Apple Silicon 专属优化 |
| **后端支持** | CPU/GPU/NPU/NNAPI/EdgeTPU | CPU/GPU (CUDA/Metal/Vulkan) | Apple GPU (Metal) |
| **模型格式** | `.task` (TFLite 衍生) | GGUF | safetensors |
| **量化方案** | int8 / int16 动态量化 | Q4_0 / Q5_K_M / Q8_0 等 | 内置量化 |
| **生态集成** | Android AICore、ML Kit | Ollama、LM Studio 等 | mlx-lm、mlx-vlm |
| **NPU 支持** | 原生(高通/联发科) | 无原生支持 | 不适用 |
| **跨平台** | Android/iOS/嵌入式 | 全平台 | 仅限 macOS |
| **开发者体验** | 统一 API,自动化调度 | 丰富的社区工具链 | Apple 生态深度整合 |
**费曼式解读**:
llama.cpp 像一个老派的机械师——工具箱丰富,你能把任何东西拆开重组,但需要你自己动手。它是社区生态的基石,Ollama、LM Studio 都建立在它之上。
MLX 像一个精心调校的 Apple 产品——如果你用 M1/M2/M3/M4 Mac,它能榨干每一滴统一内存的性能,但出了 Apple 生态就不存在。
LiteRT 像一个手机 OEM 的供应链——Google 直接把高通的 NPU SDK、联发科的芯片驱动、Android 的系统 API 全部打包好,你只需要写一行 `CompiledModel::Create(backend=GPU)`,剩下的事它全管。
---
## 三、Gemma 4 与 Thinking Mode:端侧大模型的思考能力
### 3.1 Gemma 4 端侧家族
| 型号 | 参数量 | 端侧定位 | 上下文 | 多模态 |
|------|--------|----------|--------|--------|
| Gemma 4 E2B | 20亿 | 手机/平板主力 | 256K | 是 |
| Gemma 4 E4B | 40亿 | 高端手机/笔记本 | 256K | 是 |
| Gemma 4 26B | 26B MoE | 工作站/服务器 | 256K | 是 |
| Gemma 4 31B | 31B Dense | 高性能本地部署 | 256K | 是 |
Gemma 4 最值得关注的变化是**协议**:从之前饱受诟病的定制许可("Model Derivatives"定义过于宽泛),换成了 **Apache 2.0**。这意味着企业法务终于能安心用了——修改、复用、再开发,权利明确。
### 3.2 Thinking Mode:让模型"先想后说"
Thinking Mode 不是 Google 的发明——DeepSeek-R1、OpenAI o1 都已经做了推理链。但 Gemma 4 的实现方式很简洁:
**触发方式**:在系统提示词中加入 `<|think|>` 特殊 token,或在 tokenizer 中设置 `enable_thinking=True`。
**推理过程**:模型在给出最终答案前,会生成一段内部推理链(chain-of-thought),包裹在 `<|think|> ... <|/think|>` 标签中。
**实际效果**:
- 多步数学题:正确率从 ~70% 提升到 ~90%
- 逻辑谜题:从 ~50% 提升到 ~80%
- 代码调试:能发现隐藏 bug,而非仅表面问题
**代价**:
- 生成 Token 数增加 2-5 倍(100-500 → 300-2000)
- 回答时间从 1-5 秒延长到 3-15 秒(M2 Pro 16GB:2秒 → 6-8秒)
- 多模态输入时,图像/音频/视频内容必须放在文本指令**前面**,否则效果变差
### 3.3 端侧性能实测
以 Samsung S25 Ultra 为基准(CPU、LiteRT XNNPACK delegate、4 线程):
| 指标 | Gemma-3n-E2B | Gemma-3n-E4B | Gemma3-1B |
|------|-------------|--------------|-----------|
| TTFT | 中等 | 较慢 | 快但效果差 |
| 简单问题回答 | 5-13秒 | 更慢 | 不可用 |
| GPU 加速稳定性 | 较不稳定 | - | - |
| 多模态支持 | 完整 | 完整 | 不支持 |
**冷知识**:实测中 CPU 推理有时比 GPU 更稳定。8GB 以下手机使用 GPU 时,Token 设置超过 1024 很容易崩溃;CPU 模式可以设到 4096,只是慢一点。
---
## 四、Agent Skills 与 FunctionGemma:端侧 Agent 的工具链
### 4.1 Agent Skills 架构
Agent Skills 的设计目标是:**让 LLM 从"聊天者"变成"主动型助手"**。
实现方式:
1. 通过 `Agent Skills` tile,为模型接入外部工具(Wikipedia 事实查询、地图、摘要卡片)
2. 支持从 URL 加载模块化 Skill
3. 社区可以在 GitHub Discussions 中分享自定义 Skill
### 4.2 FunctionGemma 270M:一个只做一件事的专家
这是整个项目中最有意思的技术决策。
**核心定位**:FunctionGemma 不是一个通用聊天模型。它只有 2.7 亿参数,但全部训练目标都指向一件事——**把自然语言指令映射为结构化的函数调用**。
**技术规格**:
- 架构:Gemma 3 270M Transformer
- 词表:256K(对 JSON 结构和多语言文本优化)
- 上下文:32K tokens
- 训练数据:6T tokens(知识截断 2024 年 8 月)
- 控制 token:`<start_function_declaration>` / `<end_function_declaration>`、`<start_function_call>` / `<end_function_call>`、`<start_function_response>` / `<end_function_response>`
**准确率曲线**:
- 基线模型(未经微调):58%(Mobile Actions 评测集)
- 微调后:85%
- 多轮场景下,基线模型几乎不可用(单轮 38.82% → 5 轮约 0.9%)
- 经过任务特定微调后,可接近或超过 120B 教师模型(270M vs 120B = **445 倍体积压缩**)
### 4.3 Mobile Actions:离线设备控制
Mobile Actions 是 FunctionGemma 在 Edge Gallery 中的杀手级应用:
- **完全离线**:不依赖网络,不调用云端 API
- **功能覆盖**:创建联系人、设置日历事件、开关手电筒、地图查看等 Android 系统操作
- **调用链路**:用户指令 → FunctionGemma 解析 → 生成 `<start_function_call>call:create_contact{name:<escape>张三<escape>}<end_function_call>` → App 层执行实际 Android API 调用
**工程实现**(从源码可见):
在 `Actions.kt` 中定义 `ActionType` 枚举,在 `MobileActionsTools.kt` 中用 `@Tool` 和 `@ToolParam` 注解标记函数,通过 `onFunctionCalled` 回调传递 Action 到 `MobileActionsViewModel.kt` 执行实际逻辑。
开发者可以通过三个步骤扩展:
1. 在 `Actions.kt` 定义新的 `ActionType`
2. 在 `MobileActionsTools.kt` 添加带注解的工具函数
3. 在 `MobileActionsViewModel.kt` 实现实际的 Android 逻辑
### 4.4 Tiny Garden:自然语言游戏的隐喻
Tiny Garden 是一个语音控制的迷你花园游戏。你说"在顶行种向日葵并浇水",FunctionGemma 将其分解为:
```
plant_seed(type: "sunflower", row: "top")
water_plots(coordinates: ["top-1", "top-2", "top-3"])
```
**意义**:它证明了端侧 Agent 不仅能做"实用工具",还能做"交互体验"。自然语言到行为的映射,正在从"生产力场景"扩展到"娱乐场景"。
---
## 五、端侧 Agent 能力的边界在哪里?
这是一个关键问题。Mobile Actions 和 Tiny Garden 虽然酷,但它们揭示了一个残酷现实:
**端侧 Agent 的边界由三个因素决定:模型参数量、任务领域、安全沙箱。**
### 5.1 模型参数量的硬约束
FunctionGemma 270M 的基线准确率只有 58%。这意味着:在没有微调的情况下,**每两条指令就有一条会被误解析**。对于设备控制这种高后果场景("删除所有联系人" vs "创建联系人"),58% 是不可接受的。
微调后提升到 85%,但代价是:
- 需要领域特定的数据集(几十到几百条样本起)
- 只覆盖预定义的工具集,无法泛化到新工具
- 多轮对话的准确率呈指数衰减(0.8^5 ≈ 33%,即使单轮 80%)
### 5.2 任务领域的软边界
端侧 Agent 目前擅长的:
- 单轮、意图明确的指令("打开手电筒")
- 结构化输出(JSON 格式的函数调用)
- 确定性动作(开关、创建、查询)
端侧 Agent 目前不擅长的:
- 需要常识推理的多步规划("帮我安排一个周末旅行")
- 开放式知识问答("最近有什么新闻"——端侧模型知识截止 2024 年 8 月)
- 复杂的条件判断("如果明天下雨就改期,否则确认")
### 5.3 安全沙箱的绝对边界
Google 在 Function Calling Guide 中反复强调:**必须添加 guardrails(护栏)**。
- Schema 验证:确保生成的函数调用符合预定义参数类型
- 安全默认值:对危险操作(删除、转账)设置默认拒绝
- 用户确认:敏感操作前弹窗确认
**费曼式判断**:端侧 Agent 的当前边界大约是——"一个知道怎么按按钮的助手,但不知道按钮背后发生了什么"。它擅长"执行",不擅长"理解"。对于"在手机上操作"这种有明确 API 边界的场景,它足够好用;对于"帮我解决这个人生难题"这种开放场景,它无能为力。
---
## 六、竞品对比:端侧 AI 应用生态
### 6.1 Google AI Edge Gallery vs PocketPal AI
| 维度 | Edge Gallery | PocketPal AI |
|------|-------------|--------------|
| **开发者** | Google 官方 | 社区开源 |
| **功能** | 聊天、多模态、语音、Agent、游戏 | 聊天、多模态、角色扮演 |
| **模型支持** | Gemma、Qwen 等 + 自定义 .task | Phi、Gemma、Llama、Qwen 等 + Hugging Face 导入 |
| **Agent 能力** | FunctionGemma + 设备控制 | 无原生 Agent 支持 |
| **Benchmark** | 内置 TTFT/解码速度/延迟测试 | 社区分享测试结果 |
| **多模态** | Ask Image、Audio Scribe | 部分模型支持图像分析 |
| **隐私** | 100% 本地 | 100% 本地 |
| **门槛** | 需 Google Play / 侧载 APK | 更简单直观 |
**判断**:PocketPal 更像"本地 ChatGPT 替代品",Edge Gallery 更像"端侧 AI 技术展示平台"。如果你只是想"和 AI 聊天",PocketPal 更简单;如果你想"探索端侧 AI 的边界",Edge Gallery 更完整。
### 6.2 与 MNN、ChatLLM 的间接对比
- **MNN**(阿里巴巴):移动端推理框架,对标 LiteRT,但更聚焦 Android 和阿里生态,社区活跃度不如 LiteRT
- **ChatLLM**:学术研究框架,聚焦对话质量评估,非面向消费者的应用
### 6.3 生态位总结
```
端侧 AI 应用生态(手机端)
│
├── 技术展示/实验平台
│ └── Google AI Edge Gallery ★(最完整)
│
├── 本地聊天工具
│ ├── PocketPal AI(最简单易用)
│ ├── LM Studio Mobile(专业用户)
│ └── MLC Chat(高性能)
│
├── 推理引擎/框架
│ ├── LiteRT(Google 官方)
│ ├── llama.cpp(社区标准)
│ ├── MLX(Apple 专属)
│ └── MNN(阿里系)
│
└── 模型分发
├── Hugging Face(通用)
└── Ollama(llama.cpp 封装)
```
---
## 七、Google 的端侧 AI 战略布局
### 7.1 三条产品线,一个共同目标
Google 的端侧 AI 不是散点布局,而是有清晰的层级结构:
| 层级 | 产品 | 面向 | 定位 |
|------|------|------|------|
| **系统层** | AICore + Gemini Nano | Android 系统/开发者 | 基础设施,系统级 AI 服务 |
| **应用层** | ML Kit GenAI Prompt API | App 开发者 | 生产级 SDK,快速集成 |
| **体验层** | AI Edge Gallery | 终端用户/爱好者 | 实验平台,能力展示 |
| **开发者工具** | Android Studio Agent Mode | Android 开发者 | IDE 内本地 AI 辅助编码 |
### 7.2 Gemma 4 → Gemini Nano 4 的技术纽带
Google 已确认:**Gemma 4 E2B/E4B 是下一代 Gemini Nano 4 的基础模型**。
这意味着:
- Gemma 4 上的实验(Thinking Mode、多模态、Agent Skills),会沉淀到 Gemini Nano 4 的系统级服务中
- Android 开发者今天用 AICore Developer Preview 做 Agent 原型,与未来 Gemini Nano 4 保持向前兼容
- Edge Gallery 的用户反馈(哪些功能常用、哪些卡顿、哪些没用),会直接反馈到 Nano 的优化方向
### 7.3 战略意图:从"实验品"到"基础设施"
Google 的端侧战略释放了一个明确信号:**云端依赖不再是 AI 能力的必要前提**。
当 4B 参数级别的模型能在手机上实现多模态推理、OCR、语音识别,且完全离线运行,"AI = 联网"这个等式就被打破了。结合 256K 上下文窗口,"长文档本地分析""离线代码审查"等场景从概念走向日常。
更深层的是**隐私计算叙事**:在 AI 监管日益严格的欧洲、企业数据安全要求越来越高的背景下,"数据不出设备"是一个强卖点。Google 正在把端侧 AI 从"酷炫的技术展示"变成"用户体验的下一个分水岭"。
---
## 八、实际可用性与社区反馈
### 8.1 实际体验报告
**安装门槛**:
- Android:Google Play 直接安装,或 GitHub Release 下载 APK
- iOS:TestFlight 测试渠道(尚未正式上架 App Store)
- 模型下载:需要通过 Kaggle / Hugging Face 授权和同意使用条款
**性能现实**(基于 Samsung S25 Ultra 实测):
- Gemma-3n-E2B(2B,3.7GB):简单问题 5-13 秒,GPU 加速不稳定
- Gemma-3n-E4B(4B,4.9GB):更慢,除非有特殊需求否则不推荐
- Gemma3-1B:太小,Ask Image 和 Audio Scribe 不支持,效果差,不建议安装
**关键痛点**:
1. GPU 加速容易崩溃(8GB 以下手机尤其明显)
2. 模型下载依赖 Hugging Face,"Acknowledge Agreement" 按钮容易被忽略导致 503 错误
3. Mobile Actions 被评测者评价为"现在还不实用"
4. iOS 版本仍处于 TestFlight 阶段
### 8.2 GitHub 社区概况
- **Issues**:235 个(数量说明项目活跃,但也说明还有不少问题)
- **Pull Requests**:84 个
- **社区贡献**:支持从 URL 加载自定义 Skill,GitHub Discussions 中有社区分享的模块化 Skill
### 8.3 综合评估
| 维度 | 评分(5分制) | 说明 |
|------|-------------|------|
| 技术前瞻性 | ★★★★★ | 端侧 Agent、多模态、Thinking Mode,全部在线 |
| 工程成熟度 | ★★★☆☆ | GPU 加速不稳定、模型下载门槛高 |
| 用户体验 | ★★★☆☆ | 响应慢(5-15 秒),对硬件要求高 |
| 生态完整度 | ★★★★☆ | LiteRT + AICore + ML Kit,链条完整 |
| 开发者友好度 | ★★★★☆ | 开源、Apache 2.0、可扩展 Mobile Actions |
| 日常可用性 | ★★☆☆☆ | 目前更适合"探索"而非"日常使用" |
---
## 九、总结:费曼式的最终判断
### 9.1 这个项目到底是什么?
Google AI Edge Gallery 不是 Google 做给用户的产品,而是 Google **做给开发者看的样板间**。
它想说三件事:
1. **"LiteRT 能跑 LLM"** —— 而且是 Gemma 4 这种级别的模型
2. **"端侧 Agent 是可能的"** —— FunctionGemma 270M 虽然小,但微调后 85% 的准确率足够做很多事了
3. **"我们的生态是完整的"** —— 从 AICore 系统服务到 ML Kit SDK 到 Gallery 体验层,开发者可以层层接入
### 9.2 最大的技术启示
**不是模型越大越好,而是"模型 + 运行时 + 硬件"的协同优化才决定体验**。
Gemma 4 E4B 在 Samsung S25 上跑 15 秒回答一个问题,但在 Pixel 10 + Tensor G5 上可能只要 3 秒。同样的模型,不同的芯片、不同的运行时、不同的量化策略,体验天差地别。这就是为什么 Google 坚持自己做芯片(Tensor G系列)、自己做运行时(LiteRT)、自己做模型(Gemma)——**只有全栈控制,才能把端侧 AI 的体验做到极致**。
### 9.3 最大的商业信号
**Google 在构建一个"去云端化"的 AI 能力基座**。
不是放弃云端——Gemini Pro 依然是旗舰。而是构建一个**分层架构**:
- 简单/隐私/实时任务 → 端侧(Gemma / Gemini Nano)
- 复杂/知识/创意任务 → 云端(Gemini Pro)
这个策略和 Apple 的"Apple Intelligence"(本地小模型 + 云端大模型)如出一辙,也和微软的 Copilot+ PC(端侧 NPU + 云端 Azure)方向一致。**端侧 AI 正在成为三巨头的新战场**。
### 9.4 给开发者的建议
如果你关注端侧 AI,现在该做什么?
1. **下载 Edge Gallery 玩一遍** —— 亲眼看看 2B/4B 模型在手机上是什么表现,建立直观体感
2. **研究 FunctionGemma 的微调流程** —— 如果你有垂直场景(智能家居、工业控制、医疗辅助),270M 的微调成本极低,但效果可以接近 120B 模型
3. **关注 AICore Developer Preview** —— 这是 Google 端侧 AI 的正式开发者入口,未来 Gemini Nano 4 的系统级能力会从这里开放
4. **不要高估端侧 Agent 的当前能力** —— 基线 58% 的准确率意味着你必须做任务特定微调,且必须加护栏
### 9.5 最后一句话
> Edge Gallery 里的每一个功能,都在回答同一个问题:当 AI 不再依赖云端时,它能做什么?
>
> 目前的答案是:比你想的多,但比你期待的少。
>
> 它还不能替代 ChatGPT。但它已经能——在无网络的飞机上看完一份 PDF 并总结要点、在地铁里用语音控制手机开关手电筒、在野外拍一张植物照片就知道它是不是毒蘑菇。
>
> 这些场景不值得一个"革命"的标签,但它们值得一个"开始"的标签。
---
## 参考资料
1. Google AI Edge Gallery GitHub: https://github.com/google-ai-edge/gallery
2. Function Calling Guide: https://github.com/google-ai-edge/gallery/blob/main/Function_Calling_Guide.md
3. Gemma 4 模型系列: https://ai.google.dev/gemma
4. LiteRT 文档: https://ai.google.dev/edge/litert
5. FunctionGemma 270M 模型卡: https://huggingface.co/google/functiongemma-270m-it
6. AICore Developer Preview: https://developer.android.com/ml/aicore
7. PocketPal AI: https://pocketpal.ai/
8. MNN 框架: https://github.com/alibaba/MNN
9. 实测报告(Cool3c): https://www.cool3c.com/article/245651
10. Gemma 4 部署教程: https://www.cnblogs.com/qiniushanghai/p/19837469
---
*报告生成时间:2026-05-02*
*研究方法:GitHub 源码分析 + 社区实测报告 + 技术文档 + 学术论文综述*
*分析框架:费曼风格——"如果你不能向一个普通人解释清楚,你就是没真正理解"*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!