用决策模型做论文分类:DAIR.AI 的 Drex Max vs Jev 1.14 实测 · 干货攻略

  • 链接: https://x.com/omarsar0/status/2113297633737691572
  • 分类: x-tips
  • 来源: X @omarsar0
  • 作者: Jay
  • 更新: 2026-10-23
  • 仓库: https://github.com/typesafe-ai/skills (TypeSafe 官方 Agent Skill;Nace/Drex Max 侧未找到主仓库)
  • 原帖正文(长文): https://x.com/omarsar0/status/2113296402289676594

这是什么

@omarsar0(elvis,DAIR.AI)发布了一篇探索性实测:把"决策模型"(decision model)用在论文分流的真实任务上,测出 Drex Max 与 Jev 1.14 的差距,并给出可复用的方法论。

决策模型是什么:你给它一段状态(state)和若干类型化问题(questions),它不生成文本,而是直接返回带概率的结构化答案——一个 0–1 的 "noul" 布尔值、限定集合里的一个 "choice"、或一个 "score"。因为输出是类型化概率而不是需要解析的自然语言,调用便宜、延迟低,适合放在每个请求前面做"分流/校验"。

任务是什么:DAIR.AI 的论文库有数千篇 AI 论文,会归入 Harness Engineering(提示、上下文、记忆、工具、agent loop、多 agent 这类"围绕模型的脚手架")和 Self-Improving Agents(通过循环让自身权重/提示/记忆/技能/代码产生持久改进的 agent)两个阅读合集。判断一篇论文属于哪个合集,现实中要人读摘要和元数据。

实验设计(原帖口径): - 先人工标注 250 篇论文,在看到模型预测之前标完; - 模型只拿到标题 + 摘要,对每个合集回答一个 yes/no 问题并给置信度; - 101 篇用来给每个模型 × 每个合集分别选一个决策阈值(按 F1 选,兼顾精确率与召回率),阈值选定后固定不变; - 剩下 149 篇作为测试集。

结果(149 篇测试集): | 指标 | Drex Max | Jev 1.14 | |---|---|---| | 两个标签全对 | 76.5% | 74.5% | | 5 次重复运行平均 | 78.1% | 74.9% | | Harness Engineering 排序 AUROC | 0.924 | 0.907 |

作者结论:Drex Max 更适合他们的场景,且他们已在规划生产化投入;决策模型做研究分流的前提是"问题定义清晰 + 阈值在标注样本上调过"。作者也明确说这是小规模标注的初步探索,还需要新标注的论文做更强测试。


核验来源

已读官方文档(本次读取): - Drex Max 官方指南:https://console.nace.ai/docs/drex/guides/drex-max —确认 drex-max 是固定 ID(drex-latest 不指向它;请求不写 model 会落到 drex-v2.0);endpoint POST https://console.nace.ai/v1/systemone;计价 $0.06 / 百万输入 token,输出不计费;Drex Max 是 Drex 系列中唯一读图的模型,每请求最多 16 题、图片最多 8 张、请求体上限 4 MiB、超限返回 422 invalid_request_error、超时返回 529 overloaded。 - TypeSafe 官方文档(docs.typesafe.ai):https://docs.typesafe.ai/primitives/noul.md 、https://docs.typesafe.ai/introduction/quickstart.md —确认 Jev 是 TypeSafe 的 System One 模型,问题类型为 choice / score / noul(1.14 增加 box),noul 直接返回 0–1 概率;官方 API 端点 POST https://api.typesafe.ai/v1/systemone,Python SDK 包名 typesafe-sdk,API key 在 console.typesafe.ai/keys 获取。 - 长文正文(经 r.jina.ai 读取原帖):https://x.com/omarsar0/status/2113296402289676594 —所有实验数字(250/101/149、76.5%/74.5%、78.1%/74.9%、AUROC 0.924/0.907)均出自此处。 - 交叉搜索一次(Tavily)用于确认 "Jev 1.14" 的模型标识 typesafe/jev-1.14 与发布信息(2026-10-14/15 发布)。

明确的不确定处: - 原帖没有说明两个模型分别通过哪条具体 API 路径、各自版本号如何固定、计费如何比较;因此"Drex Max 更准"只能理解为在这一任务、这一提示、这一标注集下的结论,不是通用能力排名。 - 原帖也没有给出两者的单价对比,无法从这篇推算成本优势;Drex Max 的 $0.06/1M 输入 token 来自 Nace 官方文档,Jev 侧定价随渠道不同(TypeSafe 自有 API、OpenRouter、第三方转售各不相同),我未逐一核对官方价目表,故不写具体数字。 - 两个模型各自的 AUROC 差异(0.924 vs 0.907)只有 Harness Engineering 一项,另一合集的 AUROC 未披露。 - Nace/Drex Max 是否有官方主仓库:本次未找到可确认的仓库地址,因此"仓库"字段只填 TypeSafe 官方 Agent Skill 仓库(该地址由 docs.typesafe.ai 官方文档给出)。


上手步骤

1. 先把判断问题写成"可判定的 yes/no"

用 Noul 提问的关键是定义清楚什么算 yes。原帖两问的措辞可直接借用:

Question 1. Is this paper mainly about the harness around a model,
such as its prompts, context, memory, tools, agent loops, or multi-agent setup?

Question 2. Is this paper mainly about an agent that improves itself through a loop
that makes lasting changes to its weights, prompts, memory, skills, or code?

TypeSafe 的 noul 还支持 criteria,用 true/false 描述"什么算 yes / 什么算 no"——在调阈值之前就把边界写进问题里,这是原帖明确强调的经验。

