Open source · Apache-2.0
Find the data that
broke your finetune.
Gradian is training-data attribution for LoRA fine-tuned LLMs. It scores every training example against the capability you lost, then audits the dataset and config for what the math misses.
How it works
Three lanes. One report.
The actual culprit.
- 01
Evaluate
Measure what actually regressed, and refuse to attribute noise.
- 02
Attribute
Rank the training examples that pushed the capability down.
- 03
Audit
Catch the dataset and config faults influence math can't see.
Diagnostics
Not every failure
is a data problem.
41 deterministic checks over your dataset, your hyperparameters, and your trainer logs. No GPU, seconds to run.
data 16 · config 17 · dynamics 8 ■ 3 fired on the example run
data.completion_truncated
Completions cut off by max_seq_length, so the model never sees an ending.
34/40 in cluster 7 · fix max_seq_length 512 → 1024
The verdict
Not a score.
A row to fix.
Every run ends in one report you can act on. It names the cluster, the mechanical cause, and the exact change to make before you retrain.
$ gradian attribute --capability json_formatting …
json_formatting 0.910 → 0.640 (−0.270, 95% CI [−0.39, −0.15])
54 items flipped right → wrong
cluster 7 · invoice, total, currency
└─ 62% of the negative influence
└─ 34/40 examples have truncated completions
fix max_seq_length 512 → 1024, then retrain
Questions
The parts people
ask about first.
If something here is still unclear, the documentation goes deeper, and the source is the final answer.
For the longer questions, such as why a fine-tune regressed or how to find the examples responsible, each one has its own page citing the run it rests on.
What does Gradian actually do?
It ranks your training examples by how much each one hurt a capability your fine-tune lost, then groups them into clusters so you get a short list to inspect instead of thousands of rows. Every run ends in one report that names the cluster, the mechanical cause, and the change to make before you retrain.
How does it decide which examples are to blame?
It uses influence functions over the gradients of your LoRA adapter. The default engine is DataInf, which approximates the inverse curvature in closed form, so no matrix ever has to be inverted directly. Where the model produced a wrong answer, the query is contrastive, meaning it compares the answer you wanted against the answer the model actually gave.
How do I know the result is not noise?
There are two guards. A capability change has to clear a bootstrap significance gate, using 2000 resamples and a 95% confidence interval, before Gradian will treat it as a diagnosis at all. Then a second, curvature free engine scores the same run, and the report tells you how closely the two rankings agree.
What if the problem is my config, not my data?
That is what the audit is for. Gradian runs deterministic checks across your dataset, your hyperparameters, and your training dynamics. It catches things like completions truncated by max_seq_length, loss masks that cover the prompt, eval items that leaked into training, a learning rate set too high, and loss spikes mid run. The audit needs no GPU and finishes in seconds, so it is worth running before any attribution.
Does it work with my training stack?
The core is trainer agnostic. It reads a normalized run artifact, so fine-tunes from trl, unsloth, axolotl, or your own script all work the same way. Attribution needs a PEFT LoRA adapter on the linear layers of a HuggingFace causal model.
Does my data leave my machine?
No. Gradian runs where your weights and data already live, and it collects no telemetry. The only outbound traffic is HuggingFace fetching base model or tokenizer files you have not cached yet.
What hardware do I need?
The audit runs on CPU. For attribution, a single 24GB card handles a 1B model in roughly 20 to 30 minutes, and an 80GB card handles an 8B model in one to two hours. The gradient index is content addressed and cached, so asking new questions about a run you already indexed is cheap.
Product updates
Follow along as it ships.
Occasional notes on new attribution engines, diagnostics, and verified results. No launch spam.