def before_model_validations()

in src/hyperpod_nemo_adapter/conf/config_schemas.py [0:0]


    def before_model_validations(cls, data: Any) -> Any:

        if data.get("max_position_embeddings") is None:
            data["max_position_embeddings"] = data.get("max_context_width")

        model_data_config = data.get("data", None)
        multi_modal = data.get("multi_modal")
        if multi_modal and not can_use_multimodal():
            raise ValueError("'multi_modal' requires transformers version of at least 4.45.2")

        if multi_modal and not data.get("model_type") in ["llama_v3", "llama_v4"]:
            raise ValueError("'multi_modal' only supported with 'model_type' llama_v3 and llama_v4")

        if model_data_config and not model_data_config.get("use_synthetic_data", None):
            if not model_data_config.get("train_dir", None) and not multi_modal:
                raise ValueError("'train_dir' is required since model is not using Synthetic or multi-modal Data")

        if model_data_config and model_data_config.get("use_synthetic_data", None) and multi_modal:
            raise ValueError("'use_synthetic_data' not supported with 'multi_modal' training")

        return data