Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LSC-PD: LLM Self-Correction Pathology Diagnostics

项目简介

这是一个用于研究大语言模型(LLM)自我修正失败机制的机械可解释性框架。不同于传统的性能基准测试,本平台测量内部状态动态(KV Cache 惯性、Logit 概率和对齐动机)。

科学假设

本项目旨在验证三个核心假设:

  1. 物理层(KV Cache Prison):自我修正失败是因为自回归的 KV Cache 在物理上将模型锚定在错误的推理路径上。

  2. 认知层(Metacognitive Illusion):推理模型(如 DeepSeek-R1)表现出"表演性反思",文本形式的道歉与内部概率翻转不相关。

  3. 社会层(Alignment Tax):RLHF 对齐抑制了修正逻辑错误的动机,转而维护对话流畅性。

硬件要求

  • GPU: 单张 NVIDIA GPU,8GB VRAM(RTX 4060/2060Ti)
  • 量化: 4-bit 量化(bitsandbytes NF4)
  • 批大小: 严格限制为 1

项目结构

lsc_pd/
├── config/                     # 配置管理
│   ├── __init__.py
│   ├── model_config.yaml       # 量化和模型路径
│   └── exp_config.yaml         # 提示词、超参数
├── data/                       # 数据存储
│   ├── raw/                    # GSM8K 原始数据集
│   └── processed/              # 诱导错误的 JSONL 文件
├── logs/                       # 实验输出
│   ├── ablation_results/       # 实验 1 的 JSONL 结果
│   ├── logit_traces/           # 实验 2 的 CSV/NPZ 文件
│   └── execution.log           # 系统日志
├── src/                        # 源代码
│   ├── core/                   # 核心引擎
│   │   ├── loader.py           # 模型加载(4-bit 量化)
│   │   ├── cache_manager.py    # KV Cache 裁剪逻辑
│   │   └── generator.py        # 包装的生成逻辑
│   ├── experiments/            # 实验逻辑
│   │   ├── base_runner.py      # 抽象基类
│   │   ├── exp01_ablation.py   # KV Cache 消融实验
│   │   ├── exp02_logits.py     # Logit Lens 实现
│   │   └── exp03_alignment.py  # Base vs Instruct 实现
│   └── utils/                  # 工具函数
│       ├── data_utils.py       # GSM8K 解析
│       ├── tensor_utils.py     # 张量调试
│       └── visualization.py    # 绘图脚本
├── main.py                     # CLI 入口点
├── requirements.txt            # 依赖定义
└── README.md

安装

# 克隆仓库
cd KV Cache

# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

使用方法

1. 测试模型加载

python main.py --mode test_load

2. 运行实验 1:KV Cache 消融

python main.py --mode exp01 --max_samples 10

3. 运行实验 2:Logit Lens 追踪

python main.py --mode exp02 --max_samples 5

4. 运行实验 3:对齐税

python main.py --mode exp03 --max_samples 10

实验协议

实验 1:KV Cache Ablation

目标:验证移除错误答案 tokens 的 KV Cache 是否能提升自我修正能力。

流程

  1. 错误诱导:给 GSM8K 问题,让模型生成答案
  2. 分支
    • Control(控制):完整上下文 + 完整 KV Cache
    • Blind(盲测):仅问题 + 重新计算 KV Cache
    • Ablation(消融):仅问题 + 裁剪后的 KV Cache(仅包含问题 tokens)
  3. 评估:比较三者的最终答案准确率

实验 2:Logit Lens Tracking

目标:追踪错误推理过程中正确答案 token 的概率变化。

流程

  1. 识别"正确答案 token"(如最终数字)
  2. 强制模型遍历错误答案的路径
  3. 在生成错误答案(以及后续修正尝试)的每一步,捕获正确答案 token 的 logits
  4. 输出:显示真相的"幽灵概率"的时间序列曲线

实验 3:Alignment Tax

目标:比较 Base 模型和 Instruct 模型的自我修正动机。

流程

  1. 加载同一架构的 Base 和 Instruct 版本
  2. 测试两者在相同错误诱导场景下的修正率
  3. 分析 RLHF 对自我修正的抑制作用

核心技术

  • KV Cache Surgery:精确移除特定 tokens 的记忆
  • Logit Lens:实时监控目标答案的 token 概率
  • 4-bit 量化:在 8GB VRAM 上运行 8B 模型
  • 内存管理:显式垃圾回收和 CUDA 缓存清理

许可证

MIT License

作者

LSC-PD Research Team

致谢

本项目基于以下研究:

  • Hugging Face Transformers
  • BitsAndBytes 量化
  • GSM8K 数据集
  • Mechanistic Interpretability 文献

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages