fix: use sum reduction for DPO sequence logprob

- DPO requires sequence-level sum of token logprobs, not per-token mean
- mean reduction made beta*ratio_diff ~0.03 (near-zero gradient)
- loss stalled at 0.6931 because logsigmoid(0.03) has vanishing grad
- sum gives beta*ratio_diff ~10 with meaningful gradients
This commit is contained in:
2026-07-18 23:48:35 +08:00
parent 7e1e5b6e6a
commit f433672140
+1 -1
View File
@@ -225,7 +225,7 @@ class DPOStrategy(BaseStrategy):
device: str,
ref_model: nn.Module,
beta: float = 0.1,
reduction: str = "mean",
reduction: str = "sum",
**kwargs,
):
super().__init__(model, device, **kwargs)