Importazione di modelli di apprendimento automatico addestrati al di fuori di IBM watsonx.ai Runtime in modo da poter distribuire e testare i modelli. Esaminare i framework del modello disponibili per l'importazione dei modelli.
Di seguito, per importare un modello addestrato significa:
- Memorizzare il modello addestrato nel proprio repository watsonx.ai Runtime
- Opzionale: Distribuire il modello memorizzato nel proprio servizio watsonx.ai Runtime
e repository indica un bucket Cloud Object Storage . Per ulteriori informazioni, vedi Creazione di spazi di installazione.
È possibile importare un modello nei seguenti modi:
- direttamente tramite l'IU
- Utilizzando un percorso per un file
- Utilizzo di un percorso ad una directory
- Importare un modello
Per ulteriori informazioni, vedere:
- Modi disponibili per importare i modelli, per tipo di struttura
- Cose da considerare quando si importano i modelli
Per un esempio di come aggiungere un modello in modo programmatico utilizzando Client Python, fare riferimento a questo notebook:
Per un esempio di come aggiungere un modello in modo programmatico utilizzando l' API REST, fare riferimento a questo notebook:
Modi disponibili per importare i modelli, per tipo di framework
Questa tabella elenca i modi disponibili per importare i modelli in watsonx.ai Runtime, per ogni tipo di framework.
Opzione di importazione | Spark MLlib | Scikit-learn | XGBoost | TensorFlow | PyTorch |
---|---|---|---|---|---|
Importazione di un oggetto modello | ✓ | ✓ | ✓ | ||
Importazione di un modello utilizzando un file | ✓ | ✓ | ✓ | ✓ | |
Importazione di un modello utilizzando un percorso di directory | ✓ | ✓ | ✓ | ✓ |
Aggiunta di un modello utilizzando l'interfaccia utente
Se si desidera importare un modello in formato PMML, è possibile importare direttamente il file .xml
del modello.
Per importare un modello utilizzando l'interfaccia utente:
- Dalla scheda Assets del proprio spazio in watsonx.ai Runtime, fare clic su Import assets.
- Andare a File locale e selezionare Modello.
- Selezionare il file di modello che si desidera importare e fare clic su Importa.
Il meccanismo di importazione seleziona automaticamente un tipo di modello corrispondente e una specifica software in base alla stringa della versione nel file .xml
.
Importazione di un oggetto modello
Questo metodo di importazione è supportato da un numero limitato di framework ML. Per ulteriori informazioni, consultare Modi disponibili per importare i modelli, per tipo di framework.
Per importare un oggetto modello:
- Se il tuo modello si trova in un'ubicazione remota, segui Download di un modello archiviato in un'ubicazione remota.
- Memorizzare l'oggetto modello nel repository watsonx.ai Runtime. Per ulteriori informazioni, vedere Memorizzazione del modello nel repository watsonx.ai Runtime.
Importazione di un modello utilizzando un percorso di file
Questo metodo di importazione è supportato da un numero limitato di framework ML. Per ulteriori informazioni, consultare Modi disponibili per importare i modelli, per tipo di framework.
Per importare un modello utilizzando un percorso di un file:
Se il modello è ubicato in un'ubicazione remota, seguire Download di un modello archiviato in un'ubicazione remota per scaricarlo.
Se il modello si trova in locale, posizionarlo in una directory specifica:
!cp <saved model> <target directory> !cd <target directory>
Per i modelli Scikit - learn, XGBoost, Tensorflowe PyTorch , se il file scaricato non è un archivio
.tar.gz
, creare un archivio:!tar -zcvf <saved model>.tar.gz <saved model>
Il file di modello deve trovarsi nella cartella di livello principale della directory, ad esempio:
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
Utilizzare il percorso del file salvato per memorizzare il file del modello nel repository watsonx.ai Runtime. Per ulteriori informazioni, vedere Memorizzazione del modello nel repository watsonx.ai Runtime.
Importazione di un modello utilizzando un percorso a una directory
Questo metodo di importazione è supportato da un numero limitato di framework ML. Per ulteriori informazioni, consultare Modi disponibili per importare i modelli, per tipo di framework.
Per importare un modello utilizzando un percorso a un indirizzario:
Se il tuo modello si trova in un'ubicazione remota, fai riferimento a Download di un modello archiviato in un'ubicazione remota.
Se il modello si trova in locale, posizionarlo in una directory specifica:
!cp <saved model> <target directory> !cd <target directory>
Per modelli scikit - learn, XGBoost, Tensorflowe PyTorch , il file del modello deve trovarsi nella cartella di livello superiore della directory, ad esempio:
assets/ <saved model> variables/ variables/variables.data-00000-of-00001 variables/variables.index
Utilizzare il percorso della directory per memorizzare il file del modello nel repository watsonx.ai Runtime. Per ulteriori informazioni, vedere Memorizzazione del modello nel repository watsonx.ai Runtime.
Download di un modello memorizzato in una posizione remota
Seguire questo codice di esempio per scaricare il modello da una posizione remota:
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)
Cose da considerare quando si importano modelli
Per ulteriori informazioni sull'importazione di uno specifico tipo di modello, consultare:
- Modelli salvati in formato PMML
- Modelli Spark MLlib
- Modelli Scikit - learn
- Modelli XGBoost
- ModelliTensorFlow
- ModelliPyTorch
Per saperne di più sui framework che si possono utilizzare con watsonx.ai Runtime, vedere Framework supportati.
Modelli salvati in formato PMML
- L'unico tipo di installazione disponibile per i modelli importati dal PMML è la distribuzione in linea.
- Il file PMML deve avere l'estensione file
.xml
. - I modelli PMML non possono essere utilizzati in un flusso SPSS .
- Il file PMML non deve contenere un prologo. A seconda della libreria che si sta utilizzando quando si salva il modello, un prologo potrebbe essere aggiunto all'inizio del file per impostazione predefinita. Ad esempio, se il file contiene una stringa di prologo come
spark-mllib-lr-model-pmml.xml
, rimuovere la stringa prima di importare il file PMML nello spazio di distribuzione.
A seconda della libreria che si sta utilizzando quando si salva il modello, per impostazione predefinita potrebbe essere aggiunto un prologo all'inizio del file, come in questo esempio:
::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::
È necessario rimuovere il prologo prima di poter importare il file PMML in watsonx.ai Runtime.
modelli Spark MLlib
- Sono disponibili solo i modelli di classificazione e regressione.
- I trasformatori personalizzati, le funzioni definite dall'utente e le classi non sono disponibili.
Modelli Scikit - learn
.pkl
e.pickle
sono i formati di importazione disponibili.- Per serializzare o decapare il modello, utilizzare il pacchetto
joblib
. - Sono disponibili solo i modelli di classificazione e regressione.
- Il tipo di input Panda Dataframe per l'API
predict()
non è disponibile. - L'unico tipo di distribuzione disponibile per i modelli scikit-learn è la distribuzione online.
modelli XGBoost
.pkl
e.pickle
sono i formati di importazione disponibili.- Per serializzare o decapare il modello, utilizzare il pacchetto
joblib
. - Sono disponibili solo i modelli di classificazione e regressione.
- Il tipo di input Panda Dataframe per l'API
predict()
non è disponibile. - L'unico tipo di distribuzione disponibile per i modelli XGBoost è la distribuzione online.
Modelli TensorFlow
.pb
,.h5
e.hdf5
sono i formati di importazione disponibili.- Per salvare o serializzare un modello TensorFlow , utilizzare il metodo
tf.saved_model.save()
. tf.estimator
non è disponibile.- Gli unici tipi di distribuzione disponibili per i modelli TensorFlow sono: distribuzione online e distribuzione batch.
modelli PyTorch
L'unico tipo di distribuzione disponibile per i modelli PyTorch è la distribuzione online.
Affinché un modello Pytorch sia importabile in watsonx.ai Runtime, deve essere precedentemente esportato in formato '
.onnx
. Fare riferimento a questo codice.torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
Memorizzazione di un modello nel repository del runtime watsonx.ai
Utilizzare questo codice per memorizzare il modello nel repository watsonx.ai Runtime:
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)
Note:
A seconda del framework del modello utilizzato,
<your model>
può essere l'oggetto del modello effettivo, un percorso completo di un file del modello salvato o un percorso di una directory in cui si trova il file del modello. Per ulteriori informazioni, consultare Modi disponibili per importare i modelli, per tipo di framework.Per un elenco di specifiche software disponibili da utilizzare come
<software specification name>
, utilizzare il metodoclient.software_specifications.list()
.Per un elenco dei tipi di modello disponibili da utilizzare come
model_type
, consultare Specifiche software e specifiche hardware per le installazioni.Quando si esporta un modello Pytorch nel formato '
.onnx
, specificare il flag 'keep_initializers_as_inputs=True
e impostare 'opset_version
a 9 (le distribuzioni Runtimewatsonx.ai usano il runtime ONNX 'caffe2
che non supporta versioni di opset superiori a 9).torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
Argomento principale Asset negli spazi di distribuzione