tfsft
Teacher-forcing SFT method (TFSFT; algorithm layer).
fastvideo.train.methods.fine_tuning.tfsft.DiffusionForcingSFTMethod
DiffusionForcingSFTMethod(*, cfg: Any, role_models: dict[str, ModelBase])
Diffusion-forcing SFT (DFSFT): train only student
with inhomogeneous timesteps.
fastvideo.train.methods.fine_tuning.tfsft.DiffusionForcingSFTMethod.single_train_step
single_train_step(batch: dict[str, Any], iteration: int) -> tuple[dict[str, torch.Tensor], dict[str, Any], dict[str, LogScalar]]
fastvideo.train.methods.fine_tuning.tfsft.DiffusionForcingSFTMethod.backward
backward(loss_map: dict[str, torch.Tensor], outputs: dict[str, Any], *, grad_accum_rounds: int = 1) -> None
fastvideo.train.methods.fine_tuning.tfsft.DiffusionForcingSFTMethod.get_optimizers
get_optimizers(iteration: int) -> list[torch.optim.Optimizer]
fastvideo.train.methods.fine_tuning.tfsft.DiffusionForcingSFTMethod.get_lr_schedulers
get_lr_schedulers(iteration: int) -> list[Any]
fastvideo.train.methods.fine_tuning.tfsft.TeacherForcingSFTMethod
TeacherForcingSFTMethod(*, cfg: Any, role_models: dict[str, ModelBase])
Source
class TeacherForcingSFTMethod(DiffusionForcingSFTMethod):
def _predict_noise(
self,
noisy_latents: torch.Tensor,
timestep: torch.Tensor,
training_batch: Any,
clean_latents: torch.Tensor,
) -> torch.Tensor:
return self.student.predict_noise(
noisy_latents,
timestep,
training_batch,
conditional=True,
attn_kind=self._attn_kind,
clean_x=clean_latents,
)</code></pre></details>