0 / 0
Retourner à la version anglaise de la documentation
Importation de modèles dans un espace de déploiement
Dernière mise à jour : 28 nov. 2024
Importation de modèles dans un espace de déploiement

Importez des modèles d'apprentissage automatique formés en dehors d'IBM watsonx.ai Runtime afin de pouvoir déployer et tester les modèles. Passez en revue les infrastructures de modèle disponibles pour l'importation de modèles.

Ici, Pour importer un modèle qualifié signifie :

  1. Stockez le modèle entraîné dans votre référentiel watsonx.ai Runtime
  2. Facultatif : Déployer le modèle stocké dans votre service watsonx.ai Runtime

et repository signifie un compartiment Cloud Object Storage . Pour plus d'informations, voir Création d'espaces de déploiement.

Vous pouvez importer un modèle de l'une des manières suivantes:

Pour plus d'informations, voir :

Pour un exemple d'ajout d'un modèle à l'aide d'un programme à l'aide du clientPython, reportez-vous au bloc-notes suivant:

Pour un exemple d'ajout d'un modèle à l'aide d'un programme à l'aide de l' API REST, reportez-vous à ce bloc-notes:

Méthodes disponibles pour importer des modèles, par type de canevas

Ce tableau liste les méthodes disponibles pour importer des modèles dans watsonx.ai Runtime, par type de framework.

Options d'importation pour les modèles, par type de canevas
Option d'importation Spark MLlib Scikit-learn XGBoost TensorFlow PyTorch
Objet modèle importé
Importation d'un modèle à l'aide d'un chemin d'accès à un fichier
Importation d'un modèle à l'aide d'un chemin d'accès à un répertoire

Ajout d'un modèle à l'aide de l'interface utilisateur

Remarque :

Si vous souhaitez importer un modèle au format PMML, vous pouvez importer directement le fichier .xml du modèle.

Pour importer un modèle à l'aide de l'interface utilisateur:

  1. Dans l'onglet Assets de votre espace dans watsonx.ai Runtime, cliquez sur Import assets.
  2. Sélectionnez Local file , puis Modèle.
  3. Sélectionnez le fichier de modèle à importer et cliquez sur Importer.

Le mécanisme d'importation sélectionne automatiquement un type de modèle et une spécification logicielle correspondants en fonction de la chaîne de version dans le fichier .xml .

Objet modèle importé

Remarque :

Cette méthode d'importation est prise en charge par un nombre limité d'infrastructures ML. Pour plus d'informations, voir Available ways to import models, per framework type.

Pour importer un objet de modèle:

  1. Si votre modèle se trouve dans un emplacement distant, voir Téléchargement d'un modèle stocké dans un emplacement distant.
  2. Stockez l'objet modèle dans votre référentiel watsonx.ai Runtime. Pour plus d'informations, voir Stocker le modèle dans le référentiel watsonx.ai Runtime.

Importation d'un modèle à l'aide d'un chemin d'accès à un fichier

Remarque :

Cette méthode d'importation est prise en charge par un nombre limité d'infrastructures ML. Pour plus d'informations, voir Available ways to import models, per framework type.

Pour importer un modèle à l'aide d'un chemin d'accès à un fichier:

  1. Si votre modèle se trouve dans un emplacement distant, suivez la procédure Téléchargement d'un modèle stocké dans un emplacement distant pour le télécharger.

  2. Si votre modèle est stocké localement, placez-le dans un répertoire spécifique.

      !cp <saved model> <target directory>
      !cd <target directory>
    
  3. Pour les modèles Scikit-learn, XGBoost, Tensorflowet PyTorch , si le fichier téléchargé n'est pas une archive .tar.gz, faites une archive :

      !tar -zcvf <saved model>.tar.gz <saved model>
    

    Le fichier de modèle doit se trouver dans le dossier de niveau supérieur du répertoire, par exemple:

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  4. Utilisez le chemin d'accès au fichier enregistré pour stocker le fichier de modèle dans votre référentiel watsonx.ai Runtime. Pour plus d'informations, voir Stocker le modèle dans le référentiel watsonx.ai Runtime.

Importation d'un modèle à l'aide d'un chemin d'accès à un répertoire

Remarque :

Cette méthode d'importation est prise en charge par un nombre limité d'infrastructures ML. Pour plus d'informations, voir Available ways to import models, per framework type.

Pour importer un modèle à l'aide d'un chemin d'accès à un répertoire:

  1. Si votre modèle se trouve dans un emplacement distant, voir Téléchargement d'un modèle stocké dans un emplacement distant.

  2. Si votre modèle est stocké localement, placez-le dans un répertoire spécifique.

    !cp <saved model> <target directory>
    !cd <target directory>
    

    Pour les modèles scikit-learn, XGBoost, Tensorflowet PyTorch , le fichier de modèle doit se trouver dans le dossier de niveau supérieur du répertoire, par exemple:

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  3. Utilisez le chemin du répertoire pour stocker le fichier de modèle dans votre référentiel watsonx.ai Runtime. Pour plus d'informations, voir Stocker le modèle dans le référentiel watsonx.ai Runtime.

