零训练新闻推荐器:JEV-27B-VL 如何在 MIND 数据集上实现 AUC 0.642 的完整实战指南
【免费下载链接】JEV-27B-VL项目地址: https://ai.gitcode.com/hf_mirrors/autotrust/JEV-27B-VL
JEV-27B-VL 是一个开源的零训练(zero-shot)多模态决策模型:一次前向推理就能对任意选项输出校准概率。它无需任何训练,在 MIND 真实新闻推荐数据集上达到AUC 0.642——超过所有零样本基线,甚至超过在该数据上训练过的传统排序模型。本文带你完整走一遍:它是什么、实验怎么做、结果如何,以及如何一键部署并调用这个零训练新闻推荐器。
JEV-27B-VL 是什么:一个"会做决策"的大模型 🧠
大多数人用大模型的方式是"问一句、回一段文字",而 JEV-27B-VL 的定位完全不同——它是一个决策模型(decision model),内置了两种工作模式:
| 模式 | 做什么 | 输出 | 典型耗时 |
|---|---|---|---|
| System 1(直觉决策) | 对文本或图片做"是/否、二选一、0–5 打分"判断 | 每个选项一个校准概率,一次前向推理完成 | 约 0.1 s |
| System 2(深度推理) | 完整 27B 模型逐步思考,同样支持图片输入 | 文字 / 推理过程 | 数秒 |
对新闻推荐来说,System 1 是关键:把"用户最近点过的新闻标题"作为状态(state),把"用户会不会点这条候选新闻?"作为问题,模型直接返回{"true": 0.83, "false": 0.17}这样的概率——不需要解析 JSON、不需要提示词技巧。
更妙的是:它的决策头从未见过任何新闻数据,也从未在 MIND 上训练过,纯靠"读标题"就能排序。
MIND 新闻推荐实验是怎么做的
MIND 是微软公开的 MSN News 真实用户点击数据集,是新闻推荐领域的经典基准。实验设置(详见 README.md 与 blog/JEV-27B-VL.md):
- 零训练方式:把用户历史点击的新闻标题作为
state输入,对每条候选新闻问一个 yes/no 问题,System 1 输出 P(点击) 作为排序分数——全程零样本,不在 MIND 上训练任何参数。 - 传统对照:LightGBM 排序模型,分别只用1,000 条和4,000 条MIND 曝光记录训练。
- 特征融合方式:把 JEV 的零训练打分作为一个特征加进 LightGBM(仍只用 1,000 条数据)。
新闻推荐结果:零训练 AUC 0.642,超过训练过的模型
AUC 越高越好,随机猜测约 0.5:
| 方法 | 是否在 MIND 上训练 | AUC |
|---|---|---|
| 随机排序 | 否 | 0.515 |
| 按流行度排序(popularity so far) | 否 | 0.546 |
| 标题相似度(TF-IDF) | 否 | 0.546 |
| 类目匹配(category match) | 否 | 0.606 |
| LightGBM(1,000 条曝光) | 是 | 0.590 |
| LightGBM + JEV 打分(1,000 条曝光) | 是 | 0.617 |
| LightGBM(4,000 条曝光) | 是 | 0.616 |
| JEV-27B-VL System 1(纯零训练) | 否 | 0.642 |
三个值得记住的结论:
- 🏆零训练赢过训练模型:0.642 高于任何零样本基线(最好的是类目匹配的 0.606),也高于只用 1/4 数据训练的 LightGBM(0.590)和用 4 倍数据训练的 LightGBM(0.616)。
- 📊一个特征 = 四倍数据:把 JEV 打分加进只用 1,000 条数据的 LightGBM,AUC 升到 0.617——恰好追平用4,000 条数据训练的 LightGBM。也就是说,一次零训练推理的分数,顶替了三倍训练数据。
- 🚫没有冷启动负担:传统推荐模型要先积累曝光/点击,而 JEV 只需要标题文本,新文章上传瞬间就能被排序。
快速开始:一键部署 JEV-27B-VL 新闻推荐服务
仓库自带 serve.sh,底层是 vLLM + serve_decide.py 扩展的POST /v1/decide决策接口:
hf download autotrust/JEV-27B-VL --local-dir JEV-27B-VL bash JEV-27B-VL/serve.sh # vLLM 监听 :8000,需要一张 80GB+ 显存的 GPU决策适配器(LoRA + 决策头)位于 adapter_vllm/,其中 decision_head.json 定义了各类型问题的词表槽位与偏置,calibration.json 保存了每类问题的校准温度——这也是概率"可信"的来源(期望校准误差仅 0.0009)。
调用决策接口:拿到"会不会点"的校准概率
新闻推荐的每个候选,本质就是一个 yes/no 决策。任意 HTTP 客户端都能调:
curl localhost:8000/v1/decide -H 'Content-Type: application/json' -d '{ "kind": "noul", "state": "用户最近点击过: 《央行降准》《AI 芯片出口管制》《新能源补贴政策》", "question": "用户会不会点击这条新闻: 《半导体行业年度报告发布》?" }'返回(示意):
{"kind": "noul", "options": ["false", "true"], "probabilities": [0.21, 0.79], "choice": "true", ...}实战要点:
kind支持noul(是/否)、choice(2–256 个选项一次排完)、score(0–5 打分);- 对一批候选新闻循环调用,用 P(true) 直接当排序分数,就得到零训练推荐列表;
- 想加图片(如图文混排的新闻封面),把
state改成文本与图片交错的列表即可,System 1 同样一次前向出概率; --max-num-seqs 8是必须的参数,否则多模态批处理下概率会出错(serve.sh 已帮你配好)。
进阶:System 1 只答有把握的,剩下的交给 System 2
真实线上系统不必让 27B 大模型思考每一题。项目实测的"按需升级"策略:System 1 先答,置信度低于 0.70 才转给 System 2 深度思考——70% 的问题在 0.11 s 内解决,整体准确率从 0.792 提升到 0.892,接近"每题都思考"的 0.917,成本却低得多。这套模式同样适用于新闻推荐里的高价值决策:
同一范式的其他零训练应用
"读内容 → 输出点击/选择概率"这套 System 1 范式,在推荐与裁判任务上都被验证过:
- 📱短视频推荐(MicroLens):只看用户最近 5 个视频封面 + 候选封面,AUC 0.727,与用59,045 名用户行为日志训练出的协同过滤(0.728)打平,且 Top-5 命中率更高(59% vs 49%)——封面比标题多 0.078 AUC,新视频上传第一秒就能被推荐。
- ⚖️模型裁判(RewardBench):System 1 一次前向判出更好答案的得分 89.9,超过 Gemini 1.5 Pro(88.2)与 GPT-4o(86.7)。
这些细节(含对比图表)都可以在 blog/JEV-27B-VL.md 里查到,实验报告数据位于 reports/。
注意事项与局限性 ⚠️
- MIND 结果是离线评测,标题相似度、类目匹配等简单基线在特定场景仍有价值,实际系统建议"零训练打分 + 传统特征"融合使用;
- System 1 的决策头是在文本上训练的,图片决策为零样本,排序能力已验证,但图片任务的概率校准未经系统测量;
- 256K 长上下文需要
MAX_MODEL_LEN=262144(约 17GB 额外 KV 缓存),80GB 显卡建议用 128K。
总结:零训练为什么能打赢训练模型?
| 关键点 | 说明 |
|---|---|
| 校准概率 | 每个选项的概率经过温度校准,可直接当分数、可设阈值 |
| 一次前向 | 无采样、无解析,约 0.1 s / 个候选,适合排序阶段 |
| 语义理解 | 大模型"读得懂"标题与用户历史的语义关联,这是 TF-IDF 和 LightGBM 特征缺失的 |
| 零冷启动 | 新内容无需任何行为数据即可被排序 |
| 可融合 | 它的打分作为一个特征,等于给小模型加了 4 倍训练数据 |
对新手来说,最值得记住的一句话是:把"用户会不会喜欢这条新闻"当成一个 yes/no 决策问题交给 System 1,拿回的概率就是你的推荐排序分——不需要特征工程,不需要训练集,一行 curl 就能跑通整个新闻推荐器的核心。
【免费下载链接】JEV-27B-VL项目地址: https://ai.gitcode.com/hf_mirrors/autotrust/JEV-27B-VL
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考