0 / 0
Torna alla versione inglese della documentazione
Importazione di modelli in uno spazio di distribuzione
Ultimo aggiornamento: 28 nov 2024
Importazione di modelli in uno spazio di distribuzione

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:

  1. Memorizzare il modello addestrato nel proprio repository watsonx.ai Runtime
  2. 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:

Per ulteriori informazioni, vedere:

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.

Opzioni di importazione per modelli, per 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

Nota:

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:

  1. Dalla scheda Assets del proprio spazio in watsonx.ai Runtime, fare clic su Import assets.
  2. Andare a File locale e selezionare Modello.
  3. 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

Nota:

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:

  1. Se il tuo modello si trova in un'ubicazione remota, segui Download di un modello archiviato in un'ubicazione remota.
  2. 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

Nota:

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:

  1. Se il modello è ubicato in un'ubicazione remota, seguire Download di un modello archiviato in un'ubicazione remota per scaricarlo.

  2. Se il modello si trova in locale, posizionarlo in una directory specifica:

      !cp <saved model> <target directory>
      !cd <target directory>
    
  3. 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
    
  4. 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

Nota:

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:

  1. Se il tuo modello si trova in un'ubicazione remota, fai riferimento a Download di un modello archiviato in un'ubicazione remota.

  2. 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
    
  3. 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:

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, .h5e .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 metodo client.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

Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni