# anurag1734/xrlvr architecture

> Architecture diagram of the GitHub repository anurag1734/xrlvr, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/anurag1734/xrlvr
- Repository: https://github.com/anurag1734/xrlvr

## Overview

X-RLVR is an interpretability study and tooling for comparing a base language model with an RLVR-trained model on text reversal. The main workflow takes prompts, loads both models, computes attention, attribution, saliency and logit-lens results, summarizes metrics, and writes comparison visualizations. The README also documents SFT followed by RL training through PRIME-RL; this repository provides a CLI wrapper and configuration files rather than the trainer implementation. Edges reflect the sampled analysis CLI and documented training handoff; training internals are external.

Main entry points: [`src/xrlvr/cli/analyze.py`](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/cli/analyze.py) (Analysis CLI), [`src/xrlvr/cli/train.py`](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/cli/train.py) (Training CLI), [`src/xrlvr/visualization.py`](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/visualization.py) (Comparison Dashboard), [`configs/sft.toml`](https://github.com/anurag1734/xrlvr/blob/main/configs/sft.toml) (SFT Config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_training["Model Training"]
  node_train_cli["Training CLI<br/>[train.py]"]
  node_sft_config["SFT Config<br/>[sft.toml]"]
  node_rl_config["RL Config<br/>[rl.toml]"]
  node_prime_rl["PRIME-RL Trainer"]
end

subgraph group_inputs["Analysis Inputs"]
  node_analyze_cli["Analysis CLI<br/>[analyze.py]"]
  node_model_hub[("Model Repository")]
  node_model_pair["Base and RL Models"]
  node_prompt_batch["Prompt Batch<br/>[data.py]"]
end

subgraph group_analysis["Interpretability"]
  node_attention["Attention Analysis<br/>[analysis.py]"]
  node_integrated_gradients["Integrated Gradients<br/>[analysis.py]"]
  node_saliency["Gradient Saliency<br/>[analysis.py]"]
  node_logit_lens["Logit Lens<br/>[analysis.py]"]
end

subgraph group_results["Metrics and Results"]
  node_metric_calcs["Metric Calculations<br/>[metrics.py]"]
  node_metric_collector["Metric Summary<br/>[metrics.py]"]
  node_dashboard["Comparison Dashboard<br/>[visualization.py]"]
  node_output_dir[("Analysis Outputs")]
end

node_user(("Researcher"))

node_user -->|"starts training"| node_train_cli
node_train_cli -->|"passes config"| node_sft_config
node_train_cli -->|"passes config"| node_rl_config
node_train_cli -->|"dispatches SFT or RL"| node_prime_rl
node_user -->|"provides prompts and models"| node_analyze_cli
node_analyze_cli -->|"loads model and tokenizer"| node_model_hub
node_model_hub -->|"provides weights"| node_model_pair
node_analyze_cli -->|"prepares prompts"| node_prompt_batch
node_analyze_cli -->|"requests attention"| node_attention
node_analyze_cli -->|"requests attributions"| node_integrated_gradients
node_analyze_cli -->|"requests saliency"| node_saliency
node_analyze_cli -->|"requests layer decoding"| node_logit_lens
node_analyze_cli -->|"computes comparisons"| node_metric_calcs
node_analyze_cli -->|"records metrics"| node_metric_collector
node_analyze_cli -->|"builds dashboard"| node_dashboard
node_dashboard -->|"writes plots"| node_output_dir

click node_train_cli "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/cli/train.py"
click node_sft_config "https://github.com/anurag1734/xrlvr/blob/main/configs/sft.toml"
click node_rl_config "https://github.com/anurag1734/xrlvr/blob/main/configs/rl.toml"
click node_analyze_cli "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/cli/analyze.py"
click node_prompt_batch "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/data.py"
click node_attention "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py"
click node_integrated_gradients "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py"
click node_saliency "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py"
click node_logit_lens "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py"
click node_metric_calcs "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/metrics.py"
click node_metric_collector "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/metrics.py"
click node_dashboard "https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/visualization.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_train_cli,node_sft_config,node_rl_config,node_prime_rl toneBlue
class node_analyze_cli,node_model_hub,node_model_pair,node_prompt_batch toneAmber
class node_attention,node_integrated_gradients,node_saliency,node_logit_lens toneMint
class node_metric_calcs,node_metric_collector,node_dashboard,node_output_dir toneRose
class node_user toneIndigo
```

## Components

### Model Training

- [Training CLI](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/cli/train.py): `src/xrlvr/cli/train.py`
- [SFT Config](https://github.com/anurag1734/xrlvr/blob/main/configs/sft.toml): `configs/sft.toml`
- [RL Config](https://github.com/anurag1734/xrlvr/blob/main/configs/rl.toml): `configs/rl.toml`
- **PRIME-RL Trainer**

### Analysis Inputs

- [Analysis CLI](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/cli/analyze.py): `src/xrlvr/cli/analyze.py`
- **Model Repository**
- **Base and RL Models**
- [Prompt Batch](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/data.py): `src/xrlvr/data.py`

### Interpretability

- [Attention Analysis](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py): `src/xrlvr/analysis.py`
- [Integrated Gradients](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py): `src/xrlvr/analysis.py`
- [Gradient Saliency](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py): `src/xrlvr/analysis.py`
- [Logit Lens](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/analysis.py): `src/xrlvr/analysis.py`

### Metrics and Results

- [Metric Calculations](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/metrics.py): `src/xrlvr/metrics.py`
- [Metric Summary](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/metrics.py): `src/xrlvr/metrics.py`
- [Comparison Dashboard](https://github.com/anurag1734/xrlvr/blob/main/src/xrlvr/visualization.py): `src/xrlvr/visualization.py`
- **Analysis Outputs**

### Other components

- **Researcher**

## Connections

- Researcher → Training CLI: starts training
- Training CLI → SFT Config: passes config
- Training CLI → RL Config: passes config
- Training CLI → PRIME-RL Trainer: dispatches SFT or RL
- Researcher → Analysis CLI: provides prompts and models
- Analysis CLI → Model Repository: loads model and tokenizer
- Model Repository → Base and RL Models: provides weights
- Analysis CLI → Prompt Batch: prepares prompts
- Analysis CLI → Attention Analysis: requests attention
- Analysis CLI → Integrated Gradients: requests attributions
- Analysis CLI → Gradient Saliency: requests saliency
- Analysis CLI → Logit Lens: requests layer decoding
- Analysis CLI → Metric Calculations: computes comparisons
- Analysis CLI → Metric Summary: records metrics
- Analysis CLI → Comparison Dashboard: builds dashboard
- Comparison Dashboard → Analysis Outputs: writes plots
