Skip to content

Repository files navigation

基于 FFN 解耦的精准知识编辑系统

对 Llama3-8B 进行外科手术式知识编辑——在 FFN(前馈网络)层面精准修改模型存储的特定事实,不影响模型在不相干领域的表现。

核心思路

传统 ROME/MEMIT 在 Transformer 层整体输出处优化编辑目标,v* 混入了 MHSA 和残差信号。本系统将该优化缩小到 MLP 子模块(down_proj)的输入输出映射上,使 FFN 学到"自己该负责的那部分知识",编辑更精准。

定位 (Causal Trace) → FFN解耦 v* 优化 → K矩阵提取 → 求解ΔW → 应用更新

环境

项目 要求
Python 3.10 ~ 3.12
PyTorch >= 2.0
Transformers >= 4.40
GPU 32GB+ VRAM(模型 float32 ~28GB)
模型 meta-llama/Meta-Llama-3-8B-Instruct

安装

# 依赖
pip install -r requirements.txt

# 模型(国内用 ModelScope)
pip install modelscope
python -c "
from modelscope import snapshot_download
snapshot_download('LLM-Research/Meta-Llama-3-8B-Instruct', local_dir='./models/Llama3-8B')
"

使用

# 单事实编辑
python edit.py single -s "Eiffel Tower" -p "{} is located in" -v "Rome"

# 批量编辑
python edit.py batch -f data/sample_edits.json

# 反事实 Benchmark(fresh 模式,每个 case 独立模型)
python edit.py bench --fresh -o results/benchmark.json

# MMLU 基线
python edit.py mmlu --baseline -o results/mmlu_baseline.json

# MMLU 编辑后评估
python edit.py mmlu --eval -o results/mmlu_edited.json

项目结构

├── edit.py                    # CLI(4 子命令)
├── config.yaml                # 模型路径 + 超参
├── requirements.txt
├── src/
│   ├── editor.py              # PmetEditor 主类
│   ├── causal_trace.py        # 因果追踪层定位
│   ├── compute_z.py           # PMET v* 优化(FFN 解耦)
│   ├── compute_k.py           # K 矩阵提取
│   ├── nethook.py             # 网络钩子工具
│   ├── nullspace.py           # P 矩阵计算(消融用)
│   ├── benchmark.py           # 反事实 Benchmark(15 用例)
│   ├── mmlu.py                # MMLU-90
│   └── report.py              # 数据类
├── data/
│   ├── cases.json             # 15 测试用例
│   └── sample_edits.json
├── scripts/
│   ├── seq_test.py            # 顺序编辑稳定性测试
│   ├── clamp_test.py          # Clamp 消融测试
│   └── make_figures.py        # 图表生成
├── results/                   # 实验数据
├── report/
│   ├── 实验报告.md             # 完整中文报告
│   ├── PPT制作指南.md
│   └── figures/               # 5 张图表
└── tests/

主要实验结论

指标 结果
地理类编辑成功率 3/3 = 100%
人物类特异性 6/6 = 100%
MMLU 通用能力漂移 0.000
顺序编辑上限 4 次(ROME 的 2-3 倍)
P 矩阵消融 加了 P 总分从 42% → 27%(反面有益)

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages