交付与验收
凭容量、质量、边界的可复跑证据验收,权重与镜像先过入闸
模型搬进机房之后,交付凭可复跑的证据验收:容量、质量、边界。设备上架通电、冒烟测试通过,都不算交付完成。换模型、换索引之后,同一套证据再跑一遍,就知道比验收那天好还是差;只做短期试用、结果不进业务流程时,这套证据过重,不适用。
交付的三步
交付分评估现场、上架验收、长期运营三步。第三步的日常工作见运维与升级。
| 步 | SZV 做什么 | 企业做什么 | 交出的东西 |
|---|---|---|---|
| 评估现场 | 按机房条件、用量与接入系统定下模型与卡数,见估算显卡数量 | 机房负责人提供机房现状,对接负责人说明预期用量与使用部门,IT 负责人列出要接入的系统,经营者确认选型 | 选型记录、设备清单 |
| 上架验收 | 到货按清单核对,上架接通,部署推理服务与知识库,接入经营系统,走入闸检查,跑验收证据 | 采购负责人到货验收,机房负责人配合上架与介质带入,对接负责人出评测集的题 | 运行中的服务、验收证据包、交接物 |
| 长期运营 | 监控、升级与故障处理,经约定的受控入口完成 | 对接负责人对接,与 SZV 商定升级时间窗 | 部署记录里的每次变更 |
「搬进机房」到第二步结束才算完成,完成的判据只看第二步交出的东西。
权重与镜像的入闸检查
离线环境里,推理主机的出站默认拒绝,所以模型权重和容器镜像是从外部进入推理主机的代码与数据。它们在联网的准备机上下载、核对、导出,经移动介质带入机房,在内网再核对一次。核对没有通过的文件,不进推理主机。
下表列出入闸可检查的项目与通行工具。采用哪些检查,签约前与企业定下,并记进验收记录。
| 检查 | 为什么要查 | 做法 | 留下什么 |
|---|---|---|---|
| 文件完整 | 介质传输和拷贝会损坏文件 | 在准备机上为权重目录与镜像 tar 生成 SHA-256 清单,内网导入前后各核对一次 | 校验清单 |
| 权重格式 | 旧式 pickle 格式的权重可以携带可执行内容 | 要求 safetensors 格式。safetensors 文档把它定位为相对 pickle 更安全的张量存储格式。不是该格式的权重,单独审批后再收 | 格式清单 |
| 仓库自带代码 | trust_remote_code=True 会让库加载模型仓库里自带的建模代码(见 Transformers 的自定义模型页),也就是在推理主机上运行外来的 Python | 入闸时默认不开。确需开启,把那份代码按版本固定,单独审核 | 审核记录 |
| 镜像签名 | 固定 digest 能证明镜像没变,不能证明它可信 | 有公钥的签名在内网验签。cosign 官方页给出用本地公钥、本地镜像验签的写法;无密钥签名要对 Fulcio 根核对证书,该页把透明日志核对列为单独一步,也没有讲隔离网络的做法。离线环境选哪条,签约前定 | 验签记录 |
| 软件物料清单 | 漏洞披露之后,要能反查哪个镜像装了哪个组件 | 为每个镜像生成 SBOM(软件物料清单)。Syft 可扫描镜像与目录,输出 CycloneDX 与 SPDX | SBOM 文件 |
| 漏洞扫描 | 已知漏洞的组件不应带进机房 | 内网扫描需要离线漏洞库。Trivy 的离线文档写明漏洞库以 OCI 镜像形式发布,可托管在自建的镜像仓库;该页没有写离线搬运的步骤,库的更新途径签约前定 | 扫描报告、漏洞库版本 |
镜像用固定 tag 或 digest,不用 latest。Docker 官方的构建建议写明:镜像 tag 可变,发布者能把它指向新镜像;钉住 digest 才保证总是同一个版本,代价是放弃自动的安全更新,要自己查新 digest。离线环境没有联网提醒,安全更新靠新镜像入闸和离线漏洞库发现。
审查供应链时,可以逐行问「这一行的记录在哪」,不必先判断哪个工具更好。
逐组件的默认外联
HF_HUB_OFFLINE=1 的作用是 Hugging Face 客户端库不再向模型仓库发起 HTTP 请求,缓存缺失时直接报错(官方环境变量页)。它管不到别的组件。下表是已核对的几个,其余组件逐个查文档。
| 组件 | 默认行为 | 关法 |
|---|---|---|
| Hugging Face 客户端库 | 默认收集使用数据,用于监控用量与排查问题 | HF_HUB_DISABLE_TELEMETRY=1,或 DO_NOT_TRACK=1(官方页写明二者等价) |
| vLLM | 默认收集匿名使用数据(官方说明) | VLLM_NO_USAGE_STATS=1 或 DO_NOT_TRACK=1,也可建空文件 ~/.config/vllm/do_not_track |
| Grafana(若用作看板) | reporting_enabled 默认为真,每 24 小时向 stats.grafana.org 发匿名统计;另有检查新版本与插件更新的开关(配置页) | 配置里设 reporting_enabled、check_for_updates、check_for_plugin_updates 为 false |
| Trivy(若在内网跑) | 更新检查与遥测会连接 check.trivy.dev | 文档称可选,没有给出关闭开关;以网络层阻断兜底 |
组件一多,应用层的开关总会漏掉一个。所以底线放在网络层:推理网段默认拒绝出站,再用一次失败的对外连接证明。规则写法见网络与机房条件,运维入口的取舍见私有部署概览。
验收的证据
容量、质量、边界的证据回答不同的问题,各自可以单独复跑。阈值在签约时按业务填写,这里只给字段与测法。
| 证据 | 回答什么 | 怎么出 | 判据谁定 | 什么时候复跑 |
|---|---|---|---|---|
| 容量 | 目标并发下,延迟还达标吗 | 阶梯加压,记下 TTFT p95、TPOT p95 都仍达标时的最高并发,以及 goodput(同时满足全部 SLO 的请求数 ÷ 测试时长)。字段定义见私有部署概览 | 企业与 SZV 在签约时按业务填写 SLO | 换硬件、引擎版本、模型、量化方式或上下文上限之后 |
| 质量 | 回答对不对,引用对不对,该拒答时拒不拒 | 企业出题建评测集:问题、标准答案、来源文档,加切片标签(多跳、应拒答、跨部门)。指标看引用是否指向正确来源、应拒答的题是否拒答、回答是否忠于检索片段 | 达线值由企业与 SZV 在签约时填写;样本量与切片同时约定 | 换模型、换嵌入、重建索引、改提示之后 |
| 边界 | 数据有没有走出不该走的路 | 测试包括:推理主机对外连接失败的记录;越权检索用例,甲部门账号提问乙部门的资料,结果必须零命中;验收期间的一次问答,能在模型网关与检索日志里按时间查到 | 出站规则由企业 IT 与 SZV 确认;越权用例按企业的部门权限划分来写 | 每次改出站规则、权限或知识库分区之后 |
边界一行里的越权用例,对应 OWASP 对向量与嵌入弱点的建议:向量库要做到权限感知,按用户或用户组做逻辑与访问上的分区,并保留检索活动的日志。检索管线里这一层怎么接,见私有部署的组成。
接口能通是进入验收证据的前提,不在其中。冒烟测试只调用模型列表、一次对话、指标端点(以 vLLM 为例,对应 /v1/models、/v1/chat/completions、/metrics),都返回正常就够了。回答好不好,由评测集判断。
验收还包含一次回退演示:演示引擎镜像回退到上一版,并确认模型权重、嵌入模型、索引、配置各自的回退点已留存、能定位。各类变更怎样回退,见运维与升级。
验收之后每次更新,把同一套评测集与压测脚本再跑一遍,结果直接与验收基线比较。
交接物
交接物移交给对接负责人与 IT 负责人,此后每次变更同步更新。
| 名称 | 包含 |
|---|---|
| 部署记录 | 部署时的配置与步骤,此后每次更新与故障处理的记录 |
| 配置与版本清单 | 容器编排文件、监控配置、出站规则;权重与镜像的版本哈希:每个镜像的 tag 与 digest,权重目录与校验清单 |
| 验收证据包 | 评测集的版本与得分,压测脚本与曲线,边界测试记录,入闸记录(校验清单、验签记录、SBOM、扫描报告) |
| 看板入口 | 访问地址、账号分配方式、告警规则、通知对象 |
| 对接方式 | 故障先报哪里,升级时间窗怎样商定 |
| 变更权限表 | 每类对象(权重、镜像、配置、评测集、告警规则)谁可以改、谁批准;生产变更须有书面执行令 |
| 选型记录 | 评估阶段的负载、候选与决策,与设备清单一致 |
评测集与压测脚本随交接物移交,便于企业按同一套数据自行复测。
限制与不适用
- 现场多出这些事:阶梯压测,企业自己出题建评测集,一组边界测试。
- 入闸检查增加带入前的准备工作。
- 验收比「能用就签字」更久。
- 入闸时用哪套工具、选哪种签名,不能外写,签约前与企业定下。
- 只做短期试用、结果不进业务流程时,这套证据过重。
其他做法
| 做法 | 它解决什么 | 为什么不用 |
|---|---|---|
| 冒烟测试加对接负责人确认,当天签字 | 现场最快 | 没有阈值,也没有样本;之后换模型或索引时,无法判断比验收时好还是差。私有部署概览已把「能用」排除出验收结论 |
| 用平均吞吐报容量 | 一个数就够 | 平均值不区分请求是否满足延迟目标,并发拉高时总吞吐涨、每个用户等得更久。改用同时满足全部 SLO 的请求数 ÷ 时长 |
验收时可以问的问题
- 请在签约前写明签名走有公钥的一条,还是无密钥的一条;公钥由谁保管,怎样带入内网。
- 请在签约前写明离线漏洞库的更新途径,以及经哪个入口带入。
- 请指给我看评测集的样本量、切片和达线值,在签约时各由谁填写。
- 请现场查变更权限表:每类对象谁可以改、谁批准,由谁维护。
- 请演示边界测试的复跑:推理主机对外连接失败的记录、越权检索零命中,结果记在验收证据包里。