reFlow / README.md
reuAC's picture
Update README.md
a81a84f verified
---
license: mit
language:
- en
- zh
tags:
- transformer
- interpretability
- mechanistic-interpretability
- language-model
- signal-decomposition
- sparse-representations
- pytorch
datasets:
- openwebtext
pipeline_tag: text-generation
---
# reFlow
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.19160838.svg)](https://doi.org/10.5281/zenodo.19160838)
[ [δΈ­ζ–‡](README_CN.md) | English ]
**A Metal Soul In My Hand** β€” A feature-decoupled Transformer architecture with native interpretability.
reFlow factorizes the embedding matrix $E \in \mathbb{R}^{V \times d}$ into a **Recipe Matrix** $W_{recipe} \in \mathbb{R}^{V \times S}$ and a **Signal Basis Matrix** $W_{basis} \in \mathbb{R}^{S \times d}$, forcing the model to maintain a set of continuous, low-redundancy signal bases in latent space. The same factored product $W_{recipe} \times W_{basis}$ serves as both the input embedding and the output projection, forming an end-to-end signal-manifold computation loop without a separate LM head.
## Online Demo
**Try reFlow in your browser:**
- [HuggingFace Space](https://huggingface.co/spaces/reuAC/reFlow) (Global Access)
- [ModelScope Studio](https://www.modelscope.cn/studios/recuAC/reFlow) (China Access)
## Key Results
**Convergence.** At matched depth and scale (36 layers, ~515M parameters), reFlow-1-Big achieves a validation loss within ~1% of GPT-2-New (514M). Three scale points β€” Small (46.47M), reFlow-1 (463.67M), Big (515.06M) β€” confirm strict scaling law compliance (val loss: 3.55 β†’ 3.01 β†’ 2.92).
**Emergent Interpretable Structure** (pure language modeling objective, no auxiliary loss):
- Recipe-space semantic algebra: king + woman βˆ’ man β†’ queen (rank #1), 3/3 tests passed
- Natural sparsity: each token activates ~11% of signals (mean 117/1024), Gini coefficient 0.085
- Causal traceability: single-signal ablation collapses target probability from 8.31% to 0.03%
- Information crystallization boundary: semantic interventions are effective at L0–L12 but inert beyond L18
- Hard sparsity (Top-64) systematically destroys recipe-space semantic structure (algebra 3/3 β†’ 0/3, silhouette +0.11 β†’ βˆ’0.02)
> **Paper**: [English (PDF)](./paper/paper.pdf) | [δΈ­ζ–‡ (PDF)](./paper/paper-cn.pdf) β€” Theoretical derivation, 12 interpretability experiments, and scaling/ablation analysis.
>
> **Pretrained Weights**: [HuggingFace](https://huggingface.co/reuAC/reFlow)
## Project Structure
```
reFlow/
β”œβ”€β”€ train.py # Training script (single GPU / DDP)
β”œβ”€β”€ sample.py # Text generation from trained models
β”œβ”€β”€ experiment.py # 12-experiment interpretability suite (Chinese)
β”œβ”€β”€ experiment_en.py # 12-experiment interpretability suite (English)
β”œβ”€β”€ check.py # Checkpoint parameter inspector
β”œβ”€β”€ bench.py # Performance benchmarking
β”œβ”€β”€ models/
β”‚ β”œβ”€β”€ gpt2.py # Standard GPT-2 baseline
β”‚ β”œβ”€β”€ gpt2-new.py # Modernized GPT-2 (RoPE + SwiGLU + RMSNorm)
β”‚ β”œβ”€β”€ reflow.py # reFlow base architecture
β”‚ β”œβ”€β”€ reflow-topk.py # reFlow with ReLU + Top-K hard sparsity
β”‚ └── reflow-lite.py # reFlow with GQA + reduced MLP
β”œβ”€β”€ config/ # Training / sampling / eval configurations
β”œβ”€β”€ data/
β”‚ β”œβ”€β”€ openwebtext/ # OpenWebText dataset preparation
β”‚ └── sft-lima/ # LIMA SFT dataset preparation
└── out/ # Checkpoints and experiment reports
```
## Installation
### Prerequisites
- Python 3.10+
- CUDA-compatible GPU (tested on Tesla T4 x4)
### 1. PyTorch (CUDA 12.8)
```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
```
> Adjust the CUDA version in the URL to match your driver. See [PyTorch Get Started](https://pytorch.org/get-started/locally/).
### 2. Core Dependencies
```bash
pip install datasets tiktoken wandb tqdm
```
### 3. Experiment Suite Dependencies
The interpretability experiments (`experiment.py`) require additional packages:
```bash
pip install numpy matplotlib seaborn scikit-learn scipy adjustText
```
### Quick Install (All-in-One)
```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
pip install datasets tiktoken wandb tqdm numpy matplotlib seaborn scikit-learn scipy adjustText
```
## Data Preparation
### OpenWebText
```bash
python data/openwebtext/prepare.py
```
This downloads the OpenWebText corpus (~54 GB) and tokenizes it with the GPT-2 BPE tokenizer. Output: `data/openwebtext/train.bin` (~17 GB, ~9B tokens) and `val.bin`.
## Training
All configurations are in `config/`. No CLI overrides β€” all hyperparameters must be set in the config file.
### Single GPU
```bash
python train.py config/train_reflow_1.py
```
### Multi-GPU (DDP)
```bash
torchrun --standalone --nproc_per_node=4 train.py config/train_reflow_1.py
```
### Available Training Configs
| Config | Architecture | Layers | Params | Notes |
|--------|-------------|--------|--------|-------|
| `train_gpt2.py` | GPT-2 | 36 | 505.62M | Standard baseline |
| `train_gpt2_new.py` | GPT-2-New | 36 | 514.01M | + RoPE, SwiGLU, RMSNorm |
| `train_reflow_1.py` | reFlow | 32 | 463.67M | Base reFlow, constant lr |
| `train_reflow_1_big.py` | reFlow | 36 | 515.06M | lr decay, for interpretability |
| `train_reflow_1_topk_big.py` | reFlow-TopK | 36 | 515.06M | + ReLU + Top-64 sparsity |
| `train_reflow_1_lite.py` | reFlow-Lite | 32 | 413.34M | + GQA, reduced MLP |
| `train_reflow_1_small.py` | reFlow | 6 | 46.47M | Small-scale validation |
### Resume Training
Append `_resume` to the config name (e.g., `train_reflow_1_big_resume.py`).
## Text Generation
```bash
python sample.py config/sample_reflow_1.py
```
Edit the config file to change the prompt, temperature, top-k, etc.
## Interpretability Experiments
The experiment suite runs 12 analyses on a trained reFlow model. Both Chinese and English versions are available:
```bash
python experiment_en.py config/train_reflow_1_big.py # English
python experiment.py config/train_reflow_1_big.py # Chinese
```
An interactive menu will appear:
| # | Experiment | Group |
|---|-----------|-------|
| 1 | Recipe Atlas β€” recipe-space nearest neighbors | A. Signal Identity |
| 2 | Sparsity Profile β€” activation sparsity analysis | A. Signal Identity |
| 3 | Basis Geometry β€” singular value & effective rank | A. Signal Identity |
| 4 | Semantic Galaxy β€” PCA clustering visualization | B. Semantic Properties |
| 5 | Semantic Algebra β€” vector arithmetic (king βˆ’ man + woman = queen) | B. Semantic Properties |
| 6 | Typo Resilience β€” robustness to spelling errors | B. Semantic Properties |
| 7 | Layer Evolution β€” per-layer probability crystallization | C. Mechanistic Analysis |
| 8 | Signal Flow β€” signal activation heatmaps across layers | C. Mechanistic Analysis |
| 9 | Causal Ablation β€” progressive signal knockout curves | C. Mechanistic Analysis |
| 10 | Emotion Surgery β€” sentiment steering via signal injection | D. Control & Steering |
| 11 | Concept Inception β€” binary-search concept implantation | D. Control & Steering |
| 12 | Genetic Hijack β€” global recipe matrix manipulation | D. Control & Steering |
Enter `all` to run all experiments, or specific numbers (e.g., `1 3 5`). Reports are saved to `out/<model>/audit_reports/`.
## Checkpoint Inspection
```bash
python check.py config/train_reflow_1.py out/reflow-1/ckpt.pt
```
## License
MIT License. Based on [nanoGPT](https://github.com/karpathy/nanoGPT) by Andrej Karpathy.