Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/alainnothere/llm-circuit-finder
漏洞利用逆向工程机器学习论文与研究学习与教育AI 安全
GitHubalainnothere/llm-circuit-finder

llm-circuit-finder

我复现了 Ng 的 RYS 方法,发现将 Qwen2.5-32B 中 3 个特定层复制一遍,推理能力提升 17%;将 Devstral-24B 中第 12-14 层复制一遍,BBH 上的逻辑推理得分从 0.22→0.76——无需训练,不改变任何权重,只是让隐藏状态两次流经同一个电路。附带了工具。两块 AMD GPU,一个晚上。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
2421855个月前Kitploit 审核通过

llm-circuit-finder

我复现了 Ng 的 RYS 方法,并发现:在 Qwen2.5-32B 中复制 3 个特定层可提升推理能力 17%,在 Devstral-24B 中复制 12-14 层可将逻辑推理从 0.22 提升至 0.76(BBH 基准)——无需训练,无需调整权重,只需将隐藏状态两次经过同一电路。工具已包含。两块 AMD GPU,一个晚上。

llm-circuit-finder

复制 3 个层。无需训练。逻辑推理从 ~0.22 提升至 0.76。

该工具包用于发现并利用 Transformer 模型中隐藏的“推理电路”。核心思想:某些连续的层块扮演着不可分割的认知单元角色。在前向传播中复制它们——相同权重、无训练、无合并——模型在特定能力上会显著变强。

基于 David Ng 的 RYS 方法 构建,并扩展了新的发现。以下所有内容均在一个晚上、两块 AMD 消费级 GPU(RX 7900 XT + RX 6950 XT)上完成。

结果

Devstral-Small-2-24B:复制层 12、13、14 一次

我在 Vast.ai 的 H200 实例上运行了完整测试,并比较了 Devstral 基础版与手术版模型。结果如下:手术确实产生了切实且特定的效果:它提升了数学推理和因果推理能力,但牺牲了指令遵循和代码生成能力。模型思考更深入,但遵循指令的精确度下降。

在 results 文件夹中,你可以找到 eval_base 和 eval_surgery 的结果。 我还将 vastai_rys_eval.sh 添加到了仓库中,这是在 Vast.ai 上运行整套流程的脚本。 vastai 实例通过以下命令创建:

vastai create instance somenumberhere --image vastai/base-image:cuda-12.8.1-cudnn-devel-ubuntu22.04 --disk 80 --direct --ssh

root@kitploit:~
=================================================================================
lm_eval 结果比较
=================================================================================
指标                                              base  rys_12_15 Δ(末-首)
---------------------------------------------------------------------------------
bbh/causal_judgement [exact_match]                0.5775     0.6364     +0.0588

bbh/date_understanding [exact_match]              0.9440     0.9000     -0.0440

bbh/logical_deduction_five_objects [exact_match]     0.7440     0.7320     -0.0120

bbh/navigate [exact_match]                        0.9600     0.9440     -0.0160

gsm8k_cot [flexible-extract]                      0.8650     0.8787     +0.0136
gsm8k_cot [strict-match]                          0.8408     0.8704     +0.0296

ifeval [inst_level_loose_acc]                     0.7446     0.7206     -0.0240
ifeval [inst_level_strict_acc]                    0.6990     0.6595     -0.0396
ifeval [prompt_level_loose_acc]                   0.6728     0.6488     -0.0240
ifeval [prompt_level_strict_acc]                  0.6229     0.5767     -0.0462

mbpp [pass_at_1]                                  0.7000     0.6700     -0.0300
=================================================================================

平均(所有指标)                              0.7610     0.7488     -0.0122

Qwen2.5-Coder-32B:复制层 7、8、9 一次

自定义探针套件(源自BBH + EQ-Bench风格 + GSM8K)测量结果:

探针基础版+3层变化
推理(因果+逻辑+导航)76.5%94.1%+23%
情商92.193.6+1.6%

原理

Transformer 在训练过程中会自发组织成功能性电路——执行完整认知操作的多层处理单元。这些电路不可分割:复制单个层几乎无效,但复制正确的 块(3-4层)相当于让模型第二次经过其推理管线。

不同模型在不同位置拥有不同电路:

  • Devstral-24B(40层):推理电路位于层 12-14
  • Qwen2.5-32B(64层):推理电路位于层 7-9

边界很清晰。将块向任意方向偏移一层,改善效果就会消失甚至反转。

“模式”发现

不同的复制模式可以从相同的权重中产生截然不同的认知特征:

相同的磁盘权重,相同的基础版 VRAM,只是路由不同。

快速开始

在您的模型中查找电路

root@kitploit:~
pip install gguf requests tqdm

