Création de spécifications matérielles personnalisées pour le déploiement sur des GPU dédiés
Certains types de modèle de base et certaines configurations matérielles peuvent nécessiter une spécification matérielle personnalisée. Découvrez la configuration requise pour la création d'une spécification matérielle personnalisée.
Remarques générales et limites
- Pour obtenir la liste des spécifications matérielles standard que vous pouvez utiliser pour déployer vos modèles de base personnalisés sur des GPU dédiés, consultez la section « Spécifications matérielles prédéfinies ».
- Vous ne pouvez pas utiliser de spécifications matérielles prédéfinies avec les modèles quantifiés. Pour les modèles quantifiés et dans d'autres cas non standard, utilisez une spécification matérielle personnalisée.
- Lorsque vous créez une spécification matérielle personnalisée, évitez d'utiliser des caractères spéciaux dans le nom de cette spécification. Si vous devez utiliser des caractères spéciaux, utilisez le trait de soulignement (_), le tiret (-), les deux-points (:) ou un espace. Si vous utilisez d'autres caractères spéciaux, la spécification matérielle sera bien créée, mais cela pourrait entraîner des problèmes par la suite.
- Les spécifications matérielles personnalisées ne sont pas vérifiées pour vérifier la conformité avec le matériel installé. Si vous utilisez une spécification matérielle avec des ressources insuffisantes pour votre déploiement, le déploiement échouera avec le message suivant:
Failed to deploy the custom foundation model due to an internal error. The runtime failed to start due to 'insufficient resources'. Retry the operation. Contact IBM support if the problem persists. - Lorsque vous définissez une configuration matérielle personnalisée pour votre modèle, suivez les directives relatives à l'utilisation des ressources pour les modèles de base personnalisés.
Pour des exemples, voir :
Création de spécifications matérielles personnalisées dans un projet
Utilisez l'exemple de code suivant pour créer une spécification matérielle personnalisée pour votre modèle dans un projet:
curl -ik -X POST -H "Authorization: Bearer $TOKEN" "https://<cluster_url>/v2/hardware_specifications?project_id=$project_id" \
-H "Content-Type:application/json" \
--data '{
"name": "custom_hw_spec",
"description": "Custom hardware specification for foundation models",
"nodes": {
"cpu": {
"units": "2"
},
"mem": {
"size": "128Gi"
},
"gpu": {
"num_gpu": 1
}
}
}'
Création d'une spécification matérielle personnalisée dans un espace de déploiement
Utilisez l'exemple de code suivant pour créer une spécification matérielle personnalisée pour votre modèle dans un espace de déploiement:
curl -ik -X POST -H "Authorization: Bearer $TOKEN" "https://<cluster_url>/v2/hardware_specifications?space_id=$space_id"
-H "Content-Type:application/json"
--data '{
"name": "custom_hw_spec",
"description": "Custom hardware specification for foundation models",
"nodes": {
"cpu": {
"units": "2"
},
"mem": {
"size": "128Gi"
},
"gpu": {
"num_gpu": 1
}
}
}'
Création de spécifications matérielles personnalisées pour certains nœuds GPU
Pour créer une configuration matérielle personnalisée pour des nœuds GPU spécifiques, vous pouvez utiliser le node_selector champ et indiquer les paramètres label_name et label_value du nœud GPU que vous souhaitez utiliser. Vous pouvez également créer des étiquettes de nœud personnalisées pour le nœud GPU et indiquer le nom et la valeur de l'étiquette de nœud dans le node_selector champ correspondant lors de la création de la spécification matérielle personnalisée.
Par exemple, si votre cluster dispose de deux GPU NVIDIA A100 portant les étiquettes nvidia.com/gpu.product=NVIDIA-A100-SXM4-80GB et nvidia.com/gpu.product=NVIDIA-A100-80GB-PCIe, et que vous ne fournissez pas de valeurs pour node_selector lors de la création de la spécification matérielle personnalisée, watsonx.ai sélectionne automatiquement l'un des GPU disponibles pour déployer votre modèle de base personnalisé. Si vous souhaitez déployer votre modèle de base personnalisé sur un nœud GPU spécifique, vous devez indiquer les paramètres label_name et label_value dans le node_selector champ lors de la création de la spécification matérielle personnalisée utilisée pour le déploiement du modèle.
L'exemple de code suivant montre comment créer une spécification matérielle personnalisée pour le sélecteur nvidia.com/gpu.product=NVIDIA-A100-SXM4-80GB de nœuds en ajoutant les éléments label_name et label_value dans le node_selector champ :
curl -ik -X POST -H "Authorization: Bearer $TOKEN" "<cluster url>/v2/hardware_specifications? project_id=$project_id" \
-H "Content-Type:application/json" \
--data '{
"name": "custom_hw_spec",
"description": "Custom hardware specification for foundation models",
"nodes": {
"cpu": {
"units": "2"
},
"mem": {
"size": "128Gi"
},
"gpu": {
"num_gpu": 1
},
"node_selector": [
{
"label_name": "nvidia.com/gpu.product",
"label_value": "NVIDIA-A100-SXM4-80GB"
}
]
}
}'