【免费下载链接】Qwen3.5-122B-A10B-singprobe
Qwen3.5-122B-A10B-singprobe是一款构建在 Qwen3.5-122B-A10B 之上的轻量级流式安全护栏(streaming guardrail):它不引入额外的安全模型,而是直接复用基座模型的隐藏状态(hidden states),在生成的每一个 token上同时打三个分——查询意图、响应安全性、幻觉风险。整个探针仅 6.17M 参数,解码开销不到 0.5%。🎯
而它最精巧的设计,就藏在三个数字里:14、30、46——从 64 层 Transformer 中只"抽头"这三层的隐藏状态。为什么恰好是这三层?这篇文章带你拆解背后的设计哲学。
先认识 SingProbe:不用独立安全模型的"内生护栏"
传统做法是在大模型旁边再挂一个独立的安全分类模型,每生成一段就要调用一次,延迟和成本都翻倍。SingProbe 换了个思路:安全信号本来就藏在基座模型自己的激活里。
它在生成过程中拦截指定层的隐藏状态,用一个极小的探针网络逐 token 打分:
| 规格项 | 取值 | 说明 |
|---|---|---|
| 基座模型 | Qwen3.5-122B-A10B | 必须与探针严格配对使用 |
| 探针参数量 | 6.17M | 约为基座的百万分之一量级 |
| 抽头层(tapped layers) | [14, 30, 46] | 见 config.json |
| 输出 | 10 个分数(label_0–label_9) | 8 种意图 + 不安全 + 幻觉风险 |
探针架构是带滑动窗口注意力的轻量网络(8 头 × 64 维,窗口 2048),实现见 modeling_sing_probe.py。正因为"寄生"在基座激活上,它才能做到逐 token 实时评分且几乎零额外开销。
为什么恰好是第 14、30、46 层?
等间隔"均匀抽头":步长恒为 16
先看这三层的位置关系:14 → 30 → 46,相邻间隔都是 16 层。这不是巧合,而是刻意的等距采样策略——用固定的步长把网络栈大致切成"早—中—晚"三段,每段取一个代表。
Transformer 各层编码的信息抽象程度不同:
- 浅层(如第 14 层):更偏局部、词法与句法特征——"用户到底在问什么、字面说了什么",对意图识别贡献大;
- 中层(如第 30 层):语义开始整合,上下文模式更稳定;
- 较深层(如第 46 层):接近任务级的高层决策表征,携带与最终输出最相关的"全局判断",对安全与幻觉信号更敏感。
三层信息互补,等距抽头则让方案可复现、可解释——换基座模型时,按层数比例做类似等分就能快速迁移,而不用重新网格搜索。
为什么是"3 层"而不是 1 层或全部层?
- 1 层不够:单一层的信号维度有限,意图、安全、幻觉三类任务所需的信息往往不在同一抽象层级,单层难以兼顾;
- 全部层太贵:层数越多,拼接后的输入维度和探针计算量线性膨胀,流式场景下逐 token 的开销会被放大;
- 3 层是性价比甜点:信息覆盖足够,输入特征维度被锁定在可接受范围。
这个"层数 × 隐藏维度"的乘积关系在配置里一目了然:input_size = hidden_size × 抽头层数,见 configuration_sing_probe.py。
设计哲学:三个"恰好"背后的取舍
- 信息充分性 vs 推理开销。三层拼接的输入维度为
3072 × 3 = 9216(hidden_size=3072,见 config.json),探针只在其上做了投影 + 注意力 + 分类,最终换来< 0.5% 的解码开销——对流式服务而言基本无感。 - 可解释的默认选择。等距抽头是一种"先验友好"的归纳偏置:位置规则简单、跨模型易迁移,工程上远好过一套黑箱搜索出来的"奇数层组合"。
- 为流式而生。探针内建 2048 的滑动窗口注意力(modeling_sing_probe.py),长序列不会导致注意力计算爆炸,保证每个 token 都能即时出分——这正是"流式护栏"的核心诉求。
三层隐藏状态如何变成 10 个分数
流程非常直接:
- 拼接:把第 14、30、46 层的隐藏向量按维度首尾相连,得到 9216 维输入(
SingProbeAttnModel.forward入口先校验维度,modeling_sing_probe.py); - 轻量注意力:8 头、头维 64,按因果/滑窗规则聚合上下文;
- 归一化 + 分类:RMSNorm 后接线性分类头,输出
num_labels=10个 logit。
10 个分数对应8 种查询意图 + 响应不安全 + 幻觉风险,服务端每生成一个 token 就返回一个分数字典,供业务侧做意图路由、内容拦截或幻觉告警。
实测效果:小探针,硬指标
在官方评测中,这个 6.17M 的小探针整体打平甚至超过 8B 量级的专用安全模型(数据来自 README.md):
| 任务 | 指标 | singprobe | 参考基线 |
|---|---|---|---|
| 查询意图分类(6 个基准) | F1 | 0.8697 | YuFeng-XGuard-Reason-8B:0.8714 |
| 响应安全分类(8 个基准) | F1 | 0.8680 | Qwen3Guard-Gen-8B-strict:0.8604 |
| 流式安全(3 个基准) | R-AUC / T-AUC | 0.9895 / 0.9304 | Qwen3Guard-Stream-8B-strict:0.9640 / 0.8893 |
| 幻觉检测(6 个基准) | AUC | 0.7806 | DRIFT:0.8000 |
更关键的是部署侧的两个数字:良性回复误报率平均仅 0.03%,解码开销 < 0.5%——"拦得住"还"不打扰",这对生产环境至关重要。
快速上手:一行参数加载探针
在支持该探针的 SGLang / vLLM 集成分支上,启动服务时只需多传一个--probe-ckpt参数:
python -m sglang.launch_server \ --model-path Qwen/Qwen3.5-122B-A10B \ --probe-ckpt inclusionAI/Qwen3.5-122B-A10B-singprobe \ --port 30000⚠️ 注意:基座模型与探针必须成对使用(Qwen/Qwen3.5-122B-A10B+ 本探针),因为探针权重就是针对这三层的隐藏分布训练出来的。
一句话总结
14、30、46 不是玄学:等距抽头让浅层的词法意图、中层的语义整合与深层的任务级判断各占一席;三层拼接把信息量控制在 9216 维以内;再配上一个 6.17M 的滑窗注意力小探针,就换来逐 token 的意图/安全/幻觉三重评分和不到 0.5% 的延迟代价。💡 这就是 Qwen3.5-122B-A10B-singprobe 隐藏状态选型的完整设计哲学——用最少的层,拿够用的信号,守住流式生成的每一毫秒。
【免费下载链接】Qwen3.5-122B-A10B-singprobe
相关推荐
Qwen3.5-4B-singprobe核心架构解析:为什么在第9、19、30层提取隐藏状态
Qwen3.5 4B singprobe核心架构解析:为什么在第9、19、30层提取隐藏状态 Qwen3.5 4B singprobe(SingProbe)是一
护栏方案对比:Qwen3.5-122B-A10B-singprobe vs Qwen3Guard-8B vs DRIFT,终极选型指南
护栏方案对比:Qwen3.5 122B A10B singprobe vs Qwen3Guard 8B vs DRIFT,终极选型指南 Qwen3.5 122B
Qwen3.5-122B-A10B-singprobe源码解析(上):SingProbeAttnModel与SingProbeMlpModel两种探针架构全拆解
Qwen3.5 122B A10B singprobe源码解析(上):SingProbeAttnModel与SingProbeMlpModel两种探针架构全拆解
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考