REVIEW 2 major objections 5 minor 8 references
The standard LLM repetition penalty branches on an arbitrary logit zero-point, so the same setting means different things on different models and wrecks structured JSON.
Reviewed by Pith at T0; open to challenge. T0 means a machine referee read the full paper against a public rubric. the ladder, T0–T4 →
T0 review · grok-4.5
2026-07-14 15:39 UTC pith:LI6FPVIX
load-bearing objection A real, widely-shipped defect: the CTRL sign-branch is gauge-dependent, and the paper measures both the flip rates and the structured-output collapse cleanly. the 2 major comments →
Gauge dependence and structured-output corruption in sign-branched repetition penalties: measurements across models, inference stacks, and alternative repetition controls
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
The multiplicative CTRL-style repetition penalty is not well-defined under the gauge freedom of the softmax: its sign-branch reads an arbitrary logit zero-point that training does not constrain, so identical settings produce different operations on different models and different gauges of the same model, and at routine strength the operator systematically corrupts grammar-required tokens in structured output.
What carries the argument
The sign-branched map of Eq. (1) that divides positive raw logits by theta and multiplies negative ones, whose kink sits at the unconstrained zero-point; the paper's gauge-flip probe (identical distributions under c = +5 versus c = -5) and the closed-form delimiter-flip condition make the consequences measurable.
Load-bearing premise
That the large flip rates and JSON-validity drops measured under greedy decoding on models up to 7B remain representative of how the same operator behaves under the sampling regimes and larger models actually used in production.
What would settle it
Re-run the c = +5 versus c = -5 gauge probe and the 200-schema JSON validity test at theta = 1.3 on a production-scale model with nucleus or temperature sampling; if flip rates collapse near zero and validity stays near the unpenalized baseline, the claimed consequences do not hold under realistic decoding.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper shows that the multiplicative CTRL-style repetition penalty used across major LLM inference stacks (HuggingFace, vLLM, llama.cpp, and others) is gauge-dependent: it branches on the sign of raw logits (Eq. 1), but softmax is invariant under uniform logit shifts, so the zero-point is unconstrained by training. Two consequences are measured. (A1) Re-centring logits by a constant that is a no-op at θ=1 flips 58–96% of greedy tokens at θ=1.3 across five models ≤7B (WikiText-103 prefixes), while subtractive and normalized controls flip none; real checkpoints also sit at widely different zero-points (Table 1). (A2) On 200 JSONSchemaBench schemas the same θ=1.3 drops schema-valid output from 97% to 23%; a closed-form flip condition (Eq. 2) predicts delimiter flips with balanced accuracy 0.999 on HumanEval. Both effects replicate inside vLLM and llama.cpp. Applying the penalty to log-softmax instead removes both effects (Table 4); HuggingFace already ships the needed operator but applies it after the penalty by default.
Significance. If the results hold, the paper documents a load-bearing defect in a default operator shipped across essentially the entire open inference ecosystem, with direct consequences for structured generation. Strengths that raise confidence include: (i) the mechanism follows from the elementary identity softmax(z+c)=softmax(z) with no fitted parameters; (ii) the gauge-flip experiment is cleanly controlled (identical distributions at θ=1, zero flips for subtractive and normalized penalties, 40k positions); (iii) Eq. (2) is a falsifiable closed-form prediction validated at high accuracy; (iv) both effects are replicated through three independent samplers on the same inputs; (v) a repository with pre-registered decision rules and raw outputs is provided. The normalized fix is constructive and already present (mis-ordered) in HuggingFace. These are the kinds of measurements the community can act on immediately.
major comments (2)
- Section 6 and Tables 2–4: all quantitative rates (gauge flip 58–96%, JSON validity 97%→23%) are measured under greedy decoding on models ≤7B. The mechanism itself (sign-branch on an unconstrained coordinate) is sampling- and scale-independent, so the qualitative claim that the operator is ill-defined stands. However, the practical claim that a fixed repetition_penalty is a different operation on every model in production use rests on rates that may change under temperature sampling. Either a short temperature-sampling check on one model, or an explicit statement that the reported percentages are greedy-specific and that only the qualitative gauge dependence is claimed for production regimes, is needed so readers do not over-read the numbers.
- Section 3, Eq. (2) and the HumanEval audit: the closed-form flip condition and the 0.999 balanced accuracy apply only to positions where the top token is on the divide branch and the runner-up is unpenalized (48,919 of the generated positions). The end-to-end JSON drop (97%→23%) aggregates all positions. The manuscript should state what fraction of grammar-obligatory delimiter positions fall outside that regime (both tokens penalized, or top on the multiply branch) and whether those residual positions contribute materially to the validity collapse, so the link from Eq. (2) to Table 4 is fully transparent.
minor comments (5)
- Figure 1 caption and surrounding text: the phrase “adding c slides the same token across the kink” is clear once the figure is studied, but a one-sentence reminder that c is added to every logit (not only the seen token) would prevent a common misreading.
- Table 1 note on gpt2’s bimodal logits is important; consider moving a short version into the main text of Section 2 so readers who skip the table note still understand why a large negative median coexists with a non-zero divide fraction.
- Section 5: the statement that a given θ is “gentler” on log-probabilities is correct but qualitative. A single sentence giving the typical scale of raw logits vs. log-probs (or a recommended re-tuning range) would help practitioners who want to adopt the normalized form.
- Section 4 / Table 3: the survey of twelve further engines is classified “by form, not probed.” That is fine, but a footnote listing the exact source files or commit hashes used for the classification would make the survey reproducible without digging through the repository.
- References [7] and [8] document prior awareness of the kink and the original negative-logit bug. A single sentence in the conclusion noting that neither prior report measured gauge dependence or structured-output corruption would more cleanly locate the contribution.
Circularity Check
No significant circularity; claims rest on elementary softmax invariance plus direct measurements on external benchmarks with gauge-invariant controls.
full rationale
The derivation chain begins from the elementary, externally known identity softmax(z+c)=softmax(z) (Section 1) and the shipped CTRL operator (Eq. 1) that branches on the unconstrained sign of raw logits. Both consequences are obtained by direct measurement: A1 flip rates (Table 2) on WikiText-103 prefixes under controlled re-centring, and A2 validity collapse (Table 4) on JSONSchemaBench, each compared against subtractive and normalized controls that remain identically zero under the same gauge shifts. The closed-form delimiter-flip condition (Eq. 2) is an algebraic rearrangement of the operator definition and is verified post-hoc (balanced accuracy 0.999); it is not a fitted parameter re-labeled as a prediction. The normalized variant follows immediately by applying the same multiplicative map to log-softmax, which is shift-invariant by construction. No parameters are fitted to recover the reported numbers, no uniqueness theorem or ansatz is imported via self-citation, and no known empirical pattern is merely renamed. The paper is therefore self-contained against external benchmarks and exhibits no circular reduction.
Axiom & Free-Parameter Ledger
free parameters (2)
- θ (repetition_penalty) =
1.3 (illustrative)
- α (subtractive presence penalty) =
1
axioms (2)
- standard math softmax(z + c) = softmax(z) for any scalar c (gauge freedom of logits)
- domain assumption The multiplicative CTRL operator of Eq. (1) is the form shipped by the surveyed engines
read the original abstract
The multiplicative repetition penalty shipped across the LLM inference ecosystem (HuggingFace, vLLM, llama$.$cpp, and a dozen further engines) branches on the sign of each raw logit (divide positives by theta, multiply negatives). But the softmax is unchanged by adding a constant to every logit, so a model's logit zero-point is arbitrary, and the sign-branch reads that arbitrary point. The sign-branch is itself the accepted fix for an earlier bug, so the accepted fix branches on a quantity the training objective leaves unconstrained. Two measurable consequences follow. (1) The penalty is not well-defined: re-centring a model's logits by a constant is a provable no-op at theta=1, yet at a routine theta=1.3 it changes 58-96% of greedy tokens, where subtractive and normalized penalties change none; real checkpoints sit at widely different zero-points, so a fixed repetition_penalty is a different operation on every model. (2) It corrupts structured output: on 200 real-world JSON schemas, theta=1.3 drops the rate of valid, schema-conformant output from 97% to 23%. In our measurements, applying the penalty to normalized log-probabilities instead of raw logits removes both effects. HuggingFace already ships that operator (LogitNormalization); today it is off by default and applied after the penalty. This note gives the mechanism, the measurements (five models up to 7B, base and RLHF, on WikiText-103 prefixes; two code models on HumanEval and JSONSchemaBench; both effects replicated inside vLLM and llama$.$cpp through their own samplers on the same inputs), and the normalized variant.
Figures
Reference graph
Works this paper leans on
-
[1]
Evaluating large language models trained on code.arXiv preprint arXiv:2107.03374, 2021
Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Ponde de Oliveira Pinto, Jared Kaplan, et al. Evaluating large language models trained on code.arXiv preprint arXiv:2107.03374, 2021. HumanEval
Pith/arXiv arXiv 2021
-
[2]
Saibo Geng, Hudson Cooper, Michał Moskal, Samuel Jenkins, Julian Berman, Nathan Ranchin, Robert West, Eric Horvitz, and Harsha Nori. Jsonschemabench: A rigorous benchmark of structured outputs for language models.arXiv preprint arXiv:2501.10868, 2025.https:// github.com/guidance-ai/jsonschemabench
Pith/arXiv arXiv 2025
-
[3]
Ginart, Naveen Kodali, Jason Lee, Caiming Xiong, Silvio Savarese, and John R
Antonio A. Ginart, Naveen Kodali, Jason Lee, Caiming Xiong, Silvio Savarese, and John R. Emmons. LZ penalty: An information-theoretic repetition penalty for autoregressive language models.arXiv preprint arXiv:2504.20131, 2025. 7
Pith/arXiv arXiv 2025
-
[4]
Varshney, Caiming Xiong, and Richard Socher
Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, Caiming Xiong, and Richard Socher. CTRL: A conditional transformer language model for controllable generation.arXiv preprint arXiv:1909.05858, 2019
Pith/arXiv arXiv 1909
-
[5]
Pointer sentinel mixture models
Stephen Merity, Caiming Xiong, James Bradbury, and Richard Socher. Pointer sentinel mixture models. InInternational Conference on Learning Representations (ICLR), 2017. WikiText-103. arXiv:1609.07843
Pith/arXiv arXiv 2017
-
[6]
A con- trastive framework for neural text generation
Yixuan Su, Tian Lan, Yan Wang, Dani Yogatama, Lingpeng Kong, and Nigel Collier. A con- trastive framework for neural text generation. InAdvances in Neural Information Processing Systems (NeurIPS), 2022
2022
-
[7]
Suggested fixes for mathematical inaccuracy inllama_sample_repetition_- penaltyfunction, 2023
tysam-code. Suggested fixes for mathematical inaccuracy inllama_sample_repetition_- penaltyfunction, 2023. llama.cpp issue #2970, September 2023; closed as stale.https: //github.com/ggml-org/llama.cpp/issues/2970
2023
-
[8]
Repetition penalty work falsely in case the logit of the token is negativ
Patrick von Platen. Repetition penalty work falsely in case the logit of the token is negativ. https://github.com/huggingface/transformers/issues/2302, 2019. HuggingFace Trans- formers issue #2302 (December 2019), reporting that dividing a negative logit by a penalty >1raises its probability; fixed by the author in PR #2303 with the sign-branched divide/m...
2019
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.