返回博客
2026年9月21日7 min read· WinClaw

JEV 实测效果分享

拿苹果十年 10-K 年报做语料,让 Jev 和生产在用的召回判定 LLM 正面跑一遍:79 个样本,准确率打平 92.2%,平均时延 1.0s 对 11.3s,单次判定约 $0.00018。

JevSystem OneLLMRAG知识库

昨天我们给 Jev 做了一次真刀真枪的实测:拿苹果十年的年报当语料,让它和生产环境在用的召回判定 LLM 正面跑了一遍。先把结论放在这——准确率打平,速度差了 11 倍,单次判定成本约 $0.00018

这篇文章交代一下我们测了什么、怎么测的,最后给出完整数据。

测的是什么:一份真实的财务语料

测试语料是 Apple 的 10-K 年报,FY2016 到 FY2025 共十年,HTML 原文来自 SEC EDGAR(AnnualReports.com 中途把我们限流了,所以直接用了官方源)。每年抽取两份文档:MD&A(管理层讨论与分析,含流动性章节)和 Business,一共 20 份,每份 8.5k–16k 字符。

选这个语料不是随便挑的。10-K 有几个很适合压测召回判定的特点:文档长、结构相似、年份敏感,而且相邻年份的内容大量重叠——同一套模板、同一批科目,只是数字换了。这正是召回系统最容易翻车的场景:检索回来的文档看着都对,但年份不对

怎么测的:测试逻辑

我们设计了 25 个按年份锚定的问题,中英文混合,比如「FY2019 年报里,Apple 把某项收入重分类到了哪个科目」这类。每个问题在对应年份的文档里都锚定了一个可以直接验证的 evidence 子串——判对判错不靠感觉,看字符串。

样本一共 79 个 (question, doc) 对:

  • 25 个 gold:问题配它真正所属年份的文档;
  • 52 个 hard negative:同一个问题,配相邻年份的同类型文档——专门考「看着像但其实不是」;
  • 2 个无关文档:非财务内容,凑个热闹。

有一个标注上的细节值得交代:10-K 的 MD&A 表格自带三年对比数据,所以 13 个名义上的「hard negative」其实真的包含所问的事实。这些样本没有一概标成 false,而是按 evidence 字面是否出现标成 expected_relevant=true。不这么修,两边的准确率都会被冤枉。

判定契约两边完全对齐:输出 yes/<0-10>no/<0-10>,阈值 5。Jev 走 TypeSafe 的 /v1/systemone 线上接口(jev-1.13.0);baseline 是 deepseek/deepseek-v4-flash,走 LLMManager/SimpleByzerLLMgen.timeout=60s,6 个并发 worker——和生产配置一致。

数据

79 个样本跑完,核心结果如下:

指标Baseline LLMJev
已判定 / 错误数77 / 277 / 2
对 expected 的准确率92.2%92.2%
Gold 保留(共 25)2425
Negative 拒绝(共 54 个非 gold)4037
平均时延11.3 s1.0 s
p50 时延3.0 s0.9 s
总输入 token280,856333,103
总成本(估算)$0.0140(约 $0.000177/次)

两边都各错了 2 次,而且都是超时,不是判错:Jev 两次 JevRequestError 读超时,baseline 两次 60 秒 LLMRequestTimeoutError。没有任何一侧出现契约违规——所有返回文本都能按 yes/<n>/no/<n> 解析。

两个判定器的决策一致率 94.7%(75 个双方都判定的样本里只有 4 个分歧),分数 MAE 0.95。4 个分歧全部出现在 hard negative 上:

id期望LLMJev判读
q09-neg2Tno/3yes/5Jev 对——FY2020 文档确实含 FY2019 的重分类说明
q14-neg2Tno/2yes/6Jev 对——FY2021 文档讨论了 COVID-19 的持续影响
q11-neg1Fno/3yes/7LLM 对——Jev 在相邻年份分红文档上误报
q17-neg2Tyes/6no/2LLM 对——FY2018 文档保留了 $250B 计划数字,Jev 漏报

Jev 占优 2 例、baseline 占优 2 例,分歧是对称的,不是系统性偏差。

顺手算一笔账:成本

上面表里 baseline 的成本栏是空的,这里补上。DeepSeek 官方定价页上,我们这次用的 deepseek-v4-flash 现在由 V4.1-Flash 承接:cache miss 输入 $0.15/百万 token(off-peak)、$0.30(peak);输出 $0.6 / $1.2;cache hit 输入几乎免费($0.003 / $0.006)。

这次评测跑在周日,全天按 off-peak 计:28.1 万输入 token 全按 miss 算是 $0.042;输出侧没有单独记录 token 数,但它是个 reasoning 模型,按每次几百到上千 token 估算再加 $0.01–0.04——合计约 $0.05–0.08,单次判定 $0.0006–0.001

对比 Jev 的 $0.0140 总价、$0.000177 单次:Jev 便宜 3.5–5.6 倍;如果 baseline 按 peak 价算,差距拉到 8 倍左右。值得注意的一点:Jev 的输入 token 反而更多(33.3 万 vs 28.1 万),总价却更低——它一次前向只出概率分布,没有 reasoning 输出这条计费线。

怎么看这份数据

第一,准确率打平这件事本身就值钱。Jev 不生成文本,一次前向只出 yes/no + 分数 的结构化判定,在这条语料上做到了和生产 LLM 相同的 92.2%,而平均时延只有对方的 1/11,单次成本约 $0.00018——召回判定这种高频调用,成本和时延就是产品体验本身。

第二,弱点和 LLM 是同一个:边界情形的相邻年份、对比数据文档,两边都容易踩,谁也没有系统性优势。这说明瓶颈在任务本身的难度,不在 Jev 的能力上限。

第三,Jev 的 gold 召回是完美的 25/25。baseline 唯一漏掉的 gold 是超时不是误判,但在线上,超时和误判对用户的观感差不多。

数据、样本、语料抽取器和评测脚本都留在仓库里:evaluation_financial_results.jsonsamples_financial.jsonl(79 条)、evaluate_financial_recall.py,可以复跑。

JEV 实测效果分享 | Hailin Zhu