Importieren Sie Machine-Learning-Modelle, die außerhalb von IBM watsonx.ai Runtime trainiert wurden, damit Sie die Modelle einsetzen und testen können. Überprüfen Sie die Modellframeworks, die für den Import von Modellen verfügbar sind.
In diesem Fall bedeutet das Importieren eines trainierten Modells Folgendes:
- Speichern Sie das trainierte Modell in Ihrem watsonx.ai Runtime Repository
- Optional: Stellen Sie das gespeicherte Modell in Ihrem watsonx.ai Runtime Service bereit
und Repository steht für ein Cloud Object Storage -Bucket. Weitere Informationen finden Sie unter Bereitstellungsbereiche erstellen.
Sie können ein Modell auf folgende Arten importieren:
- Direkt über die Benutzerschnittstelle
- Pfad zu einer Datei verwenden
- Pfad zu einem Verzeichnis verwenden
- Modellobjekt importieren
Weitere Informationen finden Sie unter:
- Verfügbare Möglichkeiten zum Importieren von Modellen, je nach Framework-Typ
- Was Sie beim Import von Modellen beachten sollten
Ein Beispiel für das programmgesteuerte Hinzufügen eines Modells mithilfe des Python -Clientsfinden Sie in diesem Notebook:
Ein Beispiel für das programmgesteuerte Hinzufügen eines Modells mithilfe der REST-APIfinden Sie im folgenden Notizbuch:
Verfügbare Methoden zum Importieren von Modellen nach Frameworktyp
Diese Tabelle listet die verfügbaren Möglichkeiten zum Importieren von Modellen in watsonx.ai Runtime pro Framework-Typ auf.
Option 'import' | Spark MLlib | Scikit-learn | XGBoost | TensorFlow | PyTorch |
---|---|---|---|---|---|
Modellobjekt importieren | ✓ | ✓ | ✓ | ||
Modell mithilfe eines Pfads zu einer Datei importieren | ✓ | ✓ | ✓ | ✓ | |
Modell mithilfe eines Pfads zu einem Verzeichnis importieren | ✓ | ✓ | ✓ | ✓ |
Modell über die Benutzerschnittstelle hinzufügen
Wenn Sie ein Modell im PMML-Format importieren möchten, können Sie die Modelldatei .xml
direkt importieren.
Gehen Sie wie folgt vor, um ein Modell über die Benutzerschnittstelle zu importieren:
- Klicken Sie auf der Registerkarte Assets Ihres Bereichs in watsonx.ai Runtime auf Assets importieren.
- Wählen Sie
Local file
und dann Modellaus. - Wählen Sie die Modelldatei aus, die Sie importieren möchten, und klicken Sie auf Importieren.
Der Importmechanismus wählt automatisch einen übereinstimmenden Modelltyp und eine übereinstimmende Softwarespezifikation basierend auf der Versionszeichenfolge in der Datei .xml
aus.
Modellobjekt importieren
Diese Importmethode wird von einer begrenzten Anzahl von ML-Frameworks unterstützt. Weitere Informationen finden Sie unter Verfügbare Methoden zum Importieren von Modellen nach Frameworktyp.
So importieren Sie ein Modellobjekt:
- Wenn sich Ihr Modell an einem fernen Standort befindet, befolgen Sie die Anweisungen unter Modell herunterladen, das an einem fernen Standort gespeichert ist.
- Speichern Sie das Modellobjekt in Ihrem watsonx.ai Runtime Repository. Weitere Informationen finden Sie unter Speichern des Modells im watsonx.ai Runtime Repository.
Modell mithilfe eines Pfads zu einer Datei importieren
Diese Importmethode wird von einer begrenzten Anzahl von ML-Frameworks unterstützt. Weitere Informationen finden Sie unter Verfügbare Methoden zum Importieren von Modellen nach Frameworktyp.
Gehen Sie wie folgt vor, um ein Modell mithilfe eines Pfads zu einer Datei zu importieren:
Wenn sich Ihr Modell an einem fernen Standort befindet, befolgen Sie die Anweisungen unter Modell herunterladen, das an einem fernen Standort gespeichert ist , um es herunterzuladen.
Wenn Ihr Modell lokal gespeichert ist, platzieren Sie es in einem bestimmten Verzeichnis:
!cp <saved model> <target directory> !cd <target directory>
Erstellen Sie für scikit-learn-, XGBoost-, Tensorflow- und PyTorch-Modelle ein Archiv, wenn die heruntergeladene Datei kein
.tar.gz
-Archiv ist:!tar -zcvf <saved model>.tar.gz <saved model>
Die Modelldatei muss sich im Ordner der höchsten Ebene des Verzeichnisses befinden. Beispiel:
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
Verwenden Sie den Pfad zur gespeicherten Datei, um die Modelldatei in Ihrem watsonx.ai Runtime Repository zu speichern. Weitere Informationen finden Sie unter Speichern des Modells im watsonx.ai Runtime Repository.
Modell unter Verwendung eines Pfads zu einem Verzeichnis importieren
Diese Importmethode wird von einer begrenzten Anzahl von ML-Frameworks unterstützt. Weitere Informationen finden Sie unter Verfügbare Methoden zum Importieren von Modellen nach Frameworktyp.
Gehen Sie wie folgt vor, um ein Modell mithilfe eines Pfads zu einem Verzeichnis zu importieren:
Wenn sich Ihr Modell an einem fernen Standort befindet, folgen Sie den Anweisungen zum Herunterladen eines Modells, das an einem fernen Standort gespeichert ist.
Wenn Ihr Modell lokal gespeichert ist, platzieren Sie es in einem bestimmten Verzeichnis:
!cp <saved model> <target directory> !cd <target directory>
Für scikit-learn-, XGBoost-, Tensorflow-und PyTorch -Modelle muss sich die Modelldatei im Ordner der höchsten Ebene des Verzeichnisses befinden. Beispiel:
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
Verwenden Sie den Verzeichnispfad, um die Modelldatei in Ihrem watsonx.ai Runtime Repository zu speichern. Weitere Informationen finden Sie unter Speichern des Modells im watsonx.ai Runtime Repository.
Modell herunterladen, das an einem fernen Standort gespeichert ist
Führen Sie den folgenden Beispielcode aus, um Ihr Modell von einem fernen Standort herunterzuladen:
import os
from wget import download
target_dir = '<target directory name>'
if not os.path.isdir(target_dir):
os.mkdir(target_dir)
filename = os.path.join(target_dir, '<model name>')
if not os.path.isfile(filename):
filename = download('<url to model>', out = target_dir)
Hinweise zum Importieren von Modellen
Weitere Informationen zum Importieren eines bestimmten Modelltyps finden Sie unter:
- Im PMML-Format gespeicherte Modelle
- Spark-MLlib-Modelle
- Scikit-learn-Modelle
- XGBoost-Modelle
- TensorFlow -Modelle
- PyTorch -Modelle
Um mehr über Frameworks zu erfahren, die Sie mit watsonx.ai Runtime verwenden können, siehe Unterstützte Frameworks.
Im PMML-Format gespeicherte Modelle
- Der einzige verfügbare Bereitstellungstyp für Modelle, die aus PMML importiert werden, ist die Onlinebereitstellung.
- Die PMML-Datei muss die Dateierweiterung
.xml
haben. - PMML-Modelle können in einem SPSS-Datenstromablauf nicht verwendet werden.
- Die PMML-Datei darf keinen Prolog enthalten. Abhängig von der Bibliothek, die Sie beim Speichern Ihres Modells verwenden, wird möglicherweise standardmäßig ein Prolog am Anfang der Datei hinzugefügt. Wenn Ihre Datei beispielsweise eine Prologzeichenfolge wie
spark-mllib-lr-model-pmml.xml
enthält, entfernen Sie die Zeichenfolge, bevor Sie die PMML-Datei in den Bereitstellungsbereich importieren.
Abhängig von der Bibliothek, die Sie verwenden, wenn Sie Ihr Modell speichern, kann ein Prolog standardmäßig am Anfang der Datei hinzugefügt werden. Beispiel:
::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::
Sie müssen diesen Prolog entfernen, bevor Sie die PMML-Datei in watsonx.ai Runtime importieren können.
Spark MLlib-Modelle
- Nur Klassifikations-und Regressionsmodelle sind verfügbar.
- Angepasste Umsetzungsprogramme, benutzerdefinierte Funktionen und Klassen sind nicht verfügbar.
Scikit-learn Modelle
.pkl
und.pickle
sind die verfügbaren Importformate.- Verwenden Sie das Paket
joblib
, um das Modell zu serialisieren oder zu verwenden. - Nur Klassifikations-und Regressionsmodelle sind verfügbar.
- Pandas Dataframe-Eingabetyp für
predict()
-API ist nicht verfügbar. - Der einzige verfügbare Bereitstellungstyp für Scikit-learn-Modelle ist die Onlinebereitstellung.
XGBoost-Modelle
.pkl
und.pickle
sind die verfügbaren Importformate.- Verwenden Sie das Paket
joblib
, um das Modell zu serialisieren oder zu verwenden. - Nur Klassifikations-und Regressionsmodelle sind verfügbar.
- Pandas Dataframe-Eingabetyp für
predict()
-API ist nicht verfügbar. - Der einzige verfügbare Bereitstellungstyp für XGBoost-Modelle ist die Onlinebereitstellung.
TensorFlow -Modelle
.pb
,.h5
und.hdf5
sind die verfügbaren Importformate.- Verwenden Sie zum Speichern oder Serialisieren eines TensorFlow -Modells die Methode
tf.saved_model.save()
. tf.estimator
ist nicht verfügbar.- Die einzigen verfügbaren Bereitstellungstypen für TensorFlow -Modelle sind: Onlinebereitstellung und Stapelbereitstellung.
PyTorch -Modelle
Der einzige verfügbare Bereitstellungstyp für PyTorch -Modelle ist die Onlinebereitstellung.
Damit ein Pytorch-Modell in watsonx.ai Runtime importiert werden kann, muss es zuvor in das '
.onnx
ormat exportiert worden sein. Siehe diesen Code.torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
Speichern eines Modells in Ihrem watsonx.ai Runtime Repository
Verwenden Sie diesen Code, um Ihr Modell in Ihrem watsonx.ai Runtime Repository zu speichern:
from ibm_watson_machine_learning import APIClient
client = APIClient(<your credentials>)
sw_spec_uid = client.software_specifications.get_uid_by_name("<software specification name>")
meta_props = {
client.repository.ModelMetaNames.NAME: "<your model name>",
client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sw_spec_uid,
client.repository.ModelMetaNames.TYPE: "<model type>"}
client.repository.store_model(model=<your model>, meta_props=meta_props)
Anmerkungen:
Je nach verwendetem Modellframework kann
<your model>
das tatsächliche Modellobjekt, ein vollständiger Pfad zu einer gespeicherten Modelldatei oder ein Pfad zu einem Verzeichnis sein, in dem sich die Modelldatei befindet. Weitere Informationen finden Sie unter Verfügbare Methoden zum Importieren von Modellen nach Frameworktyp.Verwenden Sie die Methode
client.software_specifications.list()
, um eine Liste der verfügbaren Softwarespezifikationen für<software specification name>
zu erhalten.Eine Liste der verfügbaren Modelltypen, die als
model_type
verwendet werden können, finden Sie unter Softwarespezifikationen und Hardwarespezifikationen für BereitstellungenWenn Sie ein Pytorch-Modell in das '
.onnx
-Format exportieren, geben Sie das 'keep_initializers_as_inputs=True
-Flag an und setzen Sie 'opset_version
auf 9watsonx.ai Runtime Deployments verwenden die 'caffe2
ONNX-Runtime, die keine höheren Opset-Versionen als 9 unterstützt).torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
Übergeordnetes Thema: Assets in Bereitstellungsbereichen