Erstellung benutzerdefinierter Hardware-Spezifikationen für den Einsatz auf dedizierten GPUs
Einige Basismodelltypen und Hardwarekonfigurationen erfordern möglicherweise eine angepasste Hardwarespezifikation. Hier finden Sie Informationen zu den Voraussetzungen für die Erstellung einer angepassten Hardwarespezifikation.
Allgemeine Überlegungen und Einschränkungen
- Eine Liste der Standard-Hardwarespezifikationen, die Sie für die Bereitstellung Ihrer benutzerdefinierten Basismodelle auf dedizierten GPUs verwenden können, finden Sie unter „Vordefinierte Hardwarespezifikationen “.
- Bei quantisierten Modellen können keine vordefinierten Hardware-Spezifikationen verwendet werden. Verwenden Sie für quantisierte Modelle und in anderen vom Standard abweichenden Fällen eine angepasste Hardwarespezifikation.
- Vermeiden Sie bei der Erstellung einer benutzerdefinierten Hardware-Spezifikation die Verwendung von Sonderzeichen im Namen der benutzerdefinierten Hardware-Spezifikation. Wenn Sie Sonderzeichen verwenden müssen, verwenden Sie entweder einen Unterstrich (_), einen Bindestrich (-), einen Doppelpunkt (:) oder ein Leerzeichen. Wenn Sie andere Sonderzeichen verwenden, wird die Hardware-Spezifikation zwar erstellt, es kann jedoch später zu Problemen kommen.
- Angepasste Hardwarespezifikationen werden nicht auf Konformität mit der installierten Hardware geprüft. Wenn Sie eine Hardwarespezifikation mit unzureichenden Ressourcen für Ihre Bereitstellung verwenden, schlägt die Bereitstellung mit der folgenden Nachricht fehl:
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. - Beachten Sie beim Erstellen einer benutzerdefinierten Hardware-Spezifikation für Ihr Modell die Richtlinien zur Ressourcenauslastung für benutzerdefinierte Basismodelle.
Beispiele finden Sie unter:
Erstellen benutzerdefinierter Hardware-Spezifikationen in einem Projekt
Verwenden Sie das folgende Codebeispiel, um eine angepasste Hardwarespezifikation für Ihr Modell in einem Projekt zu erstellen:
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
}
}
}'
Erstellen einer benutzerdefinierten Hardware-Spezifikation in einem Bereitstellungsbereich
Verwenden Sie das folgende Codebeispiel, um eine angepasste Hardwarespezifikation für Ihr Modell in einem Bereitstellungsbereich zu erstellen:
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
}
}
}'
Erstellen benutzerdefinierter Hardware-Spezifikationen für ausgewählte GPU-Knoten
Um eine benutzerdefinierte Hardware-Spezifikation für bestimmte GPU-Knoten zu erstellen, können Sie das node_selector Feld verwenden und die label_name sowie label_value des gewünschten GPU-Knotens angeben. Sie können außerdem benutzerdefinierte Knotenbezeichnungen für den GPU-Knoten erstellen und den Namen sowie den Wert der Knotenbezeichnung beim Erstellen der benutzerdefinierten Hardware-Spezifikation in das node_selector entsprechende Feld eingeben.
nvidia.com/gpu.product=NVIDIA-A100-80GB-PCIeWenn Sie beispielsweise in Ihrem Cluster zwei GPUs vom Typ „ NVIDIA “ A100 mit den Labels nvidia.com/gpu.product=NVIDIA-A100-SXM4-80GB und verfügen und beim Erstellen der benutzerdefinierten Hardware-Spezifikation keine Werte für node_selector angeben, wählt „ watsonx.ai “ automatisch eine der verfügbaren GPUs aus, um Ihr benutzerdefiniertes Foundation-Modell bereitzustellen. Wenn Sie Ihr benutzerdefiniertes Foundation-Modell auf einem bestimmten GPU-Knoten bereitstellen möchten, müssen Sie beim Erstellen der benutzerdefinierten Hardware-Spezifikation, die für die Bereitstellung des Modells verwendet wird, die node_selectorlabel_name Felder und label_value angeben.
Das folgende Codebeispiel zeigt, wie man eine benutzerdefinierte Hardware-Spezifikation für den Knotenselektor nvidia.com/gpu.product=NVIDIA-A100-SXM4-80GB erstellt, indem man die Elemente label_name und label_value im node_selector Feld hinzufügt:
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"
}
]
}
}'