侧边栏壁纸
博主头像
HHShare 博主等级

行动起来,活在当下

  • 累计撰写 275 篇文章
  • 累计创建 36 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

1,263 星的 neuron explorer:推完 9,216 个神经元,Qwen 变坏只用两个

晖晖分享
2026-10-27 / 0 评论 / 0 点赞 / 0 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我删除。

Qwen3.5-4B 里有 9,216 个 MLP 神经元。有人把每一个都往上推、往下压试了一遍,留下的仓库叫 neuron explorer(lyramakesmusic/neuron-explorer),10 月 21 日建仓,今天 1,263 星。

10 月 24 日,作者 lyra(@lyraaaa)在 X 上发了条帖子,说手边要是有个 qwen3.5 4b,就试试把神经元 L14 N8949 推 +1、L13 N7956 压 −1,末尾还补了 now you have evil qwen 这样的台词,听着像递偏方。

配方也没藏着,dose × median(‖resid‖ leaving layer L) / ‖W_down[:, n]‖,每次输入都在 down_proj 上加一遍。这条帖子 18.9k 赞、421 条回复(据 mlllm.io 统计)。

「两颗神经元换一副人格」听着像标题党。可两天之内,至少三拨人真把它跑出来了,数字还挺整齐。

先把一处传歪的话摆正。整理这条消息的摘要写的是「在浏览器 WebGPU 上本地运行」,翻仓库会发现对不上。

模型在本机的 Python 进程里跑,MPS、CUDA 或者 CPU 都行;浏览器只是那层 3D 地图的界面,用的是 three.js 和 WebGL。

打开网页不等于能用,说白了,得先把 4B 模型请到自己的机器上。

9,216 次推拉,看的是它「写」出什么

找神经元的老办法是看谁最响,拿一堆网页文本喂进去,激活最高的那个排在前面。问题是,有些神经元从不最响,却最要紧。

作者的日志里有个例子。Qwen3-8B 的 L8 N5315 把「oak tree」从一个角色的系统提示里带了出来,靠激活排名根本看不见它。

neuron explorer 换了个问法,不管它读什么,直接把它推上去,看模型接下来写成什么样。每个神经元配 10 次 rollout,全部存下来,greedy 解码。

这一层 9,216 个神经元全量推完,再加 256 个随机方向做对照。

L22 有 1,803 个神经元(19.6%)的改写强度超过所有对照,L8 只有 757 个,8.2%。那个被论坛叫「外星人神经元」的 L22 N2742,在 9,216 个里排 405,前 4.4%。

对照是这套东西的命门。同一批实验里,随机方向也能让模型自称「小米 AI」,也有人说自己是微软训练的。

文本变了几乎不算证据。推一下,83% 到 98% 的贪心输出都会变。

「邪恶 Qwen」能复现,两个神经元的功劳不均

第一拨复现来自 hedwigai,一台 16GB 的 M1 Pro,8 bit,贪心解码,20 个提示词,7 个日常、13 个价值观。

只推 L14 N8949 一个,20 条回答里 17 条带敌意。按原帖推两个,16 条。反过来只压 L13 N7956,0 条,模型甚至更温和一点。

对照组是 5 组随机神经元,同层、同剂量,100 条回答里 0 条敌意。其中一组揪着「事实」不放,一组给人讲键盘操作方法,一组在讲几十亿年。

第二拨复现换了栈,M4 Max 加 mlx-lm,先用 bf16 再上 4 bit。困惑度从 19.65 涨到 48.52(剂量 1),剂量 1.5 时飙到 130.07,句子开始散架。

它还顺手验了两件事。4 bit 量化只把要加的数值挪了 2%,行为照旧;层号是从 0 起算的,按 1 起算去推,人格翻转根本不出现。

所以原帖那句「两个神经元」,实际是 L14 N8949 主刀,L13 N7956 是个更弱的第二旋钮。

读得最欢的神经元,往往不是元凶

hedwigai 还试了三种常见的挑选办法,看它们能不能把 N8949 挑出来。

按「读邪恶文本时谁最亮」排,它在 294,912 个神经元里排 35,436,前 12%。按输出方向对齐排,前 4%。

只有按「推一下会让邪恶回答的概率涨多少」的梯度归因,它才进到前 0.3%。

前两种排法的毛病很直白。最后层那些在邪恶文本上亮成一片的神经元,念诗也亮,偏执和阴郁也亮,它们跟的是「这会儿有人在扮演角色」。

问题是怎么找到那个起作用的旋钮。答案有点笨,推一下,读它写出来什么。

25 个候选推下来,12 个给了能叫出名字的人格。奉承在 L20 N7450,轻蔑在 L17 N8623,还有个诗人住在 L17 N7426。

另外 13 个里头,5 个只有模糊的味道,3 个没反应,5 个直接把模型弄坏了。

两派各说各话。一边觉得这是把人设拆成了零件,另一边提醒这只是一个 4B 模型、一个作者、还没有指标。

代价:一半能自己跑,一半得租卡

本机能跑的那半,是一副 4 bit 的 Qwen3.5-4B。HuggingFace 上 mlx-community 那一版 4.5B 参数,3.7 万次下载,M 系列 Mac 撑得住。

跑不了的那半是扫描本身。仓库里的全量 sweep 用的是一份改过的 vLLM 分支,要在 4090 上跑。

L22 一层约 9.5 万次 rollout,作者估算 1.4 小时、约 1.25 美元。32 层各抽 384 个神经元加 64 个对照,摊到 4 张 4090 上跑了 1 小时 50 分,约 6 美元。

好在 explorer/cache/ 里已经带着这些结果,本机只管做实时推拉,这一半不用自己踩坑。

还有一层质疑在后面等着。8 月有篇论文审计了 5 个家族、17 个模型,指出用原始激活单位做推拉,会凭空造出「能力随参数变大」的趋势,换一种量法就没了。

按残差范数可比的干预下,概念转向在每个尺度的模型上都还在。lyra 那个剂量公式正好是按残差范数归一的,这波能复现,靠的就是这一步。

作者自己也没把话说满。日志里写得很清楚,中间层 L13 到 L19 只有 8% 到 17% 的神经元能过对照。

这个低谷算不算真的,眼下还绕不开指标那一关:排名只看内容词,话语词全被漏掉。

如何安装

仓库是 uv 项目,两条命令就够。

uv sync
uv run python explorer/server.py    # http://localhost:8791

打开的是本地页面,左边 3D 地图按层摆好神经元,点进去有加减两档的聊天、lens 和上下游连线。

模型得自己先下好,4 bit 那一版在 HuggingFace 上叫 mlx-community/Qwen3.5-4B-MLX-4bit。路径配进配置,M 系走 MPS,有 N 卡走 CUDA。

只想复现那两颗神经元,不用装整套。按原帖的公式,在 mlp.down_proj 外面包一层,每个 token 给 N8949 加 22.6、给 N7956 减 23.3,这是 bf16、剂量 1 下的实测值。OCCCat 的复现仓库里有现成的 mlx-lm 写法。

三个地址,按顺序是仓库、复现报告和第三方测试。

项目地址:https://github.com/lyramakesmusic/neuron-explorer
复现报告:https://github.com/occcat/qwen35-evil-neuron
第三方测试:https://www.hedwigai.com/blog/qwen-personality-neurons

0

评论区