0 / 0
Retourner à la version anglaise de la documentation
Tester les déploiements de services d'IA
Dernière mise à jour : 08 nov. 2024
Tester les 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. 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 :

  1. Dans votre espace de déploiement ou votre projet, ouvrez l'onglet Déploiements et cliquez sur le nom du déploiement.

  2. Cliquez sur l'onglet Test pour saisir un texte d'invite et obtenir une réponse du poste déployé.

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

    Déploiement en ligne de l'inférence pour les services d'intelligence artificielle à partir de l'interface utilisateur

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 :

  1. 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)
    
  2. 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