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.

Considérations générales et limites

  • Pour obtenir une liste des spécifications matérielles standard que vous pouvez utiliser pour déployer vos modèles de fondation personnalisés sur des GPU dédiés, voir Spécifications matérielles prédéfinies.
  • Vous ne pouvez pas utiliser de spécifications matérielles prédéfinies avec des 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 :
    • Avant la version 5.3.1 Patch 2 : le trait de soulignement (_) et le tiret (-) sont autorisés.
    • D'après le patch 2 de la version 5.3.1 : le trait de soulignement (_), le tiret (-), les deux-points (:) et les espaces sont autorisés.
  • 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 créez une spécification matérielle personnalisée pour votre modèle, suivez les directives d'utilisation des ressources pour les modèles de fondation personnalisés.

Création de spécifications matérielles personnalisées dans les projets

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 de spécifications matérielles personnalisées dans les espaces 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 les nœuds GPU sélectionnés

Pour créer une spécification matérielle personnalisée pour des nœuds GPU spécifiques, vous pouvez utiliser le champ " node_selector et spécifier le " label_name et le " label_value du nœud GPU que vous souhaitez utiliser. Vous pouvez également créer des étiquettes de nœuds personnalisées pour le nœud GPU et fournir le nom et la valeur de l'étiquette de nœud dans le champ " node_selector lorsque vous créez la spécification matérielle personnalisée.

Par exemple, si vous avez deux GPU NVIDIA A100 disponibles dans votre cluster avec 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 lorsque vous créez la spécification matérielle personnalisée, watsonx.ai choisit automatiquement l'un des GPU disponibles pour déployer votre modèle de fondation personnalisé. Si vous souhaitez déployer votre modèle de fondation personnalisé sur un nœud GPU spécifique, vous devez spécifier le " label_name et le " label_value dans le champ " node_selector lorsque vous créez la spécification matérielle personnalisée qui est utilisée pour déployer le modèle.

L'exemple de code suivant montre comment créer une spécification matérielle personnalisée pour le sélecteur de nœud " nvidia.com/gpu.product=NVIDIA-A100-SXM4-80GB en ajoutant le " label_name et le " label_value dans le champ " node_selector

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"
             }
         ]
      }
}'

Par conséquent, la nouvelle spécification matérielle apparaît dans le menu déroulant Sélectionner une spécification matérielle lorsque vous déployez le modèle dans l'interface utilisateur.