直接回答
Google 的 Gemma 4 模型卡为 E2B 和 E4B 列出 128K 上下文。这是官方模型规格,不是某款 Android 应用能接受并完整完成 128K 请求的保证。实际边界会受到交付文件、量化、分词器、运行时配置、提示词构造、多模态输入、输出预算和可用内存影响。应用可能主动采用更小上限,也可能在达到模型卡数值之前失败。要回答某个设备能处理多少输入,应固定文件与运行时,准确统计 token 数,按固定任务逐步增加输入,并保存内存、完成与失败记录,包括截断、超时或内存不足。不要从上下文数值推导最低 RAM 或生成速度。本文提供验证方法,不发布 Gemma 的性能结果或设备兼容名单。另外,两篇高度重合的“长度验证”和“边界测试”主题在此合并为一篇主指南;另一条上下文边界种子继续保持 noindex,避免争夺相同查询。
场景:判断一份长文档能否在 Android 上完成摘要
产品团队希望用 Gemma 4 E2B 为用户选中的长文档生成摘要。官方模型卡写有 128K,但应用采用特定转换文件和运行时。团队需要先确认真实提示结构、输出和内存约束下能否完成整个任务,之后才能向用户描述功能范围。
决策
把 128K 当作模型卡所载的上限。使用精确 token 数量的递增输入,测试特定文件和运行时,并把“成功”定义为输入完整、摘要符合要求、内存可接受且没有隐蔽回退。如果实际证据支持更小的应用上限,就如实采用较小数字。
预期结果
团队发布绑定到精确配置的最大已测任务边界,并说明准备步骤和限制;不宣称每台 Android 手机都能使用完整模型卡上下文。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- Google Gemma 4 模型卡为 E2B/E4B 标注 128K 上下文
- 运行时可能配置低于模型卡的输入上限
- 实际完成与峰值内存需要精确的设备测试记录
设备兼容结论须绑定具体设备、系统、模型、运行时、后端和工作负载,不能靠参数量推测。
实施流程
- 固定模型文件和预处理流程. 记录官方来源、不可变模型版本、转换或量化方式、分词器文件,以及涉及的视觉或音频组件。保存应用版本和文档转为模型输入的预处理实现。不同文件或分词器会改变 token 数、内存和失败表现,不应混合不同版本的运行结果。
- 检查运行时实际配置的最大值. 记录运行时版本、后端设置、上下文分配值和应用层输入上限。模型卡描述模型属性;运行时决定应用请求引擎分配或接受什么内容。保留实际配置文件或构建参数,并区分“请求设置了某上限”和“任务在该长度完成”。
- 构建递增且有代表性的样本. 使用不含隐私信息的文档,以及经复核的摘要事实清单。先跑短文本基线,再按预定阶梯增加输入长度,同时保持提示结构和输出预算不变。样本应包含段落、姓名、日期、否定和章节边界;token 数要用实际文件对应的分词器计算,不能从字符数或页数估算。
- 每次从干净任务状态运行. 每轮尽量保持应用和设备状态一致。把模型冷加载和已加载状态分开记录,每次只提交一个样本。保存实际接受的输入长度、输出、源文是否完整进入上下文、耗时边界(若有测量)及完成状态。输入被截断后仍开始生成文字,不算长上下文任务通过。
- 观察内存及操作系统行为. 用 Android Studio Memory Profiler 或其他已说明的工具,在模型加载、输入准备、推理和释放等一致节点采样。记录进程峰值、系统内存压力、后台打断或进程退出。不能把模型下载文件大小换算成 RAM 要求;权重、运行缓冲、缓存、张量和其他应用分配都会影响结果。
- 围绕首次失败的边界复测并保留失败. 样本第一次失败或输出不完整时,在相邻长度重复同一设置,判断结果是否可复现。保留内存不足、截断、超时、格式异常和恢复结果,不要只挑最长的成功样本,也不要通过平均值隐藏失败。如果运行时无法报告失败原因,应把这个证据缺口记录下来。
- 评估产品任务并发布受限结论. 不仅要确认引擎返回了文字,还要检查摘要是否保留必要事实和用户意图。测试前先写好验收标准,再由审核者对照参考样本检查。发布结论时列明模型文件版本、运行时、设备与系统、配置上限、输入 token 数、输出预算、内存方法、成功任务和失败;结论仅适用于该配置。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 把 128K 标明为 Google 官方模型卡规格,而不是 Android 通用可用上限。
- 模型文件版本、分词器、运行时、上下文设置、提示词和实际输入 token 数绑定记录。
- 至少检查一个代表性任务的输入完整性、输出质量、内存行为以及释放和恢复。
- 截断、内存不足、超时和未完成样本均保留;结论仅覆盖实际测试配置。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 模型卡上下文 | Google 为 Gemma 4 E2B/E4B 列出 128K | 说明已发布的模型规格,不是手机任务已实测。 |
| 运行时上限 | 特定文件和应用实际采用的运行时设置 | 可能低于模型卡数值,必须记录。 |
| 实际输入 | 用对应分词器统计被接受的 token 数 | 显示送入模型多少内容,但不代表任务正确完成。 |
| 可用任务边界 | 完整输入、达标输出、内存和失败验收 | 只有保存原始运行记录,才能支持受限范围的应用结论。 |
需要避免的失败模式
- 把模型卡的上下文数值说成 Android 支持保证
- 从参数量估算可用上下文
- 只保留最长成功结果并丢弃失败样本
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
- Gemma run guide
- Android Memory Profiler
- Cove 基准测试方法
- Google AI for Developers — Gemma 4 模型卡
- Google AI Edge — LiteRT-LM 仓库
- Android Studio — Memory Profiler
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
Gemma 4 E2B 在 Android 上支持 128K 上下文吗?
Google 模型卡为 E2B/E4B 列出 128K,但这并未证明某个 Android 文件、运行时或设备能接受并完成该长度。应测试精确技术栈,并限定报告范围。
可以把 128K 换算成最低 RAM 吗?
不能仅靠模型卡上下文换算。内存还受权重、运行缓冲、缓存、输入张量、预处理、操作系统余量和分配器影响。应在明确的工作负载下测实际进程。
配置了 128K 就意味着完整请求能放进去吗?
不意味着。系统指令、历史消息、文档、多模态输入和生成内容都会占用上下文。运行时也可能更小,长请求还会被截断或因内存失败。需分开记录配置上限、实际输入和完成情况。
发布上下文测试结果时应包含什么?
写出模型文件及版本、分词器、运行时、设备和系统、配置上限、实际输入长度、输出预算、任务评分、内存方法及所有结果。不要把一个成功提示写成全设备兼容结论。