0 / 0
Retourner à la version anglaise de la documentation

Déployer des actifs de services d'IA

Dernière mise à jour : 16 janv. 2025
Déployer des actifs de services d'IA

En fonction de votre cas d'utilisation, vous pouvez créer un déploiement en ligne ou par lots pour votre ressource de services d'IA à partir de votre espace de déploiement. Déployez votre service d'IA en utilisant l'interface utilisateur watsonx.ai, l'API REST ou la bibliothèque client Python.

Types de déploiements pour le service d'IA

En fonction de votre cas d'utilisation, vous pouvez déployer le service d'IA en ligne ou par lots. Choisissez le type de déploiement en fonction des fonctions utilisées dans le service d'IA.

  • Vous devez créer un déploiement en ligne pour votre ressource de service d'IA pour la notation en ligne (le service d'IA contient la fonction " generate() ) ou les applications de diffusion en continu (le service d'IA contient la fonction " generate_stream() ).
  • Vous devez créer un déploiement par lots pour votre service AI pour les applications de notation par lots (le service AI contient la fonction " generate_batch() ).

Prérequis

  1. Vous devez configurer les informations d'identification de vos tâches pour déployer vos services d'IA. Pour plus d'informations, voir Ajout d'informations d'identification pour les tâches.

  2. Vous devez promouvoir vos services d'IA dans votre espace de déploiement.

    Promouvoir un actif de service d'IA vers un espace de déploiement

Déployer des services d'IA avec l'interface utilisateur

Vous pouvez déployer votre ressource de services d'IA à partir de l'interface utilisateur de votre espace de déploiement.

Création d'un déploiement en ligne pour les services d'IA

Suivez ces étapes pour créer un déploiement en ligne pour votre ressource de service AI à partir de l'interface utilisateur de l'espace de déploiement :

  1. Depuis votre espace de déploiement, allez dans l'onglet Assets.

  2. Pour votre ressource de service AI dans la liste des ressources, cliquez sur l'icône Menu et sélectionnez Déployer.

  3. Sélectionnez Online comme type de déploiement.

    Une capture d'écran montre comment créer un déploiement en ligne pour un service d'IA

  4. Saisissez un nom pour votre déploiement et, éventuellement, un nom de service, une description et des balises.

  5. Cliquez sur Créer.

Création d'un déploiement par lots pour les services d'IA

Suivez ces étapes pour créer un déploiement par lots pour votre ressource de service AI à partir de l'interface utilisateur de l'espace de déploiement :

  1. Depuis votre espace de déploiement, allez dans l'onglet Assets.

  2. Pour votre ressource de service AI dans la liste des ressources, cliquez sur l'icône Menu et sélectionnez Déployer.

  3. Sélectionnez Batch comme type de déploiement.

    Une capture d'écran montre comment créer un déploiement par lots pour un service d'IA

  4. Saisissez un nom pour votre déploiement et, éventuellement, un nom de service, une description et des balises.

  5. Sélectionnez une spécification matérielle :

    • Extra petit: 1 CPU et 4 GB RAM
    • Petit: 2 CPU et 8 GB RAM
    • Moyen: 4 CPU et 16 GB RAM
    • Large: 8 CPU et 32 GB RAM
    • Extra large: 16 CPU et 64 GB RAM
  6. Cliquez sur Créer.

Déployer des services d'IA avec la bibliothèque client Python

Vous pouvez créer un déploiement en ligne ou par lots pour votre service d'IA en utilisant la bibliothèque client Python.

Création d'un déploiement en ligne

L'exemple suivant montre comment créer un déploiement en ligne pour votre service d'IA en utilisant la bibliothèque client Python watsonx.ai

deployment_details = client.deployments.create(
    artifact_id=ai_service_id,
    meta_props={
        client.deployments.ConfigurationMetaNames.NAME: "ai-service - online test",
        client.deployments.ConfigurationMetaNames.ONLINE: {},
        client.deployments.ConfigurationMetaNames.HARDWARE_SPEC: {
            "id": client.hardware_specifications.get_id_by_name("XS")
        },
    },
)
deployment_id = client.deployments.get_uid(deployment_details)
print("The deployment id:", deployment_id)

Création d'un déploiement par lots

L'exemple suivant montre comment créer un déploiement par lots pour votre service d'IA en utilisant la bibliothèque client Python watsonx.ai

deployment_details = client.deployments.create(
    artifact_id=ai_service_id,
    meta_props={
        client.deployments.ConfigurationMetaNames.NAME: f"ai-service - batch",
        client.deployments.ConfigurationMetaNames.BATCH: {},
        client.deployments.ConfigurationMetaNames.HARDWARE_SPEC: {
            "id": client.hardware_specifications.get_id_by_name("XS")
        },
    },
)
deployment_id = client.deployments.get_uid(deployment_details)
print("The batch deployment id:", deployment_id)

Déployer des services d'IA avec l'API REST

Vous pouvez utiliser le point de terminaison de l'API REST watsonx.ai " /ml/v4/deployments pour créer un déploiement en ligne ou par lots pour votre service d'IA.

Création d'un déploiement en ligne

L'exemple suivant montre comment créer un déploiement en ligne pour votre service d'IA en utilisant l'API REST :

# POST /ml/v4/deployments
response = requests.post(
    f'{HOST}/ml/v4/deployments?version={VERSION}',
    headers=headers,
    verify=False,
    json={
        "space_id": space_id,
        "name": "genai flow online",
        "custom": {
            "key1": "value1",
            "key2": "value2",
            "model": "meta-llama/llama-3-8b-instruct"
        },
        "asset": {
            "id": asset_id
        },
        "online": {}
    }
)

Création d'un déploiement par lots

L'exemple suivant montre comment créer un déploiement par lots pour votre service d'IA en utilisant l'API REST :

response = requests.post(
    f'{HOST}/ml/v4/deployments?version={VERSION}',
    headers=headers,
    verify=False,
    json={
        "hardware_spec": {
          "id": "........",
          "num_nodes": 1
        },
        "space_id": space_id,
        "name": "ai service batch dep",
        "custom": {
            "key1": "value1",
            "key2": "value2",
            "model": "meta-llama/llama-3-8b-instruct"
        },
        "asset": {
            "id": asset_id
        },
        "batch": {}
    }
)
print(f'POST {HOST}/ml/v4/deployments?version={VERSION}', response.status_code)
print(json.dumps(response.json(), indent=2))

dep_id = response.json()["metadata"]["id"]

print(f"{dep_id=}")

En savoir plus

Sujet parent : Déployer des services d'IA avec le codage direct