Configuration Parsing Warning:In adapter_config.json: "peft.task_type" must be a string

Nemotron-3.5-30B-A3B-Antislop-FTPO-V2, LoRA adapter

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.

Configuration

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.

Usage

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.

Merging without 66 GB of RAM

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.

Headline result

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.

What the adapter suppresses

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%

Known limitations

Carried over from the merged card, because they matter before you use this:

  • Unspaced em dashes get worse, not better (38.9x human to 52.3x). Features with an exact substitute are learnable; features needing a structural rewrite are not.
  • The banlist contains prompt echoes (character names, code tokens, non-English function words) which understate true suppression.
  • No writing-quality judge was run for V2.

Not included

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.

License

OpenMDW-1.1, matching NVIDIA's public Nemotron 3.5 Lightning releases. The Antislop framework is MIT-licensed.

Citation

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}
}
Downloads last month
24
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for thoughtworks/Nemotron-3.5-30B-A3B-Antislop-FTPO-V2-LoRA

Adapter
(13)
this model

Paper for thoughtworks/Nemotron-3.5-30B-A3B-Antislop-FTPO-V2-LoRA