DualOptim+: Bridging Shared and Decoupled Optimizer States for Better Machine Unlearning in Large Language Models
pip install -r requirements.txtscripts/
└── tofu_phi1-5/ # Phi-1.5 model TOFU benchmark
forget_losses: Unlearning loss function combinations (e.g., ME+GD, DPO+GD, IDK+GD, etc.)task_list: Unlearning task ID list (1-10)learning_rates: Learning rate listsplit: Dataset split (forget01/forget05/forget10)num_epochs: Number of training epochsmask: Whether to use masking (true/false)use_LoRA: Whether to use LoRA fine-tuningforget_coeff: Unlearning coefficientregularization_coeff: Regularization coefficient
optim_cfg: Optimizer configuration (adam, dual_adam, dual_adam_plus, etc.)forget_lr: Unlearning learning ratealpha: Weight parameterbeta1,beta2: Adam optimizer parametersbase_beta1,base_beta2: Base model optimizer parameters
max_steps: Maximum training stepsbatch_size: Batch sizegradient_accumulation_steps: Gradient accumulation stepsalternate: Whether to use alternate trainingretain_freq: Retention frequency
save_root: Root directory for saving resultssave_checkpoint: Whether to save checkpointssave_steps: Save steps configurationeval_steps: Evaluation steps configuration
cd scripts/tofu_phi1-5/
bash me_gd_dual.shcd scripts/tofu_phi1-5/
bash baselines.shMain configuration files are located in config/ directory:
phi1-5_tofu.yaml: Phi-1.5 model TOFU configuration
The project includes multiple datasets:
- TOFU dataset: For model unlearning benchmark testing
- Real-world dataset: Practical application scenario data
- Safety alignment data: Model safety training data. Download from https://github.com/vinid/safety-tuned-llamas/tree/main/data and https://huggingface.co/datasets/walledai/XSTest.