note
- Jev赛道解决的根本矛盾是Agent系统里最高频的负载形态是:一个很长的状态+一批很短的判断(路由、门控、分类、评分、是否升级人工)。这里有两种方法:
- 一套是传统监督分类器。快、便宜、概率可严格校准(Platt/Temperature/Isotonic是成熟方法)。但任务在训练阶段写死,今天训的"是否上涨",明天不能现场改问"是否有治理风险",更不能运行时塞入17个新类别。
- 一套是LLMJudge。任务可动态定义。但为了拿到一个几个字节的枚举值,要启动一次完整prefill+逐token自回归decode+JSON生成与解析;且其自报的confidence不天然代表真实正确概率,LLM可以非常自信地答错。
- 决策模型的目标函数是:保留LLM的动态任务定义能力,同时拿回分类器的直接概率输出、低延迟与可校准性。形式化为一行:State+Question+Candidates→ProbabilityDistribution。
- Intern-Decision多模态决策模型(decisionmodel),输入一段结构化状态(JSON state)、可选图片和若干类型化问题(choice选择/score评分/noul是非),在一次前向计算中为每个问题输出候选选项上的完整概率分布,而非生成自然语言文本。模型基于Qwen3.5(0.8B/2B/4B三个denseVL版本)微调语言主干、冻结视觉塔与投影层,用masked-next-token目标对齐,让模型学会"在
<decision>占位符前,把正确答案符号的logit推高"。论方案,其实现核心范式是"单次前向+受限候选符号softmax+温度校准" - Jev技术路线:
- Laya用非自回归的BERT式架构+RLCD(对校准分布做强化学习)。不是decoder-onlyLLM,而是encoder式分类器,更轻、更快(322M参数,T4上33ms),但表达力和通用语义理解不如decoderLLM;
- SemIf/Kev/JevK5都和Intern-Decision同构,基于Qwen,单次前向,读optionlogits做softmax。
- 16选项的处理:JevK5用"分组16+决赛轮"的多轮方案(ceil(n/16)+1次前向),Intern-Decision直接硬限62个单token符号。
- 共享前缀复用:SemIf支持"parallelsuffix",当37个state×21个criterion的批量场景下,共享state前缀的KVcache,达到20 decisions/s。
- Jev的候选上限:TypeSafeAPI公开Choice最多255个选项,远超Intern-Decision的62,说明Jev内部大概率不是用单token符号映射的方式。
文章目录
一、Intern-Decision模型
【多模态决策模型进展】书生大模型 InternLM 在 GitHub 开源多模态决策模型项目 Intern-Decision,并在 Hugging Face 发布 Intern-Decision-0.8B、Intern-Decision-2B 和 Intern-Decision-4B 三个模型权重。
该模型将状态、可选图片和多个结构化问题转换为决策与概率,基于 Qwen3.5 微调语言主干,同时冻结视觉编码器和投影层,支持选择、评分和是非三类问题。
链接:
https://github.com/InternLM/Intern-Decision
https://huggingface.co/collections/internlm/intern-decision
1、Intern-Decision
1、赛道矛盾:Agent内环最高频负载是「长状态+一批短判断」(路由、门控、分类、评分、是否转人工);传统分类器快但任务写死,LLM Judge能动态定义问题却为几个字节的枚举值跑一次完整自回归解码,且自报的confidence不天然等于真实正确率。
2、目标函数:决策模型要同时保留LLM的动态任务定义能力,拿回分类器的直接概率输出、低延迟与可校准性,形式化为 State+Question+Candidates→ProbabilityDistribution。

