今天聊點不一樣的,阿里這次沒發新模型,而是給 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.