今天聊点不一样的,阿里这次没发新模型,而是给 Qwen3.5 配了把"手术刀"——Qwen-Scope
第一眼看到这玩意儿我愣了一下,平时大家拼的都是榜单分数、上下文长度、推理速度,阿里突然冒出来一个可解释性工具,专门用来扒大模型脑子里到底在想什么
这就有意思了
简介
先说人话,Qwen-Scope 是给 Qwen3 / Qwen3.5 系列做的一组稀疏自编码器(SAE),挂在模型隐藏层上,把那一团乱麻一样的激活向量拆成一堆"高度解耦、低冗余、可解释"的特征
![]()
Qwen-Scope 架构总览
打个比方:基础大模型每一层吐出来的隐藏状态,是个 5120 维的稠密向量,你看不懂它在说啥;SAE 等于在中间插了一根探针,把这 5120 维"翻译"成 81920 维稀疏表示,每次只有 50 个特征被激活
被激活的这 50 个特征,每一个都对应一个相对清晰的语义概念,比如"金融文本"、"代码注释"、"道歉语气"之类的人类能看懂的东西
这次发布的这个SAE-Res-Qwen3.5-27B-W80K-L0_50,就是给Qwen3.5-27B这个基础模型量身训练的一套 SAE,覆盖了它全部 64 层
老实说,国内大厂愿意把可解释性工具开源出来的不多,阿里这波算是把家底亮了一截
核心规格一览:
参数
数值
基础模型
Qwen3.5-27B
SAE 宽度d_sae
隐藏维度d_model
5120
扩展倍率
16×
Top-K
50
挂载位置
残差流(Residual Stream)
覆盖层数
0–63 共 64 层
文件格式
PyTorch.pt字典
它能干嘛:
可控推理:找到对应"礼貌"或"代码"的特征,把它的激活值拉高,模型输出立刻就被掰过去了,比 prompt 工程稳得多
评测样本分布分析:拿两组数据过一遍 SAE,比对激活分布,能看出训练集和测试集到底差在哪儿
数据分类与合成:用激活的特征当聚类信号,给海量语料自动打标,比关键词靠谱
模型训练优化:在训练阶段就盯着特征看,提前发现模型学跑偏了
简单说,以前我们调模型靠玄学,现在可以靠显微镜
架构
这是一个TopK SAE,每次前向传播严格只保留 50 个非零特征,干净利落
每个层的 checkpoint 文件layer{n}.sae.pt里就是一个 Pythondict,包含四个张量:
Key
Shape
W_enc(81920, 5120)
编码器权重
W_dec(5120, 81920)
解码器权重
b_enc(81920,)
编码器偏置
b_dec(5120,)
解码器偏置
仓库里就是 64 个文件,从layer0.sae.pt到layer63.sae.pt,想分析哪一层挑哪个
安装
它不是独立的包,本质上就是几堆权重 + 一段挂 hook 的代码,所以只要你能跑 transformers 就能跑它
pip install torch transformers
把 Qwen3.5-27B 基础模型和这个仓库的.pt文件都拉下来即可,模型仓库地址是:
https://huggingface.co/Qwen/SAE-Res-Qwen3.5-27B-W80K-L0_50
使用官方给的端到端 demo 也很直白,三步走:跑基础模型 → 在指定层 hook 残差流 → 拿到激活后过一遍 SAE,输出稀疏特征
直接贴官方代码:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# ── 1. 加载基础模型 ────────────────────────────────
model_name = "Qwen/Qwen3.5-27B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float32)
model.eval()
# ── 2. 加载目标层的 SAE ────────────────────────────
LAYER = 0# 任选 0–63
sae = torch.load(f"layer{LAYER}.sae.pt", map_location="cpu")
W_enc = sae["W_enc"] # (81920, 5120)
b_enc = sae["b_enc"] # (81920,)
def get_feature_acts(residual: torch.Tensor) -> torch.Tensor:
"""residual: (..., 5120) → 稀疏特征激活 (..., 81920)"""
pre_acts = residual @ W_enc.T + b_enc
topk_vals, topk_idx = pre_acts.topk(50, dim=-1)
acts = torch.zeros_like(pre_acts)
acts.scatter_(-1, topk_idx, topk_vals)
return acts
# ── 3. 在目标层挂 hook 抓残差流 ────────────────────
captured = {}
def _hook(module, input, output):
hidden = output[0] if isinstance(output, tuple) else output
captured["residual"] = hidden.detach().cpu()
hook = model.model.layers[LAYER].register_forward_hook(_hook)
# ── 4. 前向 ───────────────────────────────────────
text = "The capital of France is"
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
model(**inputs)
hook.remove()
# ── 5. 提取特征激活 ───────────────────────────────
residual = captured["residual"] # (1, seq_len, 5120)
feature_acts = get_feature_acts(residual) # (1, seq_len, 81920)last_token_acts = feature_acts[0, -1]
active_idx = last_token_acts.nonzero(as_tuple=True)[0]
print(f"Active features : {active_idx.tolist()}")
print(f"Feature values : {last_token_acts[active_idx].tolist()}")
跑完你会得到 50 个激活特征的下标和数值,每个下标对应一个"语义单元"
官方还顺手给了一个 Gradio 可视化 demo,能在网页上交互式看每个特征到底在响应什么:
python app.py \
--model Qwen/Qwen3.5-27B \
--model-name-sae-trained-from qwen3.5-27b \
--model-name-analyzing-now qwen3.5-27b \
--sae-path Qwen/SAE-Res-Qwen3.5-27B-W80K-L0_50 \
--top-k 50 \
--num-layers 64 \
--sae-width 81920 \
--d-model 5120 \
--server-port 7860
打开浏览器进localhost:7860就能玩了
❝ 小提示:官方说了,用基础模型训出来的 SAE 拿去分析后训练(post-training)阶段的检查点,一般也是合理的,不一定非要给微调版本重新训一套 SAE实测建议
我没本地跑这套(27B 全精度 + 64 层 SAE 权重,对显存和硬盘都不太友好),但从文档和参数看,几个心得分享下:
优点:
覆盖全层:64 层一个不落,纵向研究模型不同深度的功能分化非常方便,这是很多开源 SAE 做不到的
TopK 设计:相比传统 L1 稀疏 SAE,TopK 在工程上更可控,特征稀疏度死死锁在 50,不会漂
挂在残差流:残差流是 Transformer 里信息高速路,特征解释性比挂在 attention 输出或 MLP 输出更通用
配套 Gradio:上手门槛比 Anthropic 的研究代码低多了
注意点:
吃硬盘:64 个 layer,每个 SAE 权重大概都是 (81920×5120)×2 + 偏置,全精度下单层就是 GB 级别,64 层加起来可观
吃显存:27B 基础模型本身就重,再加上 SAE 推理,单卡 4090 估计够呛,研究用建议直接上 A100/H100
场景较窄:这是给做模型机制可解释性研究、做可控生成、做训练数据分析的同学准备的,普通业务部署用不上
训练框架未开源:这次只放了权重,训练代码暂时没看到,想自己训新版本得自己造轮子
老实说,这种工具一般是大厂研究院内部用的,能开源出来就值得点赞
总结
如果你是做大模型可解释性研究的研究员,或者在做高级可控生成(不止 prompt 工程),又或者在做训练数据分析、想知道模型到底学到了啥,那这套 Qwen-Scope 真的别错过——它可能是目前国内最完整、最大规模的开源 SAE 集合
如果你只是想用 Qwen 跑个聊天机器人或者做 RAG,那这玩意儿对你帮助不大,老老实实用 Instruct 版本就行
阿里这一招不在榜单上加分,但在大模型生态深度上加了不少分,模型能力之外,开始卷理解模型本身,这才是头部玩家该做的事
-Scope
制作不易,如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个,谢谢你看我的文章,我们下篇再见!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.