Les services d'IA offrent des capacités d'inférence en ligne, que vous pouvez utiliser pour l'inférence en temps réel sur de nouvelles données. Pour les cas d'utilisation qui nécessitent une évaluation par lots, vous pouvez exécuter une tâche de déploiement par lots pour tester le déploiement de votre service d'IA.
Méthodes de test des déploiements de services d'IA
Les services d'IA offrent des capacités d'inférence en ligne, que vous pouvez utiliser pour l'inférence en temps réel sur de nouvelles données. Cette capacité d'inférence est utile pour les applications qui nécessitent des prédictions en temps réel, telles que les chatbots, les systèmes de recommandation et les systèmes de détection des fraudes.
Pour tester les services d'IA pour l'inférence en ligne, vous pouvez utiliser l'interface utilisateur watsonx.ai, la bibliothèque client Python ou l'API REST. Pour plus d'informations, voir Déploiements du service AI d'inférence pour la notation en ligne.
Pour tester les services d'IA pour les applications de streaming d'inférence, vous pouvez utiliser la bibliothèque client Python watsonx.ai ou l'API REST. Pour plus d'informations, voir Déploiements de services d'inférence AI pour les applications de diffusion en continu.
Pour les cas d'utilisation nécessitant une notation par lots, créez et exécutez une tâche de déploiement par lots. Vous pouvez fournir n'importe quelle entrée JSON valide comme charge utile au point de terminaison de l'API REST pour l'inférence. Pour plus d'informations, voir Test des déploiements par lots pour les services d'IA.
Test des déploiements de services d'IA pour l'évaluation en ligne
Vous pouvez référencer le déploiement en ligne de votre service d'IA en utilisant l'interface utilisateur watsonx.ai, l'API REST ou la bibliothèque client Python watsonx.ai
Inférence avec l'interface utilisateur
Vous pouvez utiliser l'interface utilisateur pour référencer vos services d'IA en fournissant n'importe quelle charge utile JSON valide qui s'aligne sur le schéma de votre modèle. Suivez les étapes suivantes pour référencer le déploiement de votre service d'IA :
Dans votre espace de déploiement ou votre projet, ouvrez l'onglet Déploiements et cliquez sur le nom du déploiement.
Cliquez sur l'onglet Test pour saisir un texte d'invite et obtenir une réponse du poste déployé.
Saisir les données de test au format JSON pour générer un résultat au format JSON.
Restriction :Vous ne pouvez pas saisir de données au format texte pour tester le déploiement de votre service d'IA. Vous devez utiliser le format JSON pour les tests.
Inférence avec la bibliothèque client Python
Utilisez la fonction " run_ai_service
pour exécuter un service d'IA en fournissant une charge utile de notation :
ai_service_payload = {"query": "testing ai_service generate function"}
client.deployments.run_ai_service(deployment_id, ai_service_payload)
Pour plus d'informations, consultez la documentation de la bibliothèque client Pythonwatsonx.ai pour l'exécution d'un service d'IA.
Inférence avec l'API REST
Utilisez le point de terminaison REST " /ml/v4/deployments/{id_or_name}/ai_service
pour référencer les services d'IA pour la notation en ligne (services d'IA qui incluent la fonction " generate()
) :
# Any valid json is accepted in POST request to /ml/v4/deployments/{id_or_name}/ai_service
payload = {
"mode": "json-custom-header",
't1': 12345 ,
't2': ["hello", "wml"],
't3': {
"abc": "def",
"ghi": "jkl"
}
}
response = requests.post(
f'{HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}',
headers=headers,
verify=False,
json=payload
)
print(f'POST {HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}', response.status_code)
from json.decoder import JSONDecodeError
try:
print(json.dumps(response.json(), indent=2))
except JSONDecodeError:
print(f"response text >>\n{response.text}")
print(f"\nThe user customized content-type >> '{response.headers['Content-Type']}'")
Tester les déploiements de services d'IA pour les applications de diffusion en continu
Vous pouvez déduire le déploiement en ligne de votre service d'IA pour les applications de streaming en utilisant l'API REST watsonx watsonx.ai ou la bibliothèque client Python watsonx.ai
Inférence avec la bibliothèque client Python
Utilisez la fonction " run_ai_service_stream
pour exécuter un service d'intelligence artificielle pour les applications de diffusion en continu en fournissant une charge utile de notation.
ai_service_payload = {"sse": ["Hello", "WatsonX", "!"]}
for data in client.deployments.run_ai_service_stream(deployment_id, ai_service_payload):
print(data)
Pour plus d'informations, consultez la documentation de la bibliothèque client Pythonwatsonx.ai sur l'exécution d'un service d'IA pour la diffusion en continu.
Inférence avec l'API REST
Utilisez le point de terminaison REST " /ml/v4/deployments/{id_or_name}/ai_service_stream
pour référencer les services d'IA pour l'application de diffusion en continu (services d'IA qui incluent la fonction " generate_stream()
) :
TOKEN=f'{client._get_icptoken()}'
%%writefile payload.json
{
"sse": ["Hello" ,"WatsonX", "!"]
}
!curl -N \
-H "Content-Type: application/json" -H "Authorization: Bearer {TOKEN}" \
{HOST}'/ml/v4/deployments/'{dep_id}'/ai_service_stream?version='{VERSION} \
--data @payload.json
Sortie
id : 1 event : message data : Bonjour
id : 2 event : message data : WatsonX
id : 3 event : message data : !
id : 4 événement : eos
Test des déploiements par lots pour les services d'IA
Vous pouvez utiliser l'interface utilisateur watsonx.ai, la bibliothèque client Python ou l'API REST pour créer et exécuter un travail de déploiement par lots si vous avez créé un déploiement par lots pour votre service d'IA (ressource de service d'IA contenant la fonction " generate_batch()
).
Prérequis
Vous devez configurer les informations d'identification de la tâche pour exécuter une tâche de déploiement par lots pour votre service AI. Pour plus d'informations, voir Gestion des informations d'identification des tâches.
Test de l'interface utilisateur
Pour en savoir plus sur la création et l'exécution d'une tâche de déploiement par lots pour votre service AI à partir de l'interface utilisateur de l'espace de déploiement, voir Création de tâches dans les espaces de déploiement.
Test avec la bibliothèque client Python
Suivez ces étapes pour tester votre déploiement par lots en créant et en exécutant une tâche :
Créez une tâche pour tester le déploiement par lots de votre service d'IA :
batch_reference_payload = { "input_data_references": [ { "type": "connection_asset", "connection": {"id": "2d07a6b4-8fa9-43ab-91c8-befcd9dab8d2"}, "location": { "bucket": "wml-v4-fvt-batch-pytorch-connection-input", "file_name": "testing-123", }, } ], "output_data_reference": { "type": "data_asset", "location": {"name": "nb-pytorch_output.zip"}, }, } job_details = client.deployments.create_job(deployment_id, batch_reference_payload) job_uid = client.deployments.get_job_uid(job_details) print("The job id:", job_uid)
Vérifier l'état d'avancement du travail :
## Get job status client.deployments.get_job_status(job_uid)
En savoir plus
Sujet parent : Déployer des services d'IA