TL;DR: We analyze cross-objective interference in multi-objective alignment of LLMs and introduce an approach to mitigate it.
Paper on arXiv
scripts/ // callable scripts for data preprocessing
verl/ // source code of models, algorithms, data structures, metrics, etc.
examples/ // bash scripts to run jobs
data/ // pre-processed data used in experiments
We use the Dockerfile to build the environment. For more setup instructions, please refer to the verl environment setup guide
We use Wandb to log experiments, so please log in before running them.
We implemented a total of 8 scalarization algorithms from MOO and MTL, including our CTWA. They are:
- CTWA (ours):
verl/trainer/ppo/ray_trainer_covariance.py - Dynamic Reweighting:
verl/trainer/ppo/ray_trainer_dynamic.py - GradNorm:
verl/trainer/ppo/ray_trainer_gradnorm.py - Lagrangian Primal-Dual Method:
verl/trainer/ppo/ray_trainer_lagrangian.py - MGDA:
verl/trainer/ppo/ray_trainer_mgda.py - Linear:
verl/trainer/ppo/ray_trainer_multiobjective.py - PAMA:
verl/trainer/ppo/ray_trainer_pama.py - Tchebycheff Scalarization:
verl/trainer/ppo/ray_trainer_tchebycheff.py
We provide the bash script of each algorithm in the examples/ directory. Taking an example of training Qwen2.5-1.5B-Base using CTWA:
bash examples/ctwa_trainer/run_covariance_math.sh
If you use our code, please cite the following paper:
@misc{lu2026uncoveringcrossobjectiveinterferencemultiobjective,
title={Uncovering Cross-Objective Interference in Multi-Objective Alignment},
author={Yining Lu and Meng Jiang},
year={2026},
eprint={2602.06869},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2602.06869},
}