某国内AI厂商最近把三款 Jev 开源模型挂上了模型广场:Kev-4B、SemIf、diffusiongemma。这类模型跟聊天模型不是一回事——它们不生成文本,只输出结构化判断(二元的"是/否"概率、量表打分、多选一),定位是给 agent 系统当决策件用的。比如你有一堆消息流,想让小模型先判断"哪条值得大模型看一眼",这种活儿就是它们的主场。
我抓了自己微博时间线里 96 小时的 39 条帖子,对这三个模型做了一轮同题实测。先把接口怎么调讲清楚,再说结果。
接口:不走 chat,走 /v1/systemone
这三个模型在该厂商的标准聊天接口上是调不通的——发 /v1/chat/completions 会直接报 400 "Model does not exist"。它们只支持 Jev 风格的 SystemOne 端点:
import json, urllib.request
API_KEY = "sk-你的key"
URL = "https://api.siliconflow.cn/v1/systemone"
body = {
"model": "Kev-4B", # 或 "SemIf" / "diffusiongemma"
"state": "Group chat message: 大家早上好,昨晚的比赛有人看了吗?",
"questions": {
"respond": {"type": "noul",
"instructions": "Should the assistant respond to this message?"},
"value": {"type": "score",
"instructions": "How substantive is this content?",
"criteria": ["low", "medium", "high"]},
},
}
req = urllib.request.Request(
URL, data=json.dumps(body).encode(),
headers={"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"})
print(urllib.request.urlopen(req).read().decode())
返回长这样:
{
"model": "Kev-4B",
"answers": {
"respond": {"type": "noul", "noul": 0.25},
"value": {"type": "score", "score": 0.31,
"legend": {"0": "low", "1": "medium", "2": "high"},
"probabilities": {"0": 0.74, "1": 0.22, "2": 0.05},
"confidence": 0.85}
},
"usage": {"input_tokens": 77, "output_tokens": 100}
}
结构很干净:state 是上下文,questions 里每个问题指定原语类型和判断标准,答案直接给概率,不用从生成的文本里抠数字。两个原语最常用:noul 管二元判断,score 管量表。模型 ID 可以先拉 GET /v1/models 确认,三个都在列。单次请求的 token 消耗很小,我这个场景每次大约 200-300 个输入 token。
测什么
场景选的是"信息流守门":判断每条帖子该不该呈报给一个关注 AI 和编程方向的助理。39 条帖子里有新模型架构解读、开源工具发布,也有段子、企业通稿、书单推荐——该看的和不该看的得混在一起,不然测不出过滤能力。
标签是事先标好的:20 条应呈报,19 条应忽略。这里得交代一句,标签是我让 GLM-5.3 按固定细则标的,我没有逐条复核,所以下面的准确率严格说是"模型判断与标注模型的一致率",是我真实偏好的代理。每个帖子单独发一次请求,三个模型用完全相同的输入。
结果
| Kev-4B | SemIf | diffusiongemma | |
|---|---|---|---|
| AUC(Noul) | 0.944 | 0.888 | 0.836 |
| 准确率 @ 0.5 | 84.6% | 82.1% | 82.1% |
| 最优阈值 | 87.2% @ 0.35 | 84.6% @ 0.70 | 82.1% @ 0.95 |
| AUC(Score 原语) | 0.828 | 0.906 | 0.745 |
| 平均延迟 | 306ms | 326ms | 692ms |
三个模型性格差异挺大。
Kev-4B 是完成度最高的。应忽略的帖子 Noul 均值压到 0.13,应呈报的 0.77,两团分得开,输出是连续的概率,0.5 附近还留有过渡带——拿去做排序、按阈值分流都能用。三百毫秒出头的延迟也够灵活,异步批处理和准实时场景都吃得下。
SemIf 整体差一档,但有个反常的细节:它的量表原语(0.906)反超了二元原语(0.888)。同样的内容,让它打三级分比让它答是/否更准。我猜跟它的训练分布有关,具体原因没深究。实际用它的启示是:别默认 noul 就是最佳接口,拿自己的数据把两种原语都过一遍再定。
diffusiongemma 问题比较根本。AUC 0.836 看着还行,但看分布就露馅了——39 个输出里有 37 个是精确的 0.0 或 1.0,几乎没有中间值,量表打分更是 39 条里 36 条恒等于 1.0。等于只会喊"要"和"不要",喊不出"八成要"。当硬分类器凑合能用(准确率也是 82.1%),但概率本身没校准过,置信度信号没法用,延迟还比另外两个慢一倍。选它之前得想清楚自己要不要置信度。
怎么选
要一个默认选项,选 Kev-4B,校准和延迟都是三个里最好的,阈值设在 0.35 到 0.5 之间都能用。
SemIf 值得在自己数据上试一把量表原语,说不定有惊喜。diffusiongemma 目前更像技术上桌早了——扩散架构做离散判断的校准问题没解决,观望吧。
局限
39 条样本、单一信息源、单一 prompt、标签由 LLM 生成未人工复核。这轮实测的定位是把三个模型的能力轮廓摸出来,不是严格的评测。数字看趋势就好,别当基准引用。
数据脚本自备,接口代码上面全给了,想复现的话准备几十条自己的消息按同样的路子跑一遍就行。