Télécharger un modèle stocké en un endroit distant

Suivez cet exemple de code pour télécharger votre modèle d'un endroit distant :

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)

Éléments à prendre en compte lors de l'importation de modèles

Pour en savoir plus sur l'importation d'un type de modèle spécifique, voir:

Pour en savoir plus sur les frameworks que vous pouvez utiliser avec watsonx.ai Runtime, voir Supports de frameworks.

Modèles enregistrés au format PMML

  • Le seul type de déploiement disponible pour les modèles importés à partir de PMML est le déploiement en ligne.
  • Le fichier PMML doit avoir l'extension de fichier .xml .
  • Les modèles PMML ne peuvent pas être utilisés dans un flux SPSS.
  • Le fichier PMML ne doit pas contenir de prologue. Selon la bibliothèque que vous utilisez lorsque vous sauvegardez votre modèle, un prologue peut être ajouté au début du fichier par défaut. Par exemple, si votre fichier contient une chaîne prologue telle que spark-mllib-lr-model-pmml.xml, supprimez cette chaîne avant d'importer le fichier PMML dans l'espace de déploiement.

Selon la bibliothèque que vous utilisez lorsque vous sauvegardez votre modèle, un prologue peut être ajouté au début du fichier par défaut, comme dans l'exemple suivant:

::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::

Vous devez supprimer ce prologue avant de pouvoir importer le fichier PMML dans watsonx.ai Runtime.

Modèles Spark MLlib

  • Seuls les modèles de classification et de régression sont disponibles.
  • Les transformateurs personnalisés, les fonctions définies par l'utilisateur et les classes ne sont pas disponibles.

Modèles Scikit-learn

  • .pkl et .pickle sont les formats d'importation disponibles.
  • Pour sérialiser ou piocher le modèle, utilisez le pack joblib .
  • Seuls les modèles de classification et de régression sont disponibles.
  • Le type d'entrée de trame de données Pandas pour l'API predict() n'est pas disponible.
  • Le seul type de déploiement disponible pour les modèles scikit-learn est le déploiement en ligne.

Modèles XGBoost

  • .pkl et .pickle sont les formats d'importation disponibles.
  • Pour sérialiser ou piocher le modèle, utilisez le pack joblib .
  • Seuls les modèles de classification et de régression sont disponibles.
  • Le type d'entrée de trame de données Pandas pour l'API predict() n'est pas disponible.
  • Le seul type de déploiement disponible pour les modèles XGBoost est le déploiement en ligne.

Modèles TensorFlow

  • .pb, .h5et .hdf5 sont les formats d'importation disponibles.
  • Pour enregistrer ou sérialiser un modèle TensorFlow , utilisez la méthode tf.saved_model.save() .
  • tf.estimator n'est pas disponible.
  • Les seuls types de déploiement disponibles pour les modèles TensorFlow sont le déploiement en ligne et le déploiement par lots.

Modèles PyTorch

  • Le seul type de déploiement disponible pour les modèles PyTorch est le déploiement en ligne.

  • Pour qu'un modèle Pytorch puisse être importé dans watsonx.ai Runtime, il doit être préalablement exporté au format '.onnx. Reportez-vous à ce 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>)
    

Stocker un modèle dans votre référentiel watsonx.ai Runtime

Utilisez ce code pour stocker votre modèle dans votre référentiel 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)

Remarques :

  • Selon l'infrastructure de modèle utilisée, <your model> peut être l'objet de modèle réel, un chemin d'accès complet à un fichier de modèle sauvegardé ou un chemin d'accès à un répertoire dans lequel se trouve le fichier de modèle. Pour plus d'informations, voir Available ways to import models, per framework type.

  • Pour obtenir la liste des spécifications logicielles disponibles à utiliser en tant que <software specification name>, utilisez la méthode client.software_specifications.list().

  • Pour obtenir la liste des types de modèles disponibles à utiliser en tant que model_type, voir Spécifications logicielles et spécifications matérielles pour les déploiements.

  • Lorsque vous exportez un modèle Pytorch au format '.onnx, spécifiez le drapeau 'keep_initializers_as_inputs=True et définissez 'opset_version à 9 (les déploiements du runtimewatsonx.ai utilisent le runtime ONNX 'caffe2 qui ne supporte pas les versions d'opset supérieures à 9).

    torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
    

Rubrique parent: Actifs dans les espaces de déploiement

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus