模型交付

大型端侧模型的首次下载体验

把首次模型下载设计成明确、可撤回的选择:先交代模型身份、体积来源、网络和存储决策,再让用户选择开始、稍后或取消,并区分传输、校验、运行时加载与任务可用状态。

审核状态: 内容已校验;中文稿供用户审核 · 2026-10-05 · Fact IDs: COVE-MODEL-01, COVE-DOWNLOAD-01

直接回答

首次打开需要下载端侧模型的应用时,应先把下载作为一项清楚、可撤回的设置选择,而不是打开应用后悄悄启动的副作用。传输开始前,界面应说明将获取哪个模型或资源包;只有版本化清单或代码配置提供了可信数值,才展示具体文件体积;同时说明用户能做哪些网络与存储选择、能否暂缓或取消,以及模型缺失时还可以使用哪些功能。若无法确认文件大小,就应明确表示未知,而不能从参数量估算一个看似精确的数字。若没有测量依据,也不要承诺几分钟内下载完成;字节数不是时间预测。 首次下载与下载中通知不是同一个问题。首次流程发生在传输之前,回答“现在是否开始、使用什么连接、用户要承担什么后果”;进度通知则发生在用户决定开始之后。只显示一个“继续”按钮,却不说明模型身份、体积依据、网络策略和取消方式,并不构成有意义的知情选择。按钮点击之后,也不能把尚未实现的后台行为、网络开关或存储回收方案伪装成已经具备的能力。每一个选项都应连接到真实、经过测试的状态转换。 界面应把应用安装、用户同意、任务排队、网络连接、下载字节、完整文件、文件校验、运行时初始化和任务就绪拆成不同状态。模型依赖缺失时,仍可显示解释设置的页面或其他不依赖模型的功能;但只有真正通过相应检查后,才允许调用需要模型的任务。文件传输成功只说明字节已经到达,不能证明其身份正确、内容完整、运行时能加载或具体任务可以执行。重新打开应用时,也要把保存的进度与磁盘上实际文件重新核对,避免恢复过期的“已完成”提示。 显示体积时,必须知道数字具体代表传输字节、最终文件大小还是其他定义。清单或配置应与明确模型版本绑定;模型更新后,旧版本数字不能继续冒充新版本事实。参数数量不能代替文件字节数;压缩、分片、临时副本、应用包和运行时缓存也可能让不同口径的数字产生差异。页面可以解释这些口径,但若产品没有测量数据,就不能推测安装后的总占用空间。体积未知时可以诚实说明暂时无法确认,并给出待核验的信息,而不是填入营销式估值。 网络选项也要忠实反映实现。若应用支持计量网络策略或用户覆盖,应在首个请求之前展示并记录用户选择,之后按该选择执行。若产品尚不能可靠地提供 Wi-Fi/移动网络切换,就不能摆出一个无效的选择器。存储预检查、取消和稍后重试等能力也一样;在对应测试未覆盖之前,不应暗示它们必定保留部分文件或一定清理临时文件。用户需要看到当前真实的可选操作,而不是理想设计稿中的承诺。 项目事实说明当前下载器会进行存储预检查、写入临时文件、请求 Range 续传、报告字节进度、在配置摘要存在时执行可选 SHA-256 校验,并在完成后尝试重命名。这些代码事实能帮助描述阶段,却不能证明下载一定在后台完成。Android 官方指南区分持久后台任务与只存在于当前进程中的任务。如果产品写着“离开页面后继续”,就必须验证真实调度机制、网络约束、取消、通知以及进程重建;否则应准确说明当前支持的应用内行为,不要让用户把关闭页面理解成仍会继续下载。 对于首次使用场景,至少要验证暂不下载、开始前取消、下载中取消(若支持)、切到后台、进程被回收、网络中断、空间不足、校验失败、运行时加载失败等路径。每种失败都应有明确的可恢复动作,不能把部分文件显示为可用模型。恢复时应重新核实文件身份,而不是只看文件存在或数据库里的成功状态。若模型是某项任务的前提,说明该任务何时才可使用;若应用还有其他本地功能,就不应让没有模型的用户误以为整个应用完全不可用。

网络受限时的首次设置

用户在出行途中首次打开离线助手,模型尚未安装,想先了解体积依据、网络影响和是否可以暂缓。

