Créez un déploiement en ligne pour les modèles d'apprentissage automatique, les actifs d'IA générative ou les fonctions Python afin de générer des prévisions ou des résultats en temps réel. Par exemple, créez un déploiement en ligne pour un modèle de classification qui est entraîné pour prédire si un client de la banque s'inscrit à une promotion. La soumission de nouvelles données client au noeud final de déploiement renvoie une prévision en temps réel.
Types d'actifs déployables pour les déploiements en ligne
Vous pouvez créer des déploiements en ligne pour ces types d'actifs:
- Fonctions
- Modèles
- Modèles d'invite
- Scripts
Vous ne pouvez pas déployer les ressources de l'application R Shiny sur watsonx.ai.
Méthodes de création d'un déploiement en ligne
Vous pouvez créer un déploiement en ligne de l'une des manières suivantes:
- Utilisez une approche sans code pour Créer un déploiement en ligne à partir d'un espace de déploiement.
- Utilisez le code pour Créer un déploiement en ligne à l'aide d'un programme à l'aide de blocs-notes.
Une fois que vous avez créé un déploiement en ligne, une URL de noeud final est générée. Vous pouvez utiliser l'URL de noeud final pour tester le déploiement ou pour l'inclure dans vos applications.
Avant de commencer
Vous devez définir les informations d'identification de votre tâche en générant une clé API. Pour plus d'informations, voir Gestion des informations d'identification des tâches.
Création d'un déploiement en ligne à partir d'un espace de déploiement
Pour créer votre déploiement en ligne à partir d'un espace de déploiement, procédez comme suit:
Promouvez ou ajoutez l'actif que vous souhaitez déployer dans un espace. Pour plus d'informations, voir Actifs dans un espace de déploiement.
Dans la page Actifs, cliquez sur Déployer dans le menu d'action.
Dans la page des détails du déploiement, cliquez sur Nouveau déploiement.
Choisissez En ligne comme type de déploiement.
Indiquez un nom et une description facultative pour le déploiement.
Utilisez la zone Nom de service pour spécifier un nom pour votre déploiement à la place de l'ID de déploiement.
Remarque :- Le nom de service doit être distinctif au sein de l'espace de nom.
- Le nom de service doit contenir uniquement les caractères suivants: [a-z,0-9, _ ] et ne doit pas comporter plus de 36 caractères.
- Le nom de service ne fonctionne que dans le cadre de l'URL de prévision. Parfois, vous devrez peut-être utiliser l'ID de déploiement.
Facultatif: Sélectionnez une spécification matérielle si vous déployez des fonctions Python , des modèles Tensorflow ou des modèles avec des spécifications logicielles personnalisées. Par exemple, si vous mettez à l'échelle un déploiement, vous pouvez augmenter les ressources matérielles.
Restriction :Vous ne pouvez pas créer ou sélectionner des spécifications matérielles personnalisées à partir de l'interface utilisateur dans un espace de déploiement. Pour en savoir plus sur les méthodes de création et de sélection d'une spécification matérielle, voir Gestion des spécifications matérielles pour les déploiements.
Facultatif: Sélectionnez une spécification logicielle compatible avec votre actif. Vous pouvez sélectionner des spécifications logicielles pour les fonctions uniquement.
Cliquez sur Créer pour créer le déploiement.
Test d'un déploiement en ligne
Procédez comme suit pour tester votre déploiement en ligne:
- Dans l'onglet Déploiements de votre espace, cliquez sur le nom du déploiement.
- Cliquez sur l'onglet Test pour entrer des données et obtenir une prévision ou une autre réponse de l'actif déployé.
La façon dont vous fournissez les données de test pour un déploiement en ligne dépend du type d'actif que vous avez déployé. Pour la plupart des actifs, vous pouvez entrer directement des données de test dans un formulaire, télécharger un fichier contenant des données de test ou coller les données de test sous forme de code JSON. Par exemple, voici l'interface de test d'un modèle de classification:
Pour fournir des données de test:
Si votre modèle déployé possède un schéma défini, vos données de test doivent utiliser le même schéma. Par exemple, pour un modèle de classification, entrez des données de test en utilisant les mêmes colonnes, en omettant la colonne de prévision.
Pour un modèle d'invite déployé, le formulaire de test du déploiement reflète le formulaire d'entrée-sortie que vous avez utilisé pour créer l'invite.
Exemple de code JSON pour tester un déploiement
Lorsque vous soumettez du code JSON en tant que contenu, ou données d'entrée, pour un déploiement, vos données d'entrée doivent correspondre aux exigences de l'actif déployé.
Par exemple, pour un modèle avec un schéma, fields
doit correspondre aux en-têtes de colonne des données et values
doit contenir les données (dans le même ordre). Utilisez ce format :
{"input_data":[{
"fields": [<field1>, <field2>, ...],
"values": [[<value1>, <value2>, ...]]
}]}
Reportez-vous à cet exemple :
{"input_data":[{
"fields": ["PassengerId","Pclass","Name","Sex","Age","SibSp","Parch","Ticket","Fare","Cabin","Embarked"],
"values": [[1,3,"Braund, Mr. Owen Harris",0,22,1,0,"A/5 21171",7.25,null,"S"]]
}]}
Toutefois, pour entrer des données d'entrée pour un modèle d'invite déployé, la structure reflète l'entrée et la sortie pour l'invite du modèle. Par exemple, consultez le fragment de code suivant:
{
"parameters": {
"prompt_variables": {
"input": "input text goes here."
}
}
}
Pour le formatage de l'entrée JSON:
- Toutes les chaînes sont placées entre guillemets. La notation Python pour les dictionnaires est similaire, mais les chaînes Python entre apostrophes ne sont pas acceptées dans les données JSON.
- Indiquez les valeurs manquantes avec
null
.
Extraction du noeud final pour un déploiement en ligne
Procédez comme suit pour extraire l'URL de noeud final de votre déploiement en ligne afin de pouvoir accéder au déploiement à partir de vos applications:
- Dans l'onglet Déploiements de votre espace, cliquez sur le nom du déploiement.
- Dans l'onglet Référence d'API , recherchez les liens de noeud final privé et public. Vous pouvez également trouver des fragments de code dans divers langages de programmation tels que Python, Java, etc. pour inclure les détails de noeud final dans une application.
Si vous avez ajouté Serving name lors de la création de votre déploiement en ligne, vous voyez deux URL de noeud final. La première URL contient l'ID de déploiement et la seconde URL contient votre nom de service. Vous pouvez utiliser l'une ou l'autre de ces URL avec votre déploiement.
Accès aux détails du déploiement en ligne
Pour passer en revue ou mettre à jour les détails du déploiement, procédez comme suit:
- Dans l'onglet Déploiements de votre espace, cliquez sur un nom de déploiement.
- Cliquez sur l'onglet Détails du déploiement pour accéder aux informations relatives à votre déploiement en ligne.
Création d'un déploiement en ligne à l'aide d'un programme à l'aide de blocs-notes
Vous pouvez créer un déploiement en ligne à l'aide d'un programme en utilisant:
Pour accéder à des exemples de notebooks qui démontrent comment créer et gérer des déploiements en utilisant le client Python watsonx.ai Runtime, voir Machine learning samples and examples.
Test de votre déploiement en ligne à l'aide d'un programme
Pour tester votre déploiement en ligne à l'aide d'un programme, vous devez préparer un contenu qui correspond au schéma des exigences de modèle existantes de l'actif déployé. Par exemple, les données d'entrée (contenu) d'un modèle de classification doivent correspondre au schéma du modèle déployé. L'exemple suivant pour un modèle de classification fournit des données de test avec des colonnes et des valeurs qui correspondent exactement au schéma du modèle:
model_details = client.repository.get_details("<model_id>") # retrieves details and includes schema
columns_in_schema = []
for i in range(0, len(model_details['entity']['schemas']['input'][0].get('fields'))):
columns_in_schema.append(model_details['entity']['schemas']['input'][0].get('fields')[i]['name'])
X = X[columns_in_schema] # where X is a pandas dataframe that contains values to be scored
#(...)
scoring_values = X.values.tolist()
array_of_input_fields = X.columns.tolist()
payload_scoring = {"input_data": [{"fields": [array_of_input_fields],"values": scoring_values}]}
Extraction du noeud final pour un déploiement en ligne à l'aide d'un programme
Pour extraire l'URL de noeud final de votre déploiement en ligne à partir d'un bloc-notes:
- Dressez la liste des déploiements en appelant la méthode clientPython "
client.deployments.list()
. - Recherchez la ligne correspondant à votre déploiement. L'URL de noeud final de déploiement est répertoriée dans la colonne
url
.
En savoir plus
Pour savoir comment créer un déploiement par lots, voir Création d'un déploiement par lots.
Pour savoir comment gérer les travaux de déploiement et mettre à jour, mettre à l'échelle ou supprimer un déploiement en ligne, voir Gestion des actifs.
Pour en savoir plus sur les points de déploiement, voir URL des points de déploiement.
Rubrique parent: Gestion des déploiements prédictifs