in method_comparison/MetaMathQA/utils.py [0:0]
def __post_init__(self) -> None:
if not isinstance(self.model_id, str):
raise ValueError(f"Invalid model_id: {self.model_id}")
if self.dtype not in ["float32", "float16", "bfloat16", "int8", "int4"]:
raise ValueError(f"Invalid dtype: {self.dtype}")
if self.max_seq_length < 0:
raise ValueError(f"Invalid max_seq_length: {self.max_seq_length}")
if self.batch_size <= 0:
raise ValueError(f"Invalid batch_size: {self.batch_size}")
if self.batch_size_eval <= 0:
raise ValueError(f"Invalid eval batch_size: {self.batch_size_eval}")
if self.max_steps <= 0:
raise ValueError(f"Invalid max_steps: {self.max_steps}")
if self.eval_steps <= 0:
raise ValueError(f"Invalid eval_steps: {self.eval_steps}")
if self.eval_steps > self.max_steps:
raise ValueError(f"Invalid eval_steps: {self.eval_steps} > max_steps: {self.max_steps}")
if self.grad_norm_clip < 0:
raise ValueError(f"Invalid grad_norm_clip: {self.grad_norm_clip}")
if self.optimizer_type not in ["lora+", "lora-fa"] and not hasattr(torch.optim, self.optimizer_type):
raise ValueError(f"Invalid optimizer_type: {self.optimizer_type}")
if self.lr_scheduler not in [None, "cosine"]:
raise ValueError(f"Invalid lr_scheduler: {self.lr_scheduler}, must be None or 'cosine'")
if "{query}" not in self.query_template:
raise ValueError("Invalid query_template, must contain '{query}'")