Downloads · 30 days
13
25% of all-time downloads
thoughtworks/Nemotron-3.5-30B-A3B-Antislop-FTPO-V2-LoRA
Nemotron-3.5-30B-A3B-Antislop-FTPO-V2-LoRA is a text generation model from thoughtworks. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as other.
The 842 MB LoRA adapter produced by the second Antislop + FTPO run against NVIDIA's Nemotron 3.5 30B-A3B. This repo holds the training delta on its own.
Downloads · 30 days
13
25% of all-time downloads
All-time downloads
53
Public
Repo size
859 MB
Likes
1
Public
Click a slice to open those files.
.safetensors842 MB · 98%
From the Hugging Face model README
The 842 MB LoRA adapter produced by the second Antislop + FTPO run against NVIDIA's Nemotron 3.5 30B-A3B. This repo holds the training delta on its own.
To run the model, use the merged checkpoint instead: thoughtworks/Nemotron-3.5-30B-A3B-Antislop-FTPO-V2. That repo carries the full model card and benchmark tables. This one covers what is specific to the adapter.
V2 differs from V1 in scope rather than method: general-domain prompts instead of creative-writing only, a larger and more varied human baseline, five pipeline iterations instead of two, and punctuation/typography profiling that V1 could not do at all.
| PEFT type | LoRA |
| Target modules | lm_head only |
| Rank (r) | 256 |
| Alpha | 256 |
| Dropout | 0.05 |
| Trainable params | about 842 MB in BF16 |
| Steps / epochs | 434 / 2 |
| Learning rate | 5.45e-05 (auto-scaled) |
| Final train loss | 2.065 |
| Preference pairs | 15,000 (12,000 lexical, 3,000 typography) |
Targeting lm_head alone is inherited from V1 and from the Antislop paper's
lm_head-only precedent on Llama-3.3-70B. FTPO adjusts final-token logits, so the output
projection is where the preference lives, and constraining training to it keeps the rest of
the model's capabilities intact. The same constraint caps achievable suppression, and — see
the merged card — it is also why the typography results are mixed.
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base_id = "nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16"
model = AutoModelForCausalLM.from_pretrained(
base_id, torch_dtype="bfloat16", device_map="auto", trust_remote_code=True
)
model = PeftModel.from_pretrained(model, "thoughtworks/Nemotron-3.5-30B-A3B-Antislop-FTPO-V2-LoRA")
model = model.merge_and_unload()
tok = AutoTokenizer.from_pretrained("thoughtworks/Nemotron-3.5-30B-A3B-Antislop-FTPO-V2-LoRA")
The tokenizer, chat template, and special-token map bundled here are byte-identical to the base model's, included so the adapter is self-sufficient.
Because the adapter targets lm_head only, exactly one tensor changes. You do not need to
load the whole model: read the shard holding lm_head.weight, add (B @ A) * (alpha / r),
and copy or hardlink the rest unchanged. Accumulate the delta in float32 before casting
back — the per-element deltas are around 1e-05 and adding them in bf16 rounds most of them
to zero, silently discarding the fine-tune. A reference implementation is in the
project repo.
Measured with the merged checkpoint on 952 held-out prompts across six domains, Antislop sampler off:
| Metric | Baseline | FTPO V2 |
|---|---|---|
| Banlist suppression (overall) | 0% | 43.21% |
| Banlist suppression (creative slice, n=388) | 0% | 67.78% |
| MMLU (600 q) | 0.7583 | 0.7567 |
| GSM8K (250 q) | 0.9040 | 0.9160 |
| Lexical diversity (index, baseline=100) | 100.00 | 99.98 |
Full tables, per-domain results, and the typography findings are in the merged model card.
The 8,033-pattern banlist (4,342 n-grams + 3,990 slop phrases, plus typography regexes) is measured from this model's own output against a human baseline, not hand-written. It is 1.9x the size of V1's 4,267.
Suppression by domain, sampler off:
| Domain | n | Baseline /100k | V2 /100k | Suppression |
|---|---|---|---|---|
| creative | 388 | 218.13 | 70.29 | 67.78% |
| real_user | 275 | 199.10 | 142.56 | 28.40% |
| instruction_following | 71 | 49.80 | 36.00 | 27.71% |
| factual_qa | 106 | 230.63 | 197.41 | 14.40% |
| explanatory | 82 | 237.60 | 213.54 | 10.13% |
| conversational | 30 | 249.92 | 238.30 | 4.65% |
Carried over from the merged card, because they matter before you use this:
The frozen FTPO reference adapter used during training (ref/) and the optimizer state are
not published here. Both are training-time artifacts with no inference use.
OpenMDW-1.1, matching NVIDIA's public Nemotron 3.5 Lightning releases. The Antislop framework is MIT-licensed.
The method was published at ICLR 2026:
@inproceedings{paech2026antislop,
title = {Antislop: A Comprehensive Framework for Identifying and Eliminating
Repetitive Patterns in Language Models},
author = {Paech, Samuel and Roush, Allen and Goldfeder, Judah and Shwartz-Ziv, Ravid},
booktitle = {The Fourteenth International Conference on Learning Representations},
year = {2026},
url = {https://openreview.net/forum?id=gLcyM1khyp},
eprint = {2510.15061},
archivePrefix = {arXiv},
primaryClass = {cs.CL}
}