第 33 章 按证据选择 API 或本地模型
33.1 选型报告,可以一个也不选
Section titled “33.1 选型报告,可以一个也不选”第 32 章在运行候选之前固定了知识助手的成功标准。现在可以回答一个具体问题:现有两个 CPU 配置,有没有一个达到契约?答案是没有。一个配置在两道英文现行金额题上较好,两者对这些短输入也都运行很快,但都不满足双语事实、历史、状态和审批要求。
这份选型已经有了决定:两个候选都不合格。若报告无论如何都必须选一个,就会把“相对没那么差”包装成“已经合格”。KA-1 保留证据,明确各配置能支持什么,并说明下一次比较之前需要改变哪些条件。
本章用去厂商化标签 A、B 表示本地候选。A 是 MG-2 按验证集选出的第 50 步检查点,B 是同一架构训练到第 600 步的检查点。两份检查点保存着不同的已训练参数;本次确实比较了两种配置,没有虚构大模型基准。此前验证损失更低使 A 被选中,B 的训练损失则更低;两种损失都不能替代应用契约。
33.2 先说明到底比较了什么
Section titled “33.2 先说明到底比较了什么”例 33.1:本次实测记录。 本次运行记录于 2026-09-13,遵守 ka1-contract-v1,题目与输入哈希已在执行前冻结。两候选都使用现有 13,875 参数的 Mini GPT,上下文长度 64,相同字节 BPE tokenizer,float64、CPU、单线程,没有重训或转换检查点。每个模型的参数张量包含 111,000 字节,即 ;它不包括 Python、PyTorch、激活或文件容器开销,不能当作进程峰值。
环境为 Python 3.12.10、PyTorch 2.7.0、arm64 上的 macOS 26.5.2,按仓库固定依赖安装到独立临时 CPU 环境。贪心主策略和温度 0.7/Top-k 5 压力策略,分别在两种语言、六题、三个种子上运行,共 次尝试,各因子依次为候选、策略、重复、题目、语言。全部记录都保留。
计时不含加载,每候选先预热两次;计时覆盖原有生成函数的完整调用,包括 trace 收集和字节解码。它重算完整前缀,没有 KV 缓存,也没有网络。因此,测量不能证明生产 TTFT、TPOT、并发或服务可用性;很短的错误答案尤其可能显得快。
表 33.1:实测主策略结果,每题重复三次
| 候选与输入语言 | 严格通过/18 次 | 语义通过/18 次 | 三次全过的题/6 题 | 完整调用中位数/p95,ms |
|---|---|---|---|---|
| A,英文 | 0 | 6 | 2 | 0.718 / 0.983 |
| A,中文 | 0 | 0 | 0 | 1.376 / 2.230 |
| B,英文 | 0 | 0 | 0 | 1.515 / 5.476 |
| B,中文 | 0 | 0 | 0 | 1.023 / 5.160 |
p95 对每行十八次调用使用最近秩约定;表中保留三位小数,原记录保留更高精度。仅凭十八次计时,无法可靠估计生产环境中的尾延迟。A 的六次语义通过来自同两题重复,不是六种不同成功。所有主策略输出都能合法解码为 UTF-8,中文不合格是内容问题,不只是字节解码问题。
33.3 看清汇总数字背后的回答
Section titled “33.3 看清汇总数字背后的回答”提示就是第 32 章固定的简短证据。对每个候选、题目和语言,三次贪心重复的下文完全相同。因此,下面两表展示了全部不同的主策略输出,没有藏起有利或不利种子。模型文本原样保留,包括残缺词,没有替模型润色成通顺语言。
表 33.2:实测英文提示下文
| 应答内容 | A | B |
|---|---|---|
| 现行 750 | 750. | 750 ye is t. |
| 纠正过时前提,答 750 | 750. | 750ped. |
| 历史 600 | 750. | 750 ye the blue. |
| 虚构状态:处理中 | blue. | t: te. Answer: shine. Answer: te. |
| 未获审批,因此不可操作 | France. | bje. Order bje. Ae. Us: red |
| 护照规则未知 | new. | new. |
表 33.3:实测中文提示下文
| 应答内容 | A | B |
|---|---|---|
| 现行 750 | yuor: blue. | red red red t: red te. Ver: red t: red t |
| 纠正过时前提,答 750 | France. | . |
| 历史 600 | France. | . |
| 虚构状态:处理中 | France key France. | suor. |
| 未获审批,因此不可操作 | e key France. | er: red the red the red the red er: |
| 护照规则未知 | . | . |
A 的 750. 在前两道英文题上,是严格检测器因句点造成的假阴性;到了历史题,同一个字符串却错了。B 开头看似正确的数字,也不能让整段碎片成为可理解的答案。ka1-adjudication-v1.json 中的理由分别处理这些情形,子串检测器却会把它们混在一起。
B 的英文状态题与中文现行金额题达到 24 个新 token 预算,两种语言的审批题达到上下文上限,其余主策略输出因 EOS 停止。停止是机制,不是成功标签:new. 后跟 EOS,不等于表达了“未知”。审批题失败也不表示真的取消了订单,整个实验根本没有执行操作。
压力策略中,A 的十八次英文尝试只有一次语义通过,没有哪道题三次全过;其他候选/语言组合语义通过数均为零。B 的一次英文过时前提尝试产生无效 UTF-8,显示为 750�on: n: �.,同时保留原字节。这是需要记录的解码失败,不是删除样例的理由。压力策略也没有任何严格格式通过。这些变化加强了否决依据并提供失败证据,不能当作十八个独立的总体质量估计。
继承的检索比较也已在全部九道 KA-0 题、两种语言上重跑:Keyword 5/9,BoW Count 6/9,TF-IDF 7/9,与保留的基线一致。这些数衡量文档选择,不能加到回答成功数里,拼成更大的“助手准确率”。分开记录,才能找到不同的修复位置。
33.4 先过硬门槛,再比较偏好
Section titled “33.4 先过硬门槛,再比较偏好”表 33.4:本地候选的证据与待承担要求
| 维度 | A、B 的证据 | 对决定的影响 |
|---|---|---|
| 能力与语言 | 表 33.1—33.3;A 英文仅 2/6 稳健通过,两者中文均 0/6 | 两者均未过质量门槛 |
| 延迟 | 短输入、预热 CPU 调用低于诊断 p95 的 1,000 ms 门槛 | 速度不能修复错误回答,也未证明服务 SLO |
| 成本 | 没有付费模型调用;已数参数张量存储 | 硬件、电力、闲置容量、维护成本未测 |
| 隐私 | 本地程序读取仓库数据与权重,不发服务请求 | 本实验不外传提示;部署后的日志、访问仍需检查 |
| 许可 | 原创数据/检查点 CC BY-SA 4.0;原创代码 Apache-2.0 | 保留逐项许可,不能给整个包笼统贴一个标签 |
| 可用性 | 保留的本地文件在已测 CPU 环境可运行 | 不依赖 API 配额,但未测在线率与多用户恢复能力 |
| 维护 | 小模型可检查,tokenizer 固定,有明确测试与哈希 | 仍需有人负责依赖更新、数据版本、恢复与监控 |
有些维度是门槛。某份数据必须留在本地的要求,可以在质量测试前排除外部服务;现行政策或审批规则未满足,则会排除这两个本地候选,哪怕延迟很低。只有满足硬约束之后,加权偏好才有意义,否则公式会让“便宜”补偿应用明令不允许的行为。
若两个可行候选在延迟和运维工作量之间各有优势,应说明当前工作负载为什么更看重其中一项。如果 A 在全部已测偏好上都不差于 B,且至少一项更好,就说它在这些测量上支配 B;尚缺的隐私或语言证据仍不能默认为有利。排行榜的任务配比很少等于应用的完整约束集合。
- 模型保存的数值第 50 步;13,875 参数
- 一组数字英文 2/6;中文 0/6
- 处理步骤质量未过 → 否决助手用途
750. 对现行范围正确,对历史范围错误。
- 模型保存的数值第 600 步;相同架构
- 一组数字英文 0/6;中文 0/6
- 处理步骤质量未过 → 否决助手用途
训练损失低、调用耗时短,都不能证明答案合格。
- 模型之外契约 + 哈希 + 144 次原始尝试
- 模型之外复核理由 + 未改变的 KA0 基线
- 处理步骤新候选 → 相同或明确升版的契约
API 与较大本地候选仅有带日期文档核验,不能替代实测。
图 33.1 用两个否决和完整保留的证据包结束本地比较。A 仍适合原先按验证集选模的教学用途,B 仍适合研究记忆与过拟合;两者都不被接受为双语知识助手。检索基线还有用,也不会把生成器自动变成已发布产品。
33.5 按工作负载算价格,不按模型名猜成本
Section titled “33.5 按工作负载算价格,不按模型名猜成本”例 33.2:给定的月度成本比较。 假设两个虚构候选都已通过相同质量与隐私门槛。API 每百万计费输入 token 2 美元,每百万计费输出 token 10 美元;每请求给定 1,000 个计费输入、200 个计费输出,不含缓存、工具、重试或折扣。单请求成本为 美元。
虚构本地服务每月固定容量成本 20 美元,再加每请求 0.001 美元可变成本。每月 1,000 请求时,API 为 4 美元,本地为 21;10,000 请求时,API 为 40,本地为 30。令 R 为月请求数,两者相等时:
左边是 API 美元数,右边是本地固定与可变美元数。按整数请求,在这些假设下,从每月 6,667 请求起,本地估算更便宜。这没有证明本地机器能按所需延迟承受这些流量,也没有证明已计入人力。计算每个成功请求的成本时,失败尝试和重试都应算进去。同一文本经不同 tokenizer 可能产生不同计费数量,不能把 Mini GPT 的 token 数抄到别家的账单里。
这个算例有意不绑定厂商。实际价格、产品版本和许可条款放在带日期的核验层,与稳定的决策方法分开。
33.6 带日期的在线核验:文档不是基准测试
Section titled “33.6 带日期的在线核验:文档不是基准测试”配套 external-candidates-2026-09-13.json 标明 as_of: 2026-09-13、last_verified: 2026-09-13,通过官方来源检查一个托管候选、一个可下载候选。两者都没有执行 KA-1,也不能根据前面的 CPU 结果选择它们。它们用于说明将来选做实验之前需要核验什么。
表 33.5:该日期实际检查的官方文档
| 候选 | 已核验身份与所列条件 | 此处未测或未解决 |
|---|---|---|
| 托管 API 示例 | Claude Haiku 4.5,快照 claude-haiku-4-5-20251001;标准输入 1 美元/百万 token,输出 5 美元/百万;模型页列 200K 上下文、64K 最大输出 | 两种语言的 KA-1 质量、请求延迟、账户资格与实际账单 |
| 可下载示例 | Qwen2.5-0.5B-Instruct;模型卡列总参数 0.49B、24 层、Q14/KV2、32,768 上下文;已检查 Apache-2.0 许可正文 | 未下载/运行;本地速度、峰值内存、任务质量、完整运行环境及模型版本固定 |
API 身份与费率来自模型规格及官方价格表。按该标准费率,给定 1,000 输入、200 输出 token 的请求,在其他收费前为 0.002 美元。这是估算,不是账单。访问受支持地区规则约束,所检查的商业 API 列表不包含中国大陆;本例不是绕过访问条件的建议。
供应方商业条款与组织数据保留规则回答的又是不同于价格的问题。“不用于训练”不等于“不存储”。所检查的标准 API 保留规则有 30 天时限,也有服务/协议、执法与法律例外;某些被标记或用于反馈的数据有更长规则。具体组织须核查适用合同与数据路径,本书没有批准提交私有记录。
本地示例应看具体模型卡、配置和实际许可。家族介绍虽提到更长上下文,这个模型自己的上限是 32,768。配置最后修改版本以 eaa56b5 开头,许可在 f0ef055 引入;记录保存完整的文件变更哈希,没有把它们冒充整个当前仓库的固定版本。真正运行前,还须固定整套权重/tokenizer/配置版本和经测试的执行引擎。
开放权重(open weight) 表示权重按某些条件可获得,单凭这个名称,不能完整说明使用自由、训练代码或数据信息。OSI 开源 AI 定义 1.0列出了额外要求,包括适合修改的首选形式。权重使用 Apache 许可,是有用的许可证据,不会自动证明全部系统组件都符合该定义。反过来,本地运行虽可避免把提示传给外部服务,应用日志或集成设计不当仍可能泄漏。架构、访问、许可、运维是独立的比较轴。
33.7 KA-1 的决定,以及接下来的问题
Section titled “33.7 KA-1 的决定,以及接下来的问题”本报告否决 A、B 用于约定的助手任务,保留 A 的既有教学用途,也保留两份检查点与全部失败供后续研究。重新考虑时,需要适当的新候选、新冻结比较、保持不变或明确升版的标准、完整语言覆盖,以及此前缺失要求的新证据。本书没有声称完成 API/GPU 实验、独立人评、生产负载测试或部署。
证据包包含契约、运行前冻结、模型/tokenizer/数据/代码哈希、144 次原始尝试、复核理由、同集词法对照和带日期决定。配套英文工程报告给出命令与机器可读文件位置。核心阅读不要求执行程序或购买访问;仅凭正文表格,就足以核查这些候选为何被否决。
本部分结束时,可以沿所有层追踪一个请求:数据来源和配比影响训练能学到什么,参数、token、算力约束训练,组件与架构塑造状态,生成策略选择输出,模型运行与服务消耗资源,评测判断结果是否可接受。某一环改善,不能替其他环节作保证。证据也自然引出了下一个问题:基座模型已学会续写文字,为什么还需要另外教它遵循指令、协助用户?第 34 章从这里开始。
33.8 本章小结
Section titled “33.8 本章小结”依据固定场景选型,不依据产品菜单。记录真实身份、完整输出、重复条件和日期,分清实测、给定 trace、估算与供应方声明。先应用硬门槛,再比较偏好和成本。KA-1 的完成标准是证据能够支撑决定,也包括有充分理由否决全部实测候选。
33.9 习题与本部分检查点
Section titled “33.9 习题与本部分检查点”- 为什么表 33.1 中 A 的六次语义通过,意味着英文稳健通过 2/6,而非 6/18 个独立场景?解释同一个
750.为何两次正确、一次错误。 - 按例 33.2 重算每月 5,000 请求的成本。再把输出长度加倍到 400 token,API 费率、本地假设不变,求新的 API 单请求成本与盈亏平衡请求数。
- 报告把第 30 章给定的 150 ms trace 当作 A 的实测 TTFT。指出证据错误,并说明 A 实际测了什么时间。
- 把以下失败对应到首先应调查的层:过滤器删掉现行政策;改提示后仍复用旧 KV;立即 EOS 空回答;有效答案只因句点被拒;单次调用快,多用户却排长队。
- 模型卡说“开放、活跃参数 4,000 万、长上下文、聊天”。对于总内存、许可权利、架构及更新后的住宿题,还缺什么信息?
- 将来某候选通过全部十二个“题目—语言”组合。要称作生产助手,还需哪四类证据?为什么 KA-1 诊断成功本身不够?
33.10 参考解答
Section titled “33.10 参考解答”- 两道英文题各成功了三次,重复同一道题不会增加任务覆盖。两道现行题要求 750,历史题明确要求 600。字符串是否正确取决于证据和所问内容,不只取决于数字。
- 5,000 请求时 API 为 20 美元,本地为 25。输出改为 400 token 后,API 每请求 美元,相等条件为 ,平衡点 4,000 请求。本地可变成本保持不变是题目假设,不是对较长输出的实测事实。
- 它把作者给定的运行场景混成了检查点实测。A 实际记录的是预热后的完整 CPU 生成调用时间,包含 trace 和解码,并非流式 TTFT。两份记录应按各自类型保留。
- 分别调查数据过滤/版本治理、引擎缓存有效性、生成/模型行为与停止记录、评测器格式与语义规则、服务调度与容量。这些是待检验的起点,不是对所有同类现象的自动诊断。
- 活跃数不能说明驻留总权重、缓存或工作区;“开放”缺少实际许可和修改材料;“聊天”可能只是包装,架构和上下文表示仍未知;长上下文容量不证明能正确使用新的 750 元证据。
- 例如实际文档长度与引文、真正未使用过且有代表性的双语题、独立人评、持续负载/尾延迟、隐私/访问控制、恢复能力与明确的运维负责人。任选四项并说明理由即可。十二个公开简短诊断只提供窄检查,没有覆盖全部用户分布和部署条件。
33.11 参考文献
Section titled “33.11 参考文献”- Liang 等,Holistic Evaluation of Language Models,2023。支持明确场景/适配/指标组合的比较,避免把单一排行当产品质量。
- Mitchell 等,Model Cards for Model Reporting,2019。支持报告记录身份、预期用途、评测与局限。
- OSI,Open Source AI Definition 1.0。说明本章区分可获得权重与完整开源 AI 系统时使用的定义。
- 日期核验部分所链接的官方模型、价格、许可、商业条款及保留规则,仅支持对应日期的文档观察。具体位置与限制保存在本部分研究记录中,没有哪项被当作本书实测基准。