运行时与集成

为端侧模型制品建立可复现版本清单

版本身份必须覆盖模型源、转换结果和运行依赖之间的精确关系,而非只写模型家族名称。

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

直接回答

端侧模型版本应包含复现和激活该模型所需的准确输入,而不是只有家族名或文件名。实用的发布记录应绑定上游仓库及不可变提交、源文件、许可引用、分词器和模板修订、转换工具与选项、输出包身份、已知长度及可信摘要、运行时版本、应用构建和验收夹具版本。将这些关系写入发布清单,并确保更新后仍能查阅。版本标签可以稳定且便于人读,但底层必须指向不可变内容;“latest”只是频道指针,不是制品身份。 本地项目说明了为什么必须精确版本化:ModelConfig 将 E2B URL 固定到一个提交,而 E4B URL 和预期大小明确标注为占位。当前 E2B 的 SHA-256 为空。事实卡 COVE-MODEL-01、COVE-MODEL-02 和 COVE-MODEL-03 分别区分固定制品与未验证或占位元数据。这些是本地源码事实,不是公开发布目录。页面不能把仓库中的文件引用改写成公开下载、机型支持或产品正式发布承诺。 上游源修订与派生制品修订要分别记录。转换可以在源提交不变时产生新字节;改变量化参数也会得到另一个输出;只改分词器或聊天模板,即使权重未变,也可能改变行为。因此一个版本字段无法覆盖全部依赖。使用包含多个命名组件的清单,并尽可能保存哈希或不可变引用。若某个摘要缺失,就标为不可用,另行记录源修订、长度来源和构建元数据,不要拼出一个看似完整的伪版本。 可复现还需要保存能解释实质变化的构建环境:转换器提交、依赖版本、运行时发布版、目标格式、选项、校准数据身份和许可、脚本等。模型清单不应保存用户私密提示词或任务数据。避免在发布记录中只写会变动的依赖标签;即使构建文件使用动态选择器,也要记录解析后的版本。依赖或上游资源改变时创建新候选并重新验收。家族公布的能力或参数量不能标识应用实际使用的文件。 版本也决定缓存和用户派生数据的有效性。嵌入、令牌缓存、编译结果、会话摘要或索引可能依赖模型、分词器、预处理或运行时。应将相应依赖键写入派生记录,只失效确实依赖变化组件的数据。除非另有明确政策,保护源会话与用户文件。回滚应恢复兼容的一组模型和运行时身份,不能在切换到新制品后悄悄用不同模型重新解释旧派生结果。 发布清单要机器可检查,也要便于审阅。区分上游来源、转换包、运行时、应用、可选资源、完整性元数据、测试夹具及批准状态。写清“由什么构建”“依赖什么”“在哪个版本验证”等关系,确保审计者能分辨摘要针对的是源权重还是最终包。只有通过可信流程对准确字节生成并独立核验后才发布摘要。不同量化、不同镜像的摘要不能建立当前制品身份。 ### 操作步骤 1. 为模型版本定义组件图:源仓库/修订、源文件、分词器与模板、转换配方、最终包、运行时、应用构建和依赖派生数据。 2. 每组发生变化的字节分配不可变身份,记录完整上游提交、工具版本、解析后的运行时、清单修订及摘要来源;缺失字段明确标未知。 3. 将发布清单随构建和测试产物保存。标出摘要覆盖哪个文件、哪个运行时支持该包,以及用哪些测试夹具验收。 4. 增加更新和回滚测试,验证应用选择正确清单、发现依赖变化、仅失效依赖缓存,并能恢复前一兼容组合。 5. 按清单和真实分发证据审核对外表述,不把固定仓库修订说成 APK、商店列表、设备支持或已公开可用。 ### 验收标准 - 每个发布身份都能解析到不可变源和最终包输入,不能将可变分支作为精确制品版本。 - 源、转换、分词器、运行时、应用和测试夹具分别记录,并明示其关系。 - 摘要缺失或字段仍占位时标记未知,不据此推断发布和兼容状态。 - 回滚恢复有记录的兼容组合,只使关联派生数据失效并保留用户创建内容。 ### 对照 | 标识 | 含义 | 限制 | |---|---|---| | 模型家族名 | 人类可读的系列或变体标签 | 不能选定精确修订、转换或运行时 | | 仓库完整提交 | 上游仓库的不可变状态 | 不标识转换输出或应用集成 | | 发布清单 | 串联源、输出、运行时、应用和测试 | 可信度取决于字段是否准确生成并验证 | ### 常见问题 **只有模型名称能复现一次发布吗?**不能。同一家族可能包含不同提交、分词器、转换、量化参数、包内容和运行时要求。清单要记录确切修订以及它们之间的关系。 **main 分支能当成固定生产版本吗?**不能。分支内容会改变。每个候选都应解析并记录完整提交,再把打包结果与验收记录绑定到该提交。 **应用和模型应该使用同一个版本号吗?**不一定。它们是不同组件,应明确记录兼容关系。应用可能支持多个模型,同一制品也可能在不同运行时得到不同验证结果。 **摘要不可用时应该记录什么?**将摘要标为未知,分别保留来源和构建记录。只有对精确最终字节生成并核验了可信摘要,才能声称完成校验。

