mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 13:26:48 +00:00
* fix(learning): exclude padding tokens from SFT loss * test(learning): add regression tests for SFT padding-loss masking Cover the fix in both trainers (#521): - OrchestratorSFTDataset.__getitem__: labels are -100 at padded positions, equal to input_ids elsewhere, and input_ids is not mutated. - LoRATrainer._train_step: the labels passed to the model are masked at padded positions (captured via an injected model), with input_ids intact. Both are torch-gated (pytest.importorskip / skipif HAS_TORCH), matching the project's existing torch test gating, so they skip cleanly in the default CI env. Verified locally with CPU torch: both PASS against the fix and FAIL against the pre-fix code. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Jon Saad-Falcon <jonsaadfalcon@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>