3、三大核心:
- 核心1·单次前向:
- 把含多个字段的JSON骨架一次塞进prompt,每个字段留一个
<decision>占位符,取每个占位符紧邻前一位的logit预测答案;关键是不调用generate(),一次forward答完所有问题,但要付出「答案必须是单token符号」的代价。 - 核心2·受限候选softmax:
- 只在合法候选符号上做softmax而非全词表,候选用A-Z+a-z+0-9共62个符号,故每题最多62个选项;概率天然可解释且加和为1。
- 把含多个字段的JSON骨架一次塞进prompt,每个字段留一个
- 核心3·温度校准:
- 训练用普通硬标签交叉熵,只关心正确答案logit够不够高、不管概率分布长相,因此模型天然过度自信;在独立校准集上用NLL拟合T,0.01,100二分搜索,三个checkpoint各有T(0.8B=2.75、2B=2.10、4B=1.99),须配套使用。
- T只缩放概率分布的尖锐度、不改变argmax标签------校准是让「说88%时真实正确率也接近88%」,不为提高准确率;三块必须成套,缺任一块要么过度自信、要么多次forward变慢。
2、参考代码
参考代码:positions 是"每个 decision 标记前一位",不是标记 token 自己那一位
python
if images:
batch = self.processor(text=[text], images=images, return_tensors="pt", padding=False)
else:
batch = self.tokenizer(text, add_special_tokens=False, return_tensors="pt")
length = batch["input_ids"].shape[-1]
if length > self.max_length:
raise ValueError(f"Example has {length} tokens, above {self.max_length}; truncation is forbidden")
positions = (batch["input_ids"][0] == self.marker_id).nonzero().flatten() - 1
if len(positions) != len(compiled.fields) or (positions < 0).any():
raise ValueError("Decision marker count or position mismatch")
return compiled, batch, positions
@torch.inference_mode()
def score(self, row):
compiled, batch, positions = self.encode(row)
if self.device.type == "cuda":
torch.cuda.synchronize(self.device)
start = time.perf_counter()
batch = batch.to(self.device)
# Native HF slices hidden states before the LM head, avoiding L x V logits.
output = self.model(**batch, use_cache=False, logits_to_keep=positions.to(self.device)).logits[0]
if self.device.type == "cuda":
torch.cuda.synchronize(self.device)
return compiled, output, batch["input_ids"].shape[-1], (time.perf_counter() - start) * 1000
3、训练方式
其训练目标为自回归掩码语言建模(auto regressive masked languagemodeling),这是整个项目最值得看的技术点,可以细分几个点:
系统提示、状态、schema、以及一个完整的assistantJSON骨架一起渲染进prompt。骨架里每个字段留一个占位符;
训练时,正确答案符号只出现在标签里,绝不出现在输入中。用普通因果下一个token对齐:每个<decision>标记紧邻其前一个位置的logit被用来预测该字段的答案;所有字段共享同一次因果前向传播,一次forward回答所有问题;
推理时把logit限制到合法单token候选符号(A--Z、a--z、0--9,正好62个),做softmax,再映射回原始选项标签。
这个设计的妙处在于:绕开了LLM生成式决策的两个老问题:一是生成解析不稳定,二是多字段需要多次forward。用"占位符前的logit"做受约束打分,既保留了LLM的语义理解能力,又把输出空间约束成闭合集合,使得概率可解释、可校准。
但是,代价也很明显:候选必须是单token符号,62个选项是硬上限(A-Z+a-z+0-9刚好62)
二、Clef模型
1、Clef介绍
权重在:https://huggingface.co/Cloudflare/clef
backbone是完全冻结的 Qwen 基座(Clef 用 Qwen3.8-27B,Clef-flash 用 Qwen3.5-9B),可训练的部分只有两块:rank-256 的 LoRA 低秩适配器,以及一个新加的模式约束打分头(schema-bound scoring head,模型卡中文件名为 joint_head.safetensors)。
Step1.编码输入。调用方传入一个 state 字符串(当前情境,可含 JSON、最多四张图像)与一组 questions(最多 64 个,分 noul / choice / score 三类)。视觉编码器处理图像后与文本一起进入骨干网;
Step2.单次 prefill。冻结的 Qwen 骨干对整个输入只跑一遍前向,得到内部表示。
Step3.两阶段注意力路由。打分头做两级注意力:
- 第一级让每个候选选项从提示中拉取与自己相关的证据(option-specific evidence routing);
- 第二级允许不同问题字段之间交叉注意力(joint cross-field attention),例如"严重程度"的判断可以参考"是否紧急"的判断。另有一个 lexical prior 保留跨选项的语义意图,缓解候选项表述差异带来的偏置。
Step4.并行打分输出。模式约束头对全部合法选项同时输出概率,noul 返回"是"的概率,choice 返回每个选项的概率加置信度,score 返回概率加权的分值与每档概率分布。
2、训练方式
后训练配方由三部分组成,标签平滑交叉熵(选对)+ Brier 损失(概率诚实)+ RLCD(评分档错一档轻罚)
其一,企业标签平滑交叉熵。负责"选对"。这是分类任务的常规选择,标签平滑隐含了对边界模糊样本的宽容。
其二,Brier 损失。衡量"预测概率"与"真实结果"差距的损失函数,直接优化概率的诚实度。负责"概率诚实",Brier 分数衡量预测概率与真实结果(0 或 1)之间的均方差,直接惩罚"过度自信"与"信心不足"。这是气象预报领域校准概率的经典工具,用在 LLM 后训练上是个务实的选择。
其三,RLCD(Reinforcement Learning for Calibrated Decisions)。Cloudflare 自命名的方法,用强化学习给校准决策施加奖励,相邻评分档给部分得分,防止模型只会非黑即白。负责"序数合理性"。对 score 类问题,模型把"轻微"判成"严重"要重罚,判成相邻的"一般"只轻罚(部分得分);同时奖励完全精确的输出,并用参考惩罚约束模型不偏离初始分布。目的是解决评分档任务里"错一档和错三档代价不同"的问题,是普通交叉熵覆盖不到的。
三、其他多模态Jev
【多模态JEV决策模型进展】AutoTrust AI Lab 的 JEV-27B-VL 在 Qwen3.8-27B 上加入决策适配器:System 1 面向判断、选择与评分,直接输出概率;System 2 保留生成式推理。视觉决策头只用文本训练,图片任务采用零样本方式处理,可用于截图任务完成判定、图文筛选与推荐。据模型卡引用的 10 月 7 日社区 Jev Decision Index 0.3 视觉榜结果,它在 20 个参评模型里以 Full 69.82 排名第一。该评测的公开与私有数据各占一半,成绩仅对应这一视觉榜单。
模型权重采用 Apache 2.0 许可证;官方启动配置为单张 80GB 及以上显存显卡。
模型权重:https://huggingface.co/autotrust/JEV-27B-VL
视觉评测榜:https://huggingface.co/spaces/multimodalart/jev-decision-index?mode=vision

