Знаете, где ещё забыли не считать лосс по pad-токенам? В TRL!

https://github.com/huggingface/trl/blob/main/trl/trainer/orpo_trainer.py#L718



Вам может показаться, что есть же [:len_chosen], но это количество положительных примеров в батче, а не длина самих последовательностей 😡



По идее должен помогать -100 в labels... Но тут их просто копируют из input_ids строчкой выше!



И всё это внесли в результате другого исправления: https://github.com/huggingface/trl/commit/57aebe9c36021e679662181468b04ff42432daf3



Пойду писать PR...



UPD: https://github.com/huggingface/trl/pull/1625