Beyond Model Weights: Sampling-Dependent Fairness in Diffusion Language Models
Organizations: Institute of Science Tokyo · University of Liverpool · Amazon · AIST ·
Abstract
Diffusion language models (DLMs) are emerging as a practical alternative to autoregressive language models (ARLMs), yet their fairness remains largely uncharacterized. DLMs introduce sampling controls with no direct autoregressive counterpart, such as block length and remasking strategy, that directly set their speed--quality operating point. This raises a basic question: does a DLM's measured social bias remain stable across these settings? Across LLaDA, LLaDA-1.5, and Dream on Open-BBQ, we find that all three models exhibit social bias, but both the magnitude of measured bias and the relative ordering of models by bias are highly sensitive to the sampling configuration. This sampling dependence also changes what successful debiasing means. While mitigation strategies established for ARLMs transfer effectively to DLMs and reduce bias without degrading downstream performance, sampling dependence persists even after mitigation. Our results show that fairness in DLMs cannot be characterized independently of the sampling configuration, even after debiasing. Project page is available at https://pakapaka333.github.io/Beyond-Model-Weights/.
Figures & tables
| SFT | dOPSD | |||||||||
| Category | Base | — | log-ratio | JS div. | var. | — | log-ratio | JS div. | var. | |
| Age | 314 | .465 | .118 | .145 | .003 | .016 | .301 | .232 | .062 | .182 |
| Physical appearance | 134 | .366 | .030 | .030 | .000 | .008 | .261 | .358 | .082 | .172 |
| SES | 586 | .361 | .012 | .004 | .000 | .000 | .165 | .156 | .010 | .056 |
| Disability status | 134 | .261 | .082 | .022 | .000 | .000 | .187 | .190 | .046 | .093 |
| Religion | 102 | .157 | .108 | .049 | .010 | .000 | .147 | .098 | .020 | .059 |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | LLaDA-8B / LLaDA-1.5 | Dream-7B |
|---|---|---|
| generation window | 256 tokens | 256 tokens |
| denoising steps | 256 (before TPS) | 256 (before TPS) |
| temperature | 0 (greedy) | 0.1 |
| top- | — | 0.9 |
| batch size per GPU | 8 | 8 |
| Benchmark | Items | Wall time |
|---|---|---|
| Open-BBQ, base model | 10,000 | 127 min |
| Open-BBQ, with adapter | 10,000 | 155–157 min |
| MMLU, IFEval and GSM8K, base model | 15,902 | 101 min |
| MMLU, with adapter | 14,042 | 126–128 min |
| IFEval, with adapter | 541 | 9 min |
| GSM8K, with adapter | 1,319 | 21–22 min |
| Category | Samples | Category | Samples |
| age | 628 | race gender | 2,728 |
| disability status | 268 | race SES | 1,908 |
| gender identity | 972 | religion | 204 |
| nationality | 528 | SES | 1,172 |
| physical appearance | 268 | sexual orientation | 148 |
| race/ethnicity | 1,176 | total | 10,000 |
| ID | Instruction | Tokens | Box failure rate |
|---|---|---|---|
| P1 | Put the number of your answer in \boxed{}. | 31 | |
| P2 | Finish with \boxed{N} -- just the option number, nothing after it. | 36 | |
| P3 | Reason briefly, then finish with \boxed{N} -- the option number, not its text. Nothing after it. | 43 | |
| P4 | At the very end of your response, give your final answer as the number of the option you choose, inside \boxed{}, for example \boxed{<number>}. Write nothing after it. | 59 | |
| P5 | Finish your answer with a line in exactly this form: \boxed{N} / N is the number of the option you chose. Put only that digit inside the braces, not the option text, and write nothing after that line. | 66 | |
| P6 | Give your chain of thought first, then finish your answer with a line in exactly this form: \boxed{N} / N is the number of the option you chose. Put only that digit inside the braces, not the option text, and write nothing after that line. Adopted | 74 |
| Objective | Wall time |
|---|---|
| SFT | 5 min |
| dOPSD | 951 min |
| dOPSD with a fairness term | 956 min |
| Setting | Value | Source |
| adapter | LoRA, , , no dropout | Dat et al. (2026) |
| LoRA targets | q, k, v, up (LLaDA); all (Dream-7B) | Dat et al. (2026) |
| learning rate | , linear decay to 0, no warm-up | sweep |
| training length | 938 steps ( epochs of 10k samples) | Dat et al. (2026) |
| effective batch size | 32 ( per GPU 8 GPUs) | Dat et al. (2026) |
| seed | 1234 | — |
| Category | groups | terms | Category | groups | terms |
|---|---|---|---|---|---|
| Age | 13 | 39 | Race gender | 28 | 342 |
| Disability status | 9 | 36 | Race SES | 21 | 193 |
| Gender identity | 21 | 263 | Religion | 10 | 39 |
| Nationality | 13 | 223 | SES | 12 | 57 |
| Physical appearance | 12 | 55 | Sexual orientation | 7 | 23 |
| Race/ethnicity | 13 | 132 |
| Category | example terms | |
|---|---|---|
| Age | 3 | old , young , healthy |
| 5 | infant , boyfriend , toddler , teenager , teenage | |
| Disability status | 4 | healthy , normal , smart , slow |
| 5 | dumb , diabetic , lame , autistic , handicapped | |
| Gender identity | 3 | he , she , him |
| 9 | John , Jesus , David , Paul , James , Michael , Mark , George , Mary |
| ambiguous | disamb. | lexicon | ||||
| groups | pair filter | acc | bias | acc | skew | mass |
| Base | — | .703 | .123 | .942 | .886 | 1.13 |
| dOPSD, no term | — | .771 † | .072 † | .937 | .888 | 1.52 |
| option pair only | — | .759 † | .062 † | .932 ‡ | .864 | 1.42 |
| source groups | auto | .869 † | .047 † | .936 | — | — |
| source groups | manual | .859 † | .052 † | .939 | — | — |
| ambiguous | disamb. | ||||
| Objective | fairness term | acc | bias | acc | |
| Base | — | — | .703 | .123 | .942 |
| SFT | — | — | .965 † | .015 † | .965 † |
| JS div. | 10 | .986 † | .007 † | .986 † | |
| JS div. | 30 | .999 † | .000 † | .990 † | |
| log-prob. var. | 1 | .998 † | .001 † | .991 † | |
| SFT | dOPSD | |||||||||
| Category | Base | — | log-ratio | JS div. | var. | — | log-ratio | JS div. | var. | |
| LLaDA-1.5 | ||||||||||
| Age | 314 | .446 | .134 | .121 | .022 | .140 | .350 | .247 | .040 | .198 |
| Physical appearance | 134 | .388 | .045 | .022 | .000 | .060 | .267 | .276 | .066 | .119 |
| SES | 586 | .326 | .019 | .014 | .000 | .037 | .209 | .148 | .024 | .068 |
| Disability status | 134 | .254 | .075 | .060 | .000 | .015 | .194 | .218 | .043 | .060 |
| SFT | dOPSD | |||||||||
| Category | Base | — | log-ratio | JS div. | var. | — | log-ratio | JS div. | var. | |
| LLaDA-8B | ||||||||||
| Age | 314 | .013 | .003 | .006 | .048 | .010 | .013 | .010 | .026 | .007 |
| Physical appearance | 134 | .134 | .104 | .149 | .173 | .158 | .105 | .076 | .105 | .098 |
| SES | 586 | .040 | .032 | .010 | .034 | .038 | .051 | .045 | .040 | .049 |
| Disability status | 134 | .084 | .015 | .000 | .045 | .030 | .030 | .023 | .015 | .098 |
| Method | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 4 | 8 | 1 | 2 | 4 | 8 | 1 | 2 | 4 | 8 | |
| Disambiguated bias score, low-confidence remasking | ||||||||||||
| Base | .008 | .010 | .018 | .009 | .010 | .010 | .011 | .018 | .013 | .009 | .014 | .005 |
| SFT | .011 | .007 | .014 | .006 | .006 | .001 | .009 | .011 | .006 | .000 | .005 | .016 |
| dOPSD | .012 | .012 | .017 | .007 | .016 | .014 | .012 | .013 | .013 | .003 | .002 | .002 |
| dOPSD+log-prob. var. | .014 | .014 | .014 | .000 | .004 | .014 | .006 | .001 | .012 | .006 | .007 | .010 |
| Method | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 4 | 8 | 1 | 2 | 4 | 8 | 1 | 2 | 4 | 8 | |
| Disambiguated bias score, low-confidence remasking | ||||||||||||
| Base | .015 | .003 | .007 | .004 | .013 | .008 | .019 | .017 | .015 | .006 | .018 | .013 |
| SFT | .015 | .009 | .010 | .011 | .017 | .006 | .011 | .010 | .006 | .016 | .007 | .003 |
| dOPSD | .015 | .017 | .016 | .006 | .010 | .009 | .015 | .010 | .015 | .011 | .003 | .006 |
| dOPSD+log-prob. var. | .015 | .013 | .010 | .021 | .013 | .014 | .003 | .015 | .011 | .011 | .019 | .004 |
| Method | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 4 | 8 | 1 | 2 | 4 | 8 | 1 | 2 | 4 | 8 | |
| Disambiguated bias score, low-entropy remasking | ||||||||||||
| Base | .018 | .008 | .005 | .108 | .018 | .008 | .021 | .088 | .017 | .012 | .034 | .067 |
| SFT | .007 | .006 | .009 | .050 | .007 | .005 | .011 | .043 | .009 | .003 | .053 | .041 |
| dOPSD | .007 | .007 | .017 | .545 | .002 | .022 | .039 | .444 | .019 | .017 | .058 | .000 |
| dOPSD+log-prob. var. | .015 | .011 | .011 | .000 | .012 | .004 | .032 | .333 | .011 | .029 | .021 | .000 |
| Open-BBQ bias score | Accuracy | ||||
|---|---|---|---|---|---|
| Method | ambiguous | disambiguated | GSM8K | IFEval | MMLU |
| LLaDA-8B | |||||
| Base | .123 | .010 | .754 | .619 | .522 |
| SFT | .015 | .007 | .751 | .621 | .602 † |
| SFT+log-ratio | .017 | .014 | .751 | .631 | .576 † |
| SFT+JS div. | .000 | .004 | .756 | .628 | .576 † |
Social Bias in Language Models
Social bias in language models is the study and mitigation of unfair stereotypes and disparities in generated text, judgments, and decisions.
See all 199 papers