【全模态JEV决策模型进展】Liquid AI d1-3B / d1-omni-600M,d1-3B 约 30 亿参数,处理文本与图片;约 6 亿参数的 d1-omni-600M 可处理文本搭配图片,或文本搭配最长 30 秒音频。
相关地址:官方演示:https://huggingface.co/spaces/LiquidAI/system-one-arcade,d1-3B权重:https://huggingface.co/LiquidAI/d1-3B,d1-omni-600M 权重:https://huggingface.co/LiquidAI/d1-omni-600M,官方介绍:https://www.liquid.ai/blog/d1-open
四、Decision模型训练
1、ms-swift训练:
ms-swift 新增 Decision(System-1 决策打分)任务支持
与生成式模型不同,Decision 模型一次前向即可对每个问题的所有选项输出校准概率,适用于分类、是非判断、有序打分等任务------无需 token 生成,又快又准。
目前支持模型:
- JEV-27B-VL --- Qwen3-VL + PEFT adapter,verbalizer 打分头(24 槽 bias),KL 蒸馏 + RPS 损失
∘https://modelscope.cn/models/autotrust/JEV-27B-VL - Clef --- Qwen3-VL(已合并 LoRA),多问题联合解码,标签平滑 CE + Brier 损失
∘https://modelscope.cn/models/Cloudflare/clef - OmniJev --- Qwen3.5-4B hybrid + PEFT adapter,多模态(图像/视频),FiLM + 有序回归头
∘https://modelscope.cn/models/AI-ModelScope/OmniJev
- JEV-27B-VL:Qwen3-VL + PEFT adapter
- Clef:已合并 LoRA 的完整 Qwen3-VL
- OmniJev:Qwen3.5-4B(hybrid gated-deltanet + VL)+ PEFT adapter
| 模型 | --model_type |
底座 | 头制品 | --loss_type |
|---|---|---|---|---|
| JEV-27B-VL | jev |
Qwen3-VL + PEFT adapter | decision_head.json + calibration.json(24 槽 verbalizer bias) |
distill_rps |
| Clef | clef |
已合并 LoRA 的 Qwen3-VL | joint_head.safetensors + joint_head_config.json |
smooth_brier |
| OmniJev | omnijev |
Qwen3.5-4B hybrid + PEFT adapter | head.pt(FiLM)+ ord.pt(有序回归)+ new_tok_emb.pt(2 新 token)+ head_meta.json |
ce_rps |
参考:https://swift.readthedocs.io/zh-cn/latest/BestPractices/Decision.html
2、unsloth框架训练:
原文:https://unsloth.ai/docs/basics/train-your-own-decision-model-with-unslothQwen3.8
微调文档:https://unsloth.ai/docs/models/qwen3.8
Gemma 4 微调文档:https://unsloth.ai/docs/models/gemma-4
决策模型部署与运行指南:https://unsloth.ai/docs/models/decision-laya
Reference
1 https://github.com/InternLM/Intern-Decision/blob/main/benchmarks/accuracy-v1/manifest.json
2 多模态版本的Jev决策模型?也看Intern-Decision的实现思路及几点思考
3 又一个多模态版本Jev决策模型?再看Clef的实现思路及训练机制