2. 收集标注集,并刻意包含边界样本

  • 先人工标一批(原作者 250 篇),且在看到模型预测前标完,避免事后凑标签;
  • 原帖建议:把边界样本也放进标注集,边界越清楚,阈值越稳;
  • 标注集切分:一个子集专门用来选阈值(原帖 101 篇),另一份完全独立的测试集(149 篇)用来评估。

3. 调阈值:用 F1 选,且按错误代价自定义

决策模型不直接给"是/否"给你一个开关,它给概率,阈值由你定:

  • 原帖用 F1 选阈值(平衡精确率与召回率),选完固定再用;
  • 原帖提醒:选阈值的方式取决于哪种错误更贵——漏判一篇好论文 vs 误收一篇坏论文,权重不一样,应按自己的代价函数选,而不是照抄 F1。

4. 调 API(Drex Max 官方示例)

curl https://console.nace.ai/v1/systemone \
 -H "Authorization: Bearer $NACE_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
 "model": "drex-max",
 "state": "My parcel arrived with the box crushed and the lamp inside cracked. I want a new one.",
 "questions": {
 "damaged": { "type": "noul", "instructions": "Did the item arrive damaged?" },
 "intent": {
   "type": "choice",
   "instructions": "What does the customer want?",
   "criteria": { "refund": "Money back", "replace": "A new item", "info": "Information only" }
 }
 }
 }'

要点: - model 必须显式写 drex-max——它是固定 ID,drex-latest 不指向它,不写 model 会回答 drex-v2.0; - 响应里 answers 按请求顺序给出每个问题的答案,并带 usage、evaluation_time_ms、request_id; - 论文分类场景只用文本即可,不要往 state/questions 里塞媒体,Drex 只认 images 数组,媒体放错位置会 422。

5. 调 API(Jev 官方示例)

from typesafe_sdk import Noul, NoulCriteria, TypeSafeClient

with TypeSafeClient() as client:
    response = client.system_one(
        model="jev-latest",
        state="I have asked three times now. Can I please just talk to a real person?",
        questions={
            "is_human_escalation": Noul(
                instructions="Is the customer asking for a human agent?",
            ),
            "is_repeat_contact": Noul(
                instructions="Has the customer contacted support about this before?",
                criteria=NoulCriteria(
                    true="Mentions a prior attempt, ticket, or that they have asked before",
                    false="No sign of any previous contact",
                ),
            ),
        },
    )
    print(response.answers["is_human_escalation"].noul)

要点: - 端点 POST https://api.typesafe.ai/v1/systemone;key 从 https://console.typesafe.ai/keys 取,SDK pip install typesafe-sdk(Python ≥3.10); - noul 答案就是那个概率数字本身(0–1),没有单独的 confidence 字段;choice/score 才带 probabilities + confidence; - 生产环境请钉版本(如 jev-1.14.0),否则模型一升级、你调好的阈值就漂移。

6. 评估时报告两件事

  1. 固定阈值后的测试集准确率(原帖口径:两个标签全对的比例),并跑多次重复看均值与波动(76.5% vs 五次平均 78.1% 说明单次结果有噪声);
  2. 排序能力(AUROC),用于判断"分数能否用来排序"而不只是分对错。

适用边界

适合: - 已有明确、可判定的分类/分流规则,且能拿出人工标注集的任务(论文归类、工单分派、文档审核、LLM 输出校验); - 需要高频、低成本地在流水线前端做判断的环节——决策模型输出概率,不生成文本,无需 JSON 解析与重试; - 有多模态需求的场景:需要读图的判断目前 Drex Max 是 Drex 系列里唯一支持的(每请求最多 8 张图、单图 16 MiB、请求体 4 MiB)。

不适合 / 需谨慎: - 规则本身模糊时不要用。原文的核心结论是"问题定义清晰"是前提;定义不清的分类,阈值调得再好也没意义。 - 不要把它当通用能力排名:2 个百分点的差距来自 149 篇论文、单一提示、单一标注者口径,且作者自己标注了这是探索性工作。生产决策前应重跑自己的标注集。 - 标注集质量是天花板。原帖明确:阈值调优重要,但标注集质量同样重要——少量标签 + 早期开发用的论文,得到的是弱结论。 - Drex Max 不是"最新版":官方文档说明 drex-max 是固定 ID,drex-latest 不指向它,不写 model 则回答 drex-v2.0;升级路径要照文档走,别想当然用 latest。 - 长 state + 多图 + 多题容易 422:Drex Max 每个问题计 token(图片每张最多 1,602 token,且计入总量上限 1,048,576),官方建议长 state 时少发几个问题;超出 evaluate 超时返回 529,失败请求不计费。 - 多模态不是免费的:图片按输入 token 计费,与文本同一价目;内联 base64 还要挤占 4 MiB 请求体上限,官方建议大图走上传(上传免费)。 - Jev 侧的图像/box 能力有版本差异:1.14 才加入图像输入与 box 问题,1.13 无;选版本时别只盯"最新"。


一句话结论

这篇真正值钱的不是"Drex Max 比 Jev 强 2 个点",而是一套可复制的决策模型落地流程:把问题写成可判定的 noul → 用先标好的样本调阈值(按错误代价选 F1 或别的)→ 阈值固定后在独立测试集上评(准确率 + AUROC)→ 边界样本一定放进标注集。Drex Max 76.5% vs Jev 1.14 74.5% 的对比,只说明在这套流程和这个任务上,前者略占优——你换成自己的任务、自己的标注集,很可能得到不同排序。