跳转到内容

第 33 章 按证据选择 API 或本地模型

第 32 章在运行候选之前固定了知识助手的成功标准。现在可以回答一个具体问题:现有两个 CPU 配置,有没有一个达到契约?答案是没有。一个配置在两道英文现行金额题上较好,两者对这些短输入也都运行很快,但都不满足双语事实、历史、状态和审批要求。

这份选型已经有了决定:两个候选都不合格。若报告无论如何都必须选一个,就会把“相对没那么差”包装成“已经合格”。KA-1 保留证据,明确各配置能支持什么,并说明下一次比较之前需要改变哪些条件。

本章用去厂商化标签 A、B 表示本地候选。A 是 MG-2 按验证集选出的第 50 步检查点,B 是同一架构训练到第 600 步的检查点。两份检查点保存着不同的已训练参数;本次确实比较了两种配置,没有虚构大模型基准。此前验证损失更低使 A 被选中,B 的训练损失则更低;两种损失都不能替代应用契约。

例 33.1:本次实测记录。 本次运行记录于 2026-09-13,遵守 ka1-contract-v1,题目与输入哈希已在执行前冻结。两候选都使用现有 13,875 参数的 Mini GPT,上下文长度 64,相同字节 BPE tokenizer,float64、CPU、单线程,没有重训或转换检查点。每个模型的参数张量包含 111,000 字节,即 13,875×813{,}875\times8;它不包括 Python、PyTorch、激活或文件容器开销,不能当作进程峰值。

环境为 Python 3.12.10、PyTorch 2.7.0、arm64 上的 macOS 26.5.2,按仓库固定依赖安装到独立临时 CPU 环境。贪心主策略和温度 0.7/Top-k 5 压力策略,分别在两种语言、六题、三个种子上运行,共 2×2×3×6×2=1442\times2\times3\times6\times2=144 次尝试,各因子依次为候选、策略、重复、题目、语言。全部记录都保留。

计时不含加载,每候选先预热两次;计时覆盖原有生成函数的完整调用,包括 trace 收集和字节解码。它重算完整前缀,没有 KV 缓存,也没有网络。因此,测量不能证明生产 TTFT、TPOT、并发或服务可用性;很短的错误答案尤其可能显得快。

表 33.1:实测主策略结果,每题重复三次

候选与输入语言严格通过/18 次语义通过/18 次三次全过的题/6 题完整调用中位数/p95,ms
A,英文0620.718 / 0.983
A,中文0001.376 / 2.230
B,英文0001.515 / 5.476
B,中文0001.023 / 5.160

p95 对每行十八次调用使用最近秩约定;表中保留三位小数,原记录保留更高精度。仅凭十八次计时,无法可靠估计生产环境中的尾延迟。A 的六次语义通过来自同两题重复,不是六种不同成功。所有主策略输出都能合法解码为 UTF-8,中文不合格是内容问题,不只是字节解码问题。

提示就是第 32 章固定的简短证据。对每个候选、题目和语言,三次贪心重复的下文完全相同。因此,下面两表展示了全部不同的主策略输出,没有藏起有利或不利种子。模型文本原样保留,包括残缺词,没有替模型润色成通顺语言。

表 33.2:实测英文提示下文

应答内容AB
现行 750750.750 ye is t.
纠正过时前提,答 750750.750ped.
历史 600750.750 ye the blue.
虚构状态:处理中blue.t: te. Answer: shine. Answer: te.
未获审批,因此不可操作France.bje. Order bje. Ae. Us: red
护照规则未知new.new.

表 33.3:实测中文提示下文

应答内容AB
现行 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:本地候选的证据与待承担要求

维度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;尚缺的隐私或语言证据仍不能默认为有利。排行榜的任务配比很少等于应用的完整约束集合。

实测候选 A
  1. 模型保存的数值第 50 步;13,875 参数
  2. 一组数字英文 2/6;中文 0/6
  3. 处理步骤质量未过 → 否决助手用途

750. 对现行范围正确,对历史范围错误。

实测候选 B
  1. 模型保存的数值第 600 步;相同架构
  2. 一组数字英文 0/6;中文 0/6
  3. 处理步骤质量未过 → 否决助手用途

训练损失低、调用耗时短,都不能证明答案合格。

保留证据,供新一轮比较
  1. 模型之外契约 + 哈希 + 144 次原始尝试
  2. 模型之外复核理由 + 未改变的 KA0 基线
  3. 处理步骤新候选 → 相同或明确升版的契约

API 与较大本地候选仅有带日期文档核验,不能替代实测。

图 33.1:先过质量硬门槛,再谈成本偏好。 本书原创图示 · CC BY-SA 4.0。

