ORPO loss for one preference batch (B>=1). Runs the chosen + rejected policy
forwards (adapter active), reduces via orpoLossFromLogps. No
reference forward. sftScope selects the L_NLL scope: "response" (default —
bit-exact to the pre-sft_scope code path) or "full" (paper/TRL-faithful:
the chosen NLL covers prompt+response, computed from the SAME chosen forward
— no third forward; the rejected branch is untouched). Returns a scalar
MlxArray (caller owns).
ORPO loss for one preference batch (B>=1). Runs the chosen + rejected policy forwards (adapter active), reduces via orpoLossFromLogps. No reference forward.
sftScopeselects the L_NLL scope: "response" (default — bit-exact to the pre-sft_scope code path) or "full" (paper/TRL-faithful: the chosen NLL covers prompt+response, computed from the SAME chosen forward — no third forward; the rejected branch is untouched). Returns a scalar MlxArray (caller owns).