train_sft used to torch.save only after the full epoch budget, so Ctrl+C dropped all translation weights. Write _last every --ckpt-every steps and on KeyboardInterrupt; write _best when frozen eval (success, chrF) improves; --resume continues from _last.