☰
如何用自己的标注样本校准AIHOT的精选标准?SelectBench评测实战指南
2026/10/1 8:11:00 网站建设 项目流程

如何用自己的标注样本校准AIHOT的精选标准?SelectBench评测实战指南

【免费下载链接】AIHOT一个自己找热点、自己写日报的网站框架。把信源和精选标准换成你的,它就是你的行业热点站。项目地址: https://gitcode.com/gh_mirrors/ai/AIHOT

AIHOT 是一个「自己找热点、自己写日报」的网站框架,把信源和精选标准换成你的行业,它就是你的热点站。但换行业后 AI 的精选判断是否合你的口味?本文讲清 SelectBench 评测全流程:自己标注 100–200 条样本、一键跑评测脚本、在后台逐条对比错例,用标注样本把 AIHOT 的精选标准校准到位。

为什么精选标准需要校准

精选管线是固定的:预筛通过后,评分模型对每条资料独立打两次 0–100 分,两次之和 ≥ 2 × 门槛才入选。门槛按信源分级区分(T1 官方一手 60 分、T1_5 准官方 65 分、T2 媒体与个人 76 分)。

这组门槛是 AIHOT 在 AI 领域用的偏严标准——换了行业就不一定合适。好消息是不用凭感觉调:AIHOT 内置了 SelectBench 闭环——标样本 → 跑评测 → 看错例 → 改标准 → 留出集验收,每一步都有据可依。

📍 精选标准写在哪里

  • 门槛数值:industry/selection.ts —— 只有thresholds(分级门槛)和understandFloor两组数;
  • 评分标准:industry/prompts/selection-score.md —— 分「必须正常评价的价值」与「必须压住的噪声」两大块;
  • 预筛:industry/prompts/prefilter.md —— 宽召回,只拦明显无关的资料。

提示词版本就是它内容的哈希:改了提示词,之后的新资料按新版判断,已判过的不会重算。

第一步:准备标注样本集(gold.jsonl)

从自己的信源里挑100–200 条,逐条标注「该选 / 不该选」,存成.data/gold.jsonl(.data/不进 Git)。每行一条 JSON,格式可对照 industry/gold.example.jsonl 里的两条示例:

{"caseId":"law-001","material":{"title":"原文标题","originalTitle":null,"publishedAt":"2026-10-01T09:00:00+08:00","sourceName":"信源名称","bodyZh":null,"bodyOriginal":"正文……"},"sourceFacts":{"sourceKind":"rss","sourceTier":"T1","firstParty":true,"language":"zh"},"samplingContext":{"benchmarkSplit":"development","samplingStratum":"regulation"},"gold":{"decision":"select"}}
字段填什么
caseId唯一编号
material标题、发布时间、信源名、正文(bodyZh或bodyOriginal有一个就行)
sourceFacts信源类型、分级(sourceTier决定用哪个门槛)、是否一手、语言
samplingContext可选。benchmarkSplit分开发集/留出集;samplingStratum按自己分类(如「新规」「判决」「营销」)看错在哪一类
gold.decisionselect该选 /reject不该选 /either两可(不计入准确率)

🎯 标注三建议:

  • 多放难例:「差一点该选、差一点不该选」的。一眼判断的放太多,准确率会虚高;
  • 留出留出集(benchmarkSplit: "holdout"):调提示词只看开发集,最后用留出集验收,免得把提示词调成只会做这几道题;
  • 标注人就是以后读这个站的人,或口味一致的人——精选标准校准的终点是读者体验。

第二步:一条命令跑 SelectBench 评测

node --env-file=.env scripts/eval-selection.ts --gold .data/gold.jsonl --split development --label "第一版评分标准"

脚本对每条样本跑一遍与线上一致的流程(预筛 + 两次评分,见 scripts/eval-selection.ts),再与你的标注对比,输出三样东西:

  • 核心指标:准确率、精确率(选出来的有多少是对的)、召回率(该选的有多少选上了)、F1、入选比例;
  • 门槛扫描:门槛从 40 到 90 每隔 2 分各会选出什么结果,直接回答「应该松一点还是紧一点」;
  • 错例明细:完整报告写入.data/eval/,并自动导入后台 SelectBench。

常用参数:--models default,deepseek-flash同批比较多个模型、--n 200限制条数、--split holdout只跑留出集。有回执复用机制:同样的输入和提示词再跑不会重复调用模型,迭代成本很低。

第三步:在后台 SelectBench 看错例、改标准

后台「SelectBench」页每次运行一张卡片,列出各模型的准确率、精确率、召回率、F1、耗时与 token 用量,并自动给 F1 最高的模型打标。点进单条运行页(页面实现:apps/web/app/routes/admin/selectbench.tsx、apps/web/app/routes/admin/selectbench-run.tsx)可以:

  • 按误选 / 漏选 / 两可 / 模型之间有分歧筛选;
  • 按自己标的samplingStratum分组,定位「错在哪一类」;
  • 展开单条,查看模型给这条资料的完整理由和回执编号。

对症下药(策略原文见 docs/selection.md):

错例类型表现改哪里
漏选(FN)该选没选上把「这类东西为什么重要」写进 selection-score.md 的「必须正常评价的价值」,给出例子
误选(FP)不该选却选上了写进「必须压住的噪声」部分
整体偏松/偏紧判错条目分数都贴着门槛再调 industry/selection.ts 的门槛

⚠️ 记住顺序:先改标准,再动门槛。门槛只能整体平移,解决不了「哪一类判错了」的问题。每改一次跑一遍,SelectBench 保留全部历史,各版本可并排对比。

进阶:换模型对比与留出集验收

  • 换评分模型前先比一比:--models 模型A,模型B在同一批样本上各跑一遍,用 F1 对比和「只看模型之间有分歧的」筛选决定谁上;
  • 开发集满意后,跑一次留出集:--split holdout,留出集指标与开发集相当,才说明标准真正泛化,可以放心上线。

速查清单

事项位置
分级门槛 T1 / T1_5 / T2industry/selection.ts
评分标准提示词industry/prompts/selection-score.md
预筛提示词industry/prompts/prefilter.md
标注样本格式示例industry/gold.example.jsonl
评测脚本scripts/eval-selection.ts
SelectBench 导入与查询逻辑packages/backend/src/admin/selectbench.ts
完整校准文档docs/selection.md

整个流程就六个字:标注、跑、改。标 100–200 条样本,跑一次eval-selection.ts,在后台 SelectBench 里看完错例再改一版标准,循环几轮,精选区就会长成读者真正想看的样子。

【免费下载链接】AIHOT一个自己找热点、自己写日报的网站框架。把信源和精选标准换成你的,它就是你的行业热点站。项目地址: https://gitcode.com/gh_mirrors/ai/AIHOT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询