1024 工程手记:把“支持新硬件”拆成一份能交接的验收记录 程序员节很适合谈理想我更愿意谈一张交接表当维护者休假另一个人能否根据记录重现一次部署、判断异常并退回旧版本基础设施工作的价值常常就在这个平常的问题里。10 月 20 日vLLM TorchTPU介绍了通过插件连接 TPU 执行路径的方式。接口保持熟悉不代表所有模型和特性都在每代硬件上具有相同支持程度。首次编译、缓存复用和算子覆盖也需要分别验证。这正好提醒我们兼容性声明只是一张验收单的起点。表里要留下什么第一层记录环境硬件型号、驱动、镜像 digest、模型 revision、依赖锁定文件。latest不能替代版本。第二层记录结果固定样本能否运行、输出是否满足业务质量要求、结构化输出和工具调用是否符合协议。随机采样不宜只比对一条最终文本应该按任务定义容差和失败条件。第三层记录恢复中断加载、节点失联、缓存失效之后谁判断失败谁重试旧副本能否继续接请求。第四层才是成本计算的是成功请求还是所有请求是否计入预热、空闲和失败重做。四层没有通用的一键绿灯。四层阶梯表示逐层补足证据不代表每种硬件都已通过这些测试。先检查交接记录是否缺项下面的标准库例子仅校验记录结构它不会证明写进去的结果真实。样本中的值都是教学占位不能直接拿去采购或上线。required {model_revision, image_digest, correctness, recovery, cost} record {model_revision: example-rev, image_digest: sha256:example, correctness: not_run} missing sorted(required - record.keys()) not_run sorted(k for k, v in record.items() if v not_run) print(missing:, , .join(missing)) print(not_run:, , .join(not_run)) assert missing [cost, recovery] assert not_run [correctness]运行输出missing: cost, recovery not_run: correctness把“是否测过”与“结果是什么”分开能阻止一种常见误读字段存在于是大家默认测试通过。未测项应该明确写not_run并保留下一步所需环境。对新后端宁愿先交付一份有限而可信的能力边界也不要把路线图写成已经支持。留下能够被反驳的结论一条有用的结论可以是“固定 revision 的模型在目标硬件上完成了这组质量回归但未覆盖多节点恢复。”它给接手者指出了可用范围和下一步工作。反过来“全栈打通、稳定可靠”既无法重现也难以追责。本文 CPU 例子只检查交接表的缺项未运行 TPU、vLLM 或模型质量评估。1024 之后值得继续做的是补齐这些证据而不是把一次发布消息写成自己的项目成绩。