in dell_ai/models.py [0:0]
def _validate_model_platform_compatibility(client, model_id, platform_id, num_gpus):
"""
Validate that the model and platform combination is valid and the GPU configuration is supported.
Args:
client: The Dell AI client
model_id: The model ID
platform_id: The platform SKU ID
num_gpus: The number of GPUs to use
Raises:
ValidationError: If the platform is not supported or the GPU configuration is invalid
ResourceNotFoundError: If the model is not found
"""
model = get_model(client, model_id)
# Check if the platform is supported
if platform_id not in model.configs_deploy:
supported_platforms = list(model.configs_deploy.keys())
platform_list = ", ".join(supported_platforms)
raise ValidationError(
f"Platform {platform_id} is not supported for model {model_id}. Supported platforms: {platform_list}",
parameter="platform_id",
valid_values=supported_platforms,
)
# Validate the GPU configuration
valid_configs = model.configs_deploy[platform_id]
valid_gpus = {config.num_gpus for config in valid_configs}
if num_gpus not in valid_gpus:
gpu_list = ", ".join(str(g) for g in sorted(valid_gpus))
raise ValidationError(
f"Invalid number of GPUs ({num_gpus}) for model {model_id} on platform {platform_id}. Valid GPU counts: {gpu_list}",
parameter="num_gpus",
valid_values=sorted(valid_gpus),
config_details={
"model_id": model_id,
"platform_id": platform_id,
"valid_configs": valid_configs,
},
)