【免费下载链接】Qwen3.5-122B-A10B-singprobe
本文以 inclusionAI/Qwen3.5-122B-A10B-singprobe(SingProbe,流式安全探针)为蓝本,从 6.17M 探针的架构设计、注意力与 MLP 双实现代码,到训练与部署步骤,带你一步步学会如何训练自己的流式安全探针,适合 AI 安全与 LLM 推理优化的新手阅读。
什么是流式安全探针:内置,而非外挂 🛡️
大模型安全常见做法是"外挂护栏模型":等回答生成完,再跑第二个安全模型审查。这种方式有三个明显痛点:
- 延迟翻倍:必须等完整生成后才能审查
- 资源翻倍:需要部署一个额外的模型
- 无法流式:只能"事后"检测,无法在 token 生成的当下干预
流式安全探针(SingProbe)换了思路:不再单独部署安全模型,而是直接在基座模型 Qwen3.5-122B-A10B 内部"抽头"(tap)隐藏状态,在生成过程中对每个 token 实时打分,一次判断三件事:
- 查询意图(query intent):用户问题属于哪类意图,共 8 类;
- 回复不安全性(unsafe):当前生成的内容是否不安全;
- 幻觉风险(hallucination):模型是否在"编造"事实。
解码时额外开销不足0.5%——相当于给 122B 大模型"免费"配上了护栏。
架构揭秘:6.17M 参数与三层抽头
探针的核心配置全部写在 config.json 中:
| 参数 | 取值 | 含义 |
|---|---|---|
model_type | sing_probe_attn | 注意力版探针(正式发布的版本) |
hidden_size | 3072 | 基座模型的隐藏层维度 |
base_model_layer_ids | [14, 30, 46] | 从中层、后层、末层抽取表示 |
num_attention_heads | 8 | 探针的注意力头数 |
sliding_window | 2048 | 每个 token 回看的最大窗口 |
num_labels | 10 | 8 类意图 + unsafe + hallucination |
两个值得学习的设计点:
- 多层抽头拼接:探针输入不是单层输出,而是第 14 / 30 / 46 层隐藏状态的拼接,输入维度为
3072 × 3 = 9216。浅层偏表面特征、中层偏结构、末层偏任务语义,拼起来互补; - 滑动窗口注意力:
sliding_window=2048表示每个 token 只看前 2048 个 token,长上下文也不会导致计算量爆炸。
代码剖析:两种探针实现任你选
完整模型代码在 modeling_sing_probe.py,包含两种可自由组合的实现,训练自己的探针时可按需选择。
方案一:MLP 探针(最简单)
SingProbeMlpModel 只有两层线性变换:
拼接隐藏状态 (9216) → Linear(9216→1024) → GELU → Linear(1024→10) → logits它是纯逐点分类,不带上下文建模能力,训练最快、推理开销最低。如果基座模型末层表示本身可分性已经很好,这个方案往往就够用。
方案二:注意力探针(发布版本)
SingProbeAttnModel 在 MLP 基础上增加了一层自注意力:
proj_q / proj_k / proj_v:把多层拼接特征投影为 Q/K/V,其中 Q 拆成 8 头 × 64 维;- _sliding_window_attention:分块的滑动窗口注意力,保证每个位置只回看最近 2048 个 token;
- forward:注意力输出与 Q 特征做残差融合,再经
RMSNorm和线性层输出 10 个分数。
对应的配置类 SingProbeAttnConfig 通过 config.json 的auto_map注册,用AutoModel即可直接加载,训练完保存也很方便。
探针总参数仅6.17M,比 122B 基座小四个数量级,这是"开销近乎为零"的关键。
逐 token 打分为何能实现流式检测
流式安全探针的核心在于:每生成一个 token 就能立刻拿到风险分数,不用等整段输出。
- 解码时,基座模型为每个新 token 输出第 14、30、46 层的隐藏状态;
- 三者拼接成 9216 维向量,送入探针;
- 探针输出 10 个分数(
label_0–label_9),由推理框架随 token 一并返回; - 应用层根据分数阈值实时干预:改写、截断或转人工审核。
由于注意力是因果的(只看已生成内容),分数不会"偷看"未来 token——这正是流式(streaming)检测的含义。
性能表现:技术报告关键数据 📊
官方技术报告(arXiv:2608.30703)的核心结果收录于 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%,线上服务延迟基本无感。
用 6M 参数的探针逼近专用 8B 护栏模型,流式指标甚至反超 Qwen3Guard-Stream,投入产出比非常高。
实战:如何训练自己的流式安全探针
你不需要训练大模型本体,整个过程就是"抽特征 + 训小头",四步走:
第 1 步:设计标签体系与数据
- 定义标签,如 SingProbe 的 10 类:8 类意图 + unsafe + hallucination;
- 收集 (prompt, response) 样本并标注;做流式安全还需标注"第一个不安全 token 的位置",用于计算 R-AUC / T-AUC。
第 2 步:抽取隐藏状态
- 冻结基座模型(如 Qwen3.5-122B-A10B);
- 在选定的几层(本文参考
[14, 30, 46],可按总层数调整)注册 forward hook; - 批量前向,保存各抽头层拼接后的 hidden states。
第 3 步:训练探针头
- 资源有限选 MLP 探针(两个线性层,单卡可训);
- 需要局部上下文能力就选注意力探针;
- 损失函数用标准交叉熵,数据量不大,几小时即可收敛。
第 4 步:集成与评测
- 用
save_pretrained保存,并在config.json里注册auto_map,即可被AutoModel.from_pretrained加载; - 评测误报率、检测 F1、流式指标(R-AUC / T-AUC),并实测解码开销。
💡 官方训练代码已开源在 inclusionAI 的 SingProbe 仓库(inclusionAI/SingProbe),跟着跑即可,无需从零造轮子。
部署:一行命令启用护栏 ⚡
最省事的用法是通过 SGLang 集成分支启动服务时传入探针路径(详见 README.md):
python -m sglang.launch_server \ --model-path Qwen/Qwen3.5-122B-A10B \ --probe-ckpt inclusionAI/Qwen3.5-122B-A10B-singprobe \ --port 30000接口随后为每个生成的 token 返回一个分数字典(label_0–label_9),可直接接入你的风控逻辑。注意:基座模型与探针必须成对使用(Qwen/Qwen3.5-122B-A10B+ 本 checkpoint),不能混用。
总结
- 流式安全探针= 多层隐藏状态抽头 + 6M 级轻量探针头,让 122B 大模型以 < 0.5% 开销获得逐 token 护栏;
- 官方提供 MLP 与注意力 两种实现,按资源与任务需求二选一;
- 训练路径清晰:冻结基座 → hook 抽特征 → 训小头 → 注册
auto_map部署,无需大规模集群; - 想给自己的模型加护栏?这套"探针式"方案是一个可以直接照抄的模板。
【免费下载链接】Qwen3.5-122B-A10B-singprobe
相关推荐
如何训练自己的token级安全探针?Qwen3.8-27B-singprobe(SingProbe)训练方法与技术报告解读
如何训练自己的token级安全探针?Qwen3.8 27B singprobe(SingProbe)训练方法与技术报告解读 本文以开源模型 Qwen3.8 27
Qwen3.5-122B-A10B-singprobe源码解析(上):SingProbeAttnModel与SingProbeMlpModel两种探针架构全拆解
Qwen3.5 122B A10B singprobe源码解析(上):SingProbeAttnModel与SingProbeMlpModel两种探针架构全拆解
Qwen3.5-122B-A10B-singprobe部署架构揭秘:SGLang/vLLM如何把Token探针挂进推理引擎
Qwen3.5 122B A10B singprobe部署架构揭秘:SGLang/vLLM如何把Token探针挂进推理引擎 Qwen3.5 122B A10B
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考