A unified framework for evaluating and improving the faithfulness of large-language-model (LLM) reasoning across Natural Language Inference, Question Answering and Student Assessment.
At its core is Drift – a dual-reward probabilistic inference algorithm that couples a task-specific classifier reward with a domain-aware rationale reward to guide decoding, yielding explanations that better reflect model decisions and input evidence.
| Task | Dataset(s) | Labels |
|---|---|---|
| Student Assessment (SA) | ASAP_ (prompts 1,2,5,6) | 0 – 3 |
| Natural Language Inference (NLI) | SNLI, MNLI | entailment / neutral / contradiction |
| Question Answering (QA) | TruthfulQA (MC subset) | multiple choice |
(initial state) → TaskReward → beam expand → RationaleReward → resample … repeat
# Clone repository
$ git clone https://github.com/lijiazheng99/drift.git
$ cd drift
# Install core dependencies
$ pip install -r experiments/requirements.txt
We recommend Python ≥ 3.10 and CUDA-enabled GPUs (tested on A100-40 GB and L40s with 8‑bit quantisation). There are known issues with H100 GPUs.
Run experiments via the helper script:
# NLI with default settings (Llama-3 backbone)
$ ./exps.sh --task nli --exp_num exp_0 --device 0
# TruthfulQA with classifier guidance (exp_3)
$ ./exps.sh --task qa --exp_num exp_3 --device 0
# ASAP prompt 2 with full Drift (exp_5)
$ ./exps.sh --task sa --dataset asap_2 --exp_num exp_5 --device 0
See experiments/faithful_evaluate_<task>.py for all command‑line flags.
data/ (formats in data/README.md).meta-llama/Llama-3-8B-Instruct) and place in models/backbone/.scripts/* to replicate Table 1 & 2 metrics.Tip : Faithfulness scores are normalised per dataset using the min–max ranges in Appendix A.1 of the paper.
Detailed ablations (task‑only vs rationale‑only) are illustrated in Fig. 3 of the paper.
If you use this framework, please cite:
@inproceedings{li2025drift,
title = {Drift: Enhancing LLM Faithfulness in Rationale Generation via Dual-Reward Probabilistic Inference},
author = {Li, Jiazheng and Yan, Hanqi and He, Yulan},
booktitle = {Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics},
year = {2025}
}
Python
98.1%
Shell
1.9%
A unified framework for evaluating and improving the faithfulness of large-language-model (LLM) reasoning across Natural Language Inference, Question Answering and Student Assessment.
At its core is Drift – a dual-reward probabilistic inference algorithm that couples a task-specific classifier reward with a domain-aware rationale reward to guide decoding, yielding explanations that better reflect model decisions and input evidence.
| Task | Dataset(s) | Labels |
|---|---|---|
| Student Assessment (SA) | ASAP_ (prompts 1,2,5,6) | 0 – 3 |
| Natural Language Inference (NLI) | SNLI, MNLI | entailment / neutral / contradiction |
| Question Answering (QA) | TruthfulQA (MC subset) | multiple choice |
(initial state) → TaskReward → beam expand → RationaleReward → resample … repeat
# Clone repository
$ git clone https://github.com/lijiazheng99/drift.git
$ cd drift
# Install core dependencies
$ pip install -r experiments/requirements.txt
We recommend Python ≥ 3.10 and CUDA-enabled GPUs (tested on A100-40 GB and L40s with 8‑bit quantisation). There are known issues with H100 GPUs.
Run experiments via the helper script:
# NLI with default settings (Llama-3 backbone)
$ ./exps.sh --task nli --exp_num exp_0 --device 0
# TruthfulQA with classifier guidance (exp_3)
$ ./exps.sh --task qa --exp_num exp_3 --device 0
# ASAP prompt 2 with full Drift (exp_5)
$ ./exps.sh --task sa --dataset asap_2 --exp_num exp_5 --device 0
See experiments/faithful_evaluate_<task>.py for all command‑line flags.
data/ (formats in data/README.md).meta-llama/Llama-3-8B-Instruct) and place in models/backbone/.scripts/* to replicate Table 1 & 2 metrics.Tip : Faithfulness scores are normalised per dataset using the min–max ranges in Appendix A.1 of the paper.
Detailed ablations (task‑only vs rationale‑only) are illustrated in Fig. 3 of the paper.
If you use this framework, please cite:
@inproceedings{li2025drift,
title = {Drift: Enhancing LLM Faithfulness in Rationale Generation via Dual-Reward Probabilistic Inference},
author = {Li, Jiazheng and Yan, Hanqi and He, Yulan},
booktitle = {Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics},
year = {2025}
}
Python
98.1%
Shell
1.9%