Evaluation

October 31, 2025 · View on GitHub

In this file, we provide the code for the evaluation of LLaDA-8B-Base, LLaDA-8B-Instruct and LLaDA 1.5.

Benchmarks

For LLaDA-8B-Base, we employ conditional likelihood estimation and conditional generation for evaluation following the widely adopted evaluation process in LLMs. Please refer to Appendix B.6 of our paper for details.

Evaluation Method of LLaDA-8B-BaseMMLUBBHARC-CHellaswagTruthfulQAWinoGrandePIQAGSM8KMathGPQAHumanEvalHumanEval-FIMMBPPCMMLUC-Eval
Evaluation Typepplgenpplpplpplpplpplgengenpplgengengenpplppl

where ppl refers to conditional likelihood estimation and gens refer to conditional generation.

Both LLaDA-8B-Instruct and LLaDA 1.5 are evaluated using only conditional generation.

Open source testing tools

For LLaDA-8B-Base, LLaDA-8B-Instruct, and LLaDA-1.5, we initially conducted evaluations using our internal benchmark suite. Recently, we reproduced our results using two open-source evaluation frameworks, lm-eval and OpenCompass.

Modelppl tasksgen tasks
LLaDA-8B-Baselm-evallm-eval / OpenCompass
LLaDA-8B-Instruct & LLaDA-1.5NoneOpenCompass

Usage

lm-eval

Please refer to eval_llada_lm_eval.sh for the required dependencies and execution commands.

For the ppl tasks of LLaDA-8B-Base, the evaluation results are as follows:

ARC-CHellaswagTruthfulQAWinoGrandeGPQAPIQAMMLUCMMLUC-Eval
w/o CFG45.970.546.174.825.273.665.969.970.5
w/ CFG47.972.546.474.826.174.4

In the Tab.1 of LLaDA paper, we only report results w/o CFG to ensure a fair comparison with autoregressive models.

For the gen tasks of LLaDA-8B-Base, the evaluation result are as follows:

SettingsBBHGSM8KMathHumanEvalMBPP
gen_length = 1024, steps = 1024, block_length = 102449.770.331.435.440.0
gen_length = 512, steps = 512, block_length = 51250.470.830.932.939.2
gen_length = 256, steps = 256, block_length = 25645.070.030.332.940.2

In the Tab.1 of LLaDA paper, we report the results with gen_length = 1024, steps = 1024, block_length = 1024 for simplicity. However, as shown above, the performance across all three settings is consistent.

OpenCompass

Please refer to eval_llada_opencompass.sh for the required dependencies and execution commands.

In addition to lm-eval, we can also employ OpenCompass to evaluate LLaDA-8B-Base. For the gen_length = 256, steps = 256, block_length = 256 setting, the results are as follows:

SettingsBBHGSM8KMathHumanEvalMBPP
lm-eval45.070.030.332.940.2
OpenCompass47.371.930.734.138.8

For LLaDA-8B-Instruct, the evaluation results are as follows. It is worth noting that in the Tab.1 and Tab.2 of LLaDA paper, we report the results with pure diffusion sampling without any autoregressive elements, as this setting yields the best overall performance.

MMLUMMLU-proHellaswagARC-CGSM8KMathGPQAHumanEvalMBPP
gen_length3256351251251264512256
block_length3256351251251264512256
logits_eos_infFalseFalseFalseFalseFalseFalseFalseTrueFalse
confidence_eos_eot_infFalseFalseFalseFalseTrueTrueTrueFalseTrue
Internal toolkit65.537.074.688.569.431.933.349.441.0
OpenCompass65.436.675.389.268.829.632.347.039.6

Please refer to Appendix B.4 of LLaDA paper for the explanation of the sampling setting.

Furthermore, we apply block diffusion sampling (i.e., semi-autoregressive remasking) to mitigate the tendency of LLaDA-8B-Instruct to generate excessive |EOS| tokens, which is caused by the extensive |EOS| padding in the SFT data. This strategy improves performance on the GSM8K and Math benchmarks, while leading to a decrease in accuracy on other benchmarks.

GSM8kMath
gen_length256512
block_length864
logits_eos_infFalseFalse
confidence_eos_eot_infFalseFalse
Internal toolkit78.642.2
OpenCompass78.942.7

The evaluation results of LLaDA 1.5 are as follows:

GSM8KMathGPQAHumanEvalMBPPIFEval
gen_length2561024256512512256
block_length1612816323216
logits_eos_infFalseFalseFalseFalseFalseFalse
confidence_eos_eot_infTrueTrueFalseTrueTrueTrue
Internal toolkit83.842.636.952.442.866.2
OpenCompass83.642.334.851.242.665.2

Note that Arena-Hard, AlignBench, and MT-Bench require access to the OpenAI API for evaluation, and are therefore not included.

Batch generation is also supported in OpenCompass. To enable this feature, update the batch_size and batch_size_ parameters in OpenCompass/examples/xxx.py. Please note that in October 2025, we updated the modeling_llada.py file in Hugging Face to support attention mask inputs. Make sure you are using the latest version of the file to ensure compatibility.

If you want to use a custom model path, edit the model file under opencompass/opencompass/configs/models/dllm/xxx.py and modify the path argument. For example:

models = [
    dict(
        type=LLaDAModel,
        abbr='llada-8b-instruct',
        path='/your/custom/path/to/GSAI-ML/LLaDA-8B-Instruct',  # Change this path
        max_out_len=1024,
        batch_size=1,
        run_cfg=dict(num_gpus=1),
    )
]

Reversal curse

We downloaded a text file containing a large collection of classical Chinese poetic lines from Baidu Wenku. Using regular expressions, we extracted pairs of consecutive poetic lines (i.e., couplets) and stored them in a file named data/poem_data.json.

We provide the evaluation command as follows:

# generate the subsequent line
python eval_reverse.py  --type ftb --eos_inf

# generate the preceding line
python eval_reverse.py  --type btf --eos_inf

Acknowledgments

Thanks lm-eval and OpenCompass for their great work!