SuperAPI AI 工具集

simpo

智能体与模型

查看项目

更新于 10-16 07:24

技能介绍

用途:SimPO 是一种无参考模型的偏好优化方法,用于对大语言模型进行偏好对齐,据资料称其性能优于 DPO,且无需参考模型,训练更简单。

主要能力:支持从基础模型训练(如 Mistral 7B)或微调指令模型(如 Llama 3 8B);支持 sigmoid 或 hinge 损失;可通过 sft_weight 加入 SFT 正则以保留模型能力;适用于数学、代码等推理密集型任务。

使用方式:需先创建 conda 环境(python=3.10),安装 PyTorch 2.2.2、alignment-handbook 与 Flash Attention 2。训练通过 accelerate 启动,例如: ACCELERATE_LOG_LEVEL=info accelerate launch --config_file accelerate_configs/deepspeed_zero3.yaml scripts/run_simpo.py training_configs/mistral-7b-base-simpo.yaml 关键超参数包括 beta(奖励缩放,2.0-10.0)、gamma_beta_ratio(目标间隔,0-1)、loss_type、sft_weight、learning_rate(3e-7 到 1e-6)。

适用场景:希望比 DPO 更简单训练、拥有偏好数据、需要优于 DPO 的效果、计算资源有限、单节点训练足够时。若需多节点分布式训练可选 OpenRLHF,需多方法统一框架可选 TRL。

限制与常见问题:损失发散时可降低学习率或 beta;模型遗忘能力时加入 SFT 正则;偏好区分不佳时提高 beta 与间隔;显存不足时减小 batch size、增大梯度累积或启用 gradient checkpointing。硬件建议 NVIDIA A100/H100,7B 模型约需 1×A100 40GB(DeepSpeed ZeRO-3),8B 约需 2×A100 40GB,70B 约需 8×A100 80GB,推荐 BF16 混合精度。更多损失函数、超参数与数据集细节见资料中引用的 references 文档。