决策

只展示由版本清单或代码配置支持的信息,并在发起传输前提供开始、暂缓和取消选择。

预期结果

用户可以离开设置而不触发隐藏任务,并能在返回后看到经文件核对的传输、校验、加载和就绪状态。

需要收集的证据

只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:

  • 事实卡 COVE-MODEL-01 与 COVE-DOWNLOAD-01;本地 ModelConfig 和 ModelDownloader 的配置与阶段行为。
  • Android 官方持续后台任务及网络访问指南。

收到完整字节流还不够;最终落盘、完整性、运行时加载和恢复路径也必须验证。

实施流程

  1. 梳理模型依赖. 逐项确认哪些页面不依赖模型,哪些任务依赖指定版本,并用实现代码和测试样例验证边界。不能仅凭模型文件存在或商店描述推断应用具备离线能力。
  2. 追踪体积来源. 将显示的字节数绑定到有版本的模型清单或配置,并说明它表示传输量还是目标文件大小。数值缺失或过期时显示未知,不从参数量推测文件体积或下载时间。
  3. 传输前展示真实选项. 在第一个请求之前展示开始、暂缓和取消,并说明当前实际执行的网络政策、存储预检查和撤销方式。任何无法由当前构建执行的网络选择器都应移除。
  4. 分离就绪状态. 分别记录同意、排队、接收字节、文件校验、运行时初始化和任务可用。应用重启后把记录与实际文件对照,不能照搬旧的百分比或完成提示。
  5. 验证拒绝及错误路径. 测试不下载、取消、后台切换、进程重建、断网、空间不足、校验失败和运行时加载失败,为每一种结果写明用户可执行的恢复动作。

让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。

验收标准

  • 首个网络请求发出前,界面说明工件身份、体积来源、网络政策及开始、暂缓和取消选项。
  • 选择暂缓后不会偷偷排队;用户稍后返回时看到基于实际文件核对的状态,而非过期同意。
  • 下载、校验、运行时加载和任务就绪分开展示,失败阶段有可恢复操作。
  • 声称后台继续前,实际调度器、约束、取消和进程重建行为均有测试。

决策对照表

维度选择或证据解读方式
立即开始模型与网络、存储选择均已交代时。开始请求不等于模型已就绪,后续阶段仍需分别展示。
暂缓用户希望先使用其他功能或等待合适连接时。暂缓不能在后台消耗流量或悄悄获得新的下载同意。
取消传输已开始且应用实际支持取消时。需要准确说明部分字节保留或清理规则,不能未经测试承诺。

需要避免的失败模式

  • 不得根据参数量猜文件大小或下载耗时;未知的数值应透明显示未知。
  • 不得把应用安装、文件下载完成或通知存在说成模型已经就绪。

还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。

最小复现记录

层级记录内容
设备厂商、型号、芯片、内存档位、操作系统版本
软件应用版本和 Git 提交号
模型系列、变体、版本、格式、文件长度、摘要、量化方式
运行时名称、版本、请求后端及实际后端证据
工作负载样例版本、输入摘要、提示词摘要、输出策略
结果完成、失败、取消、回退及保护隐私的诊断信息

发布检查表

  • ☐ 主要搜索问题已回答,且没有未经支持的数字。
  • ☐ 所有模型文件和运行时版本均已固定。
  • ☐ 代表性任务和失败处理策略均有说明。
  • ☐ 生命周期、取消、清理和回退均已测试。
  • ☐ 用户内容与网络边界均有说明。
  • ☐ 结论只适用于被记录的配置。
  • ☐ 新增测试结果时链接到原始方法或证据。

来源与相关证据

中文部署与排错专题见。奇连 AI 端侧专题。

常见问题

下载前是否必须阻止所有页面?

不必。只阻止确实依赖缺失模型的任务;设置说明和安全的非模型功能仍可开放,并应把模型任务清楚标记为当前尚不可用。

首次流程能承诺固定下载分钟数吗?

只有具备代表性测量及误差说明时才可以。文件大小不能预测个人网络吞吐、断连、存储写入和校验时间;缺少数据就应避免固定完成承诺。

下载完成后模型就可以推理吗?

不能据此判断。文件还可能需要完整性校验和运行时初始化;只有目标任务所需的检查通过后,才可以展示任务已经就绪。