运行时升级后需要重建一份模型发布

团队收到反馈称应用运行时更新后模型任务行为变化。旧发布记录只有家族名和可变下载地址,无法确定用户曾安装的源提交、转换、分词器或最终包。

决策

创建分组件清单,将每项依赖及验收记录绑定不可变身份。

预期结果

团队可以重建候选链、比较新旧组合,并准确回滚,而不用猜家族名具体指哪一个文件。

需要收集的证据

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

  • 源仓库不可变提交
  • 转换工具、包、运行时与应用版本
  • 验收夹具和回滚对应关系

只有记录了模型身份、构建配置、实际后端、任务样例和失败情况,运行时比较才可复核。

实施流程

  1. 映射每项发布依赖. 列出上游来源、分词器、模板、转换配方、最终包、运行时、应用构建、可选资源和派生数据,标出独立关系及一起验证的组合。
  2. 解析可变引用. 发布记录中将分支或 latest 替换为完整不可变提交;即使构建使用动态依赖,也记录实际解析版本。
  3. 生成并审阅清单. 记录输出身份、摘要来源、长度来源、工具链,以及 built-from、validated-with 等关系。缺失信息保持未知,不靠猜测补齐。
  4. 绑定验收测试与兼容结论. 将版本化夹具、运行时加载结果和任务验收绑定准确清单组合。平台或设备结论仅限真实测试记录。
  5. 测试升级和回滚. 一次变更一项依赖,检查缓存失效规则,并验证回滚恢复兼容组合且保留用户创建的数据。

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

验收标准

  • 清单不依赖可变标签即可唯一解析源和最终包。
  • 运行时、分词器、应用和测试版本不会被家族名替代。
  • 摘要和分发状态只在独立验证时记录。
  • 可以按版本清单重建并恢复上一兼容组合。

决策对照表

维度选择或证据解读方式
家族或变体名展示名称便于沟通但不是可复现制品键。
完整源提交上游身份固定仓库状态但不覆盖转换包或运行时。
发布清单依赖图在来源记录准确时串联实际输入和检查。

需要避免的失败模式

  • 把 main 或 latest 当作固定版本
  • 把源模型哈希当成转换后包的哈希
  • 从版本清单推断未验证的下载或兼容状态

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

最小复现记录

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

发布检查表

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

来源与相关证据

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

常见问题

一个模型名能复现精确应用制品吗?

不能。源修订、分词器、转换选项、包内容和运行时会变化。应分别保存确切身份和关联关系,才能重建并核对候选及依赖清单。

main 是固定发布版本吗?

不是,它会变化。每个候选都要解析到完整提交,并把生成的包和验证记录绑定该不可变来源,以便之后审计复现当时状态。

模型与应用应该用同一版本号吗?

它们是不同组件,应分别记录并说明兼容关系;一个应用可支持多个模型,一个模型也可能在不同运行时得到不同结果,应避免误判兼容范围。

没有可信摘要时怎么办?

标记摘要不可用,并保留其他来源与构建证据。对确切最终字节生成且核验可信摘要之前,不应声称已校验,也不能复用源文件摘要。