图 33.1 用两个否决和完整保留的证据包结束本地比较。A 仍适合原先按验证集选模的教学用途,B 仍适合研究记忆与过拟合;两者都不被接受为双语知识助手。检索基线还有用,也不会把生成器自动变成已发布产品。

33.5 按工作负载算价格,不按模型名猜成本

Section titled “33.5 按工作负载算价格,不按模型名猜成本”

例 33.2:给定的月度成本比较。 假设两个虚构候选都已通过相同质量与隐私门槛。API 每百万计费输入 token 2 美元,每百万计费输出 token 10 美元;每请求给定 1,000 个计费输入、200 个计费输出,不含缓存、工具、重试或折扣。单请求成本为 1000×2/106+200×10/106=0.0041000\times2/10^6+200\times10/10^6=0.004 美元。

虚构本地服务每月固定容量成本 20 美元,再加每请求 0.001 美元可变成本。每月 1,000 请求时,API 为 4 美元,本地为 21;10,000 请求时,API 为 40,本地为 30。令 R 为月请求数,两者相等时:

0.004R=20+0.001R,R=20/0.003≈6,666.67.0.004R=20+0.001R,\qquad R=20/0.003\approx6{,}666.67.

左边是 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 章从这里开始。

依据固定场景选型,不依据产品菜单。记录真实身份、完整输出、重复条件和日期,分清实测、给定 trace、估算与供应方声明。先应用硬门槛,再比较偏好和成本。KA-1 的完成标准是证据能够支撑决定,也包括有充分理由否决全部实测候选。

  1. 为什么表 33.1 中 A 的六次语义通过,意味着英文稳健通过 2/6,而非 6/18 个独立场景?解释同一个 750. 为何两次正确、一次错误。
  2. 按例 33.2 重算每月 5,000 请求的成本。再把输出长度加倍到 400 token,API 费率、本地假设不变,求新的 API 单请求成本与盈亏平衡请求数。
  3. 报告把第 30 章给定的 150 ms trace 当作 A 的实测 TTFT。指出证据错误,并说明 A 实际测了什么时间。
  4. 把以下失败对应到首先应调查的层:过滤器删掉现行政策;改提示后仍复用旧 KV;立即 EOS 空回答;有效答案只因句点被拒;单次调用快,多用户却排长队。
  5. 模型卡说“开放、活跃参数 4,000 万、长上下文、聊天”。对于总内存、许可权利、架构及更新后的住宿题,还缺什么信息?
  6. 将来某候选通过全部十二个“题目—语言”组合。要称作生产助手,还需哪四类证据?为什么 KA-1 诊断成功本身不够?
  1. 两道英文题各成功了三次,重复同一道题不会增加任务覆盖。两道现行题要求 750,历史题明确要求 600。字符串是否正确取决于证据和所问内容,不只取决于数字。
  2. 5,000 请求时 API 为 20 美元,本地为 25。输出改为 400 token 后,API 每请求 0.002+0.004=0.0060.002+0.004=0.006 美元,相等条件为 0.006R=20+0.001R0.006R=20+0.001R,平衡点 4,000 请求。本地可变成本保持不变是题目假设,不是对较长输出的实测事实。
  3. 它把作者给定的运行场景混成了检查点实测。A 实际记录的是预热后的完整 CPU 生成调用时间,包含 trace 和解码,并非流式 TTFT。两份记录应按各自类型保留。
  4. 分别调查数据过滤/版本治理、引擎缓存有效性、生成/模型行为与停止记录、评测器格式与语义规则、服务调度与容量。这些是待检验的起点,不是对所有同类现象的自动诊断。
  5. 活跃数不能说明驻留总权重、缓存或工作区;“开放”缺少实际许可和修改材料;“聊天”可能只是包装,架构和上下文表示仍未知;长上下文容量不证明能正确使用新的 750 元证据。
  6. 例如实际文档长度与引文、真正未使用过且有代表性的双语题、独立人评、持续负载/尾延迟、隐私/访问控制、恢复能力与明确的运维负责人。任选四项并说明理由即可。十二个公开简短诊断只提供窄检查,没有覆盖全部用户分布和部署条件。
  • Liang 等,Holistic Evaluation of Language Models,2023。支持明确场景/适配/指标组合的比较,避免把单一排行当产品质量。
  • Mitchell 等,Model Cards for Model Reporting,2019。支持报告记录身份、预期用途、评测与局限。
  • OSI,Open Source AI Definition 1.0。说明本章区分可获得权重与完整开源 AI 系统时使用的定义。
  • 日期核验部分所链接的官方模型、价格、许可、商业条款及保留规则,仅支持对应日期的文档观察。具体位置与限制保存在本部分研究记录中,没有哪项被当作本书实测基准。