def METHOD_NAME(self,
                    optimizer: NativeTorchOptimizer,
                    loader: DataLoader) -> Tuple[NativeTorchOptimizer, DPDataLoader]:
    """DP action before starting training.
    Args:
        optimizer: NativeTorchOptimizer for training
        loader: Data loader for training
    Returns:
        Differential privacy applied Optimizer and data loader
    """
    if self._is_active:
        if not isinstance(optimizer.optimizer, torch.optim.Optimizer):
            raise FedbiomedDPControllerError(
                f"{ErrorNumbers.FB616.value}: "
                f"Optimizer must be an instance of torch.optim.Optimizer, but got {optimizer}"
                "\nDeclearn optimizers are not yet compatible with Differential Privacy"
        )
        if not isinstance(loader, DataLoader):
            raise FedbiomedDPControllerError(
                f"{ErrorNumbers.FB616.value}: "
                "Data loader must be an instance of torch.utils.data.DataLoader"
            )
        try:
            optimizer._model.model, optimizer.optimizer, loader = self._privacy_engine.make_private(
                module=optimizer._model.model,
                optimizer=optimizer.optimizer,
                data_loader=loader,
                noise_multiplier=float(self._dp_args['sigma']),
                max_grad_norm=float(self._dp_args['clip'])
            )
        except Exception as e:
            raise FedbiomedDPControllerError(
                f"{ErrorNumbers.FB616.value}: "
                f"Error while running privacy engine: {e}"
            )
    return optimizer, loader