python sweep.py \
    --model /path/to/model.gguf \
    --llama-server /path/to/llama-server \
    --tmpdir /dev/shm/rys \
    --results pass.jsonl \
    --block-sizes 3 4 5 \
    --stride 1 \
    --start-min 10 --start-max 20 \
    --skip-baseline \
    --port 8099 \
    --server-args --device Vulkan1,Vulkan2

应用已知电路

root@kitploit:~
# 在 Devstral 中复制层 12-14(上述已验证的结果)
python layer_path.py model.gguf improved.gguf \
    -p "0..14,12,13,14,15..39" -v

# 在 Qwen2.5-32B 中复制层 7-9
python layer_path.py model.gguf improved.gguf \
    -p "0..9,7,8,9,10..63" -v

# 尽情尝试:三次经过、交错、跳过层等任意组合
python layer_path.py model.gguf experiment.gguf \
    -p "0..16,13,14,15,16,13,14,15,16,17..39" -v

使用成熟基准验证

root@kitploit:~
# 启动修改后模型的服务器
llama-server -m improved.gguf --port 8089 -ngl 99 --device Vulkan1,Vulkan2

# 运行 lm-evaluation-harness
lm_eval --model local-chat-completions \
    --model_args model=test,base_url=http://localhost:8089/v1/chat/completions,num_concurrent=1,max_retries=3,tokenized_requests=False \
    --tasks gsm8k_cot,ifeval,mbpp,bbh_cot_fewshot_logical_deduction_five_objects \
    --apply_chat_template --limit 50 \
    --output_path ./eval_results

# 比较运行结果
python compare_eval.py ./eval_base ./eval_improved

文件

扫描工作原理

  1. 对于每个层配置 (i, j):

    • GGUF 手术创建一个模型,其中层 i..j-1 被物理复制
    • 新的前向传播:layers 0..j-1 → layers i..j-1 again → layers j..N-1
    • llama-server 加载修改后的模型
    • 运行三个探针套件:数学、情商、推理(源自 BBH)
    • 分数与基线比较,实时打印结果
    • 杀死服务器,删除修改后的 GGUF,下一个配置
  2. 搜索策略:

    • 第1遍:大块(8层),大步幅 → 找到热点区域
    • 第2遍:小块(3-5层),步幅1,在热点区域内 → 找到精确边界
    • 第3遍:尝试多次经过、交错和复合配置

修改后的 GGUF 写入 tmpfs (/dev/shm),每次测试后删除。基础模型权重保留在磁盘上。

要求

  • Linux 系统,已编译 llama.cpp(CPU、CUDA、Vulkan 或 Metal)
  • Python 3.10+,安装 gguf、requests、tqdm
  • 有足够的 VRAM/RAM 运行模型 + 额外复制的几个层
  • 可选:lm-eval 用于基准验证,matplotlib 用于热力图绘制

常见问题

这会消耗更多 VRAM 吗? 是的,复制的层是 GGUF 中的物理副本。对于 24B 模型增加 3 个额外层,预计增加 ~1.5 GiB。通过 llama.cpp 前向传播补丁(使用指针而非副本)可以消除这一问题——欢迎贡献。

这会减慢推理速度吗? 是的,与额外层数成比例。40 层模型增加 3 层 = 减慢约 7.5%。推理能力的提升是值得的。

这能在我的模型上工作吗? 很可能。我们已在 Mistral 架构(Devstral)和 Qwen2 架构上测试过。Ng 的原始工作基于 Qwen2-72B。所有 Transformer 模型中都存在这些电路——问题在于它们的位置和大小。运行扫描找出答案。

为什么不直接微调? 这与微调是正交的。两者可以同时进行。实际上,Ng 的 RYS 模型后来被其他人微调,并登上了 HuggingFace 排行榜的榜首。层复制改变架构;微调改变权重。叠加使用。

致谢

  • David Ng 提出了 RYS 方法和 Transformer 具有功能性神经解剖学的洞见
  • llama.cpp 使本地推理成为可能
  • lm-evaluation-harness 用于基准验证

许可证

MIT

下载工具
模式数学情商性格
双次经过 13-16↑↑↑数学专精
三次经过 13-16↑↑↑情商专精
交错 13,13,14,14,15,15,16↑↑↑↓纯数学模式
四次经过 13-16—↑↑情商模式,数学中性
文件功能
sweep.py主要扫描框架——寻找最优的层复制配置
layer_path.py构建任意具有显式层执行路径的 GGUF 模型
gguf_surgery.py底层的 GGUF 层复制(sweep.py 使用)
math_probe.py硬算术探针(Ng 的部分评分方案)
eq_probe.py情商探针(EQ-Bench 风格)
reasoning_probe.py源自 BBH 的因果/逻辑/导航/数学文字题
compare_eval.py跨运行比较 lm-evaluation-harness 结果
visualize.py扫描结果的文本和 PNG 热力图