Utiliser Networking par défaut

Créez un déploiement de modèle avec l'option de mise en réseau par défaut.

La charge de travail est attachée à l'aide d'une carte d'interface réseau virtuelle secondaire à un VCN et un sous-réseau préconfigurés et gérés par le service. Ce sous-réseau fourni donne accès à d'autres services Oracle Cloud par le biais d'une passerelle de service, mais pas au réseau Internet public.

Si vous avez besoin d'accéder uniquement aux services OCI, nous vous recommandons d'utiliser cette option. Il n'est pas nécessaire de créer des ressources réseau ni d'écrire des stratégies pour les droits d'accès réseau.

Vous pouvez créer et exécuter des déploiements de modèle de réseau par défaut à l'aide de la console, du kit SDK OCI Python, de l'interface de ligne de commande OCI ou de l'API Data Science.

    1. Sur la page Déploiements de modèle, sélectionnez Créer un déploiement de modèle. Si vous avez besoin d'aide pour trouver la liste des déploiements de modèle, reportez-vous à Liste des déploiements de modèle.
    2. (Facultatif) Entrez un nom unique pour le modèle (limite de 255 caractères). Si vous n'indiquez aucun nom, un nom est généré automatiquement.

      Par exemple, modeldeployment20200108222435.

    3. (Facultatif) Entrez la description (limite de 400 caractères) du déploiement de modèle.
    4. (Facultatif) Sous Configuration par défaut, entrez une clé de variable d'environnement personnalisée et la valeur correspondante. Sélectionnez + Clé d'environnement personnalisée supplémentaire pour ajouter d'autres variables d'environnement.
    5. Dans la section Modèles, sélectionnez Sélectionner pour sélectionner un modèle actif à déployer à partir du catalogue de modèles.
      1. Recherchez un modèle à l'aide du compartiment et du projet par défaut, ou en sélectionnant Utilisation de l'OCID et en recherchant le modèle en saisissant son OCID.
      2. Sélectionnez le modèle.
      3. Sélectionnez Soumettre.
      Important

      Les artefacts de modèle dépassant 400 Go ne sont pas pris en charge pour le déploiement. Sélectionnez un artefact de modèle plus petit pour le déploiement.
    6. (Facultatif) Modifiez la forme de calcul en sélectionnant Modifier la forme. Suivez les étapes ci-dessous dans le panneau Sélectionner un calcul.
      1. Sélectionner un type d'instance.
      2. Sélectionnez une série de formes.
      3. Sélectionnez l'une des formes de calcul prises en charge dans la série.
      4. Sélectionnez la forme qui convient le mieux à l'utilisation de la ressource.

        Pour chaque OCPU, sélectionnez jusqu'à 64 Go de mémoire et un total maximal de 512 Go. La quantité minimale de mémoire autorisée est 1 Go ou une valeur correspondant au nombre d'OCPU, la valeur la plus élevée étant retenue.

      5. Sélectionnez Sélectionner une forme.
    7. Entrez le nombre d'instances sur lesquelles répliquer le modèle pour le déploiement de modèle.
    8. Sélectionnez Réseau par défaut pour configurer le type de réseau.
    9. Sélectionnez l'une des options suivantes pour configurer le type d'adresse :
      • Public endpoint : accès aux données dans une instance gérée depuis l'extérieur d'un VCN.
      • Private endpoint : adresse privée à utiliser pour le déploiement de modèle.
      Si vous avez sélectionné Private endpoint, sélectionnez Private Endpoint dans Adresse privée dans Data Science.

      Sélectionnez Modifier le compartiment pour sélectionner le compartiment contenant l'adresse privée.

    10. (Facultatif) Si vous configurez la journalisation d'accès ou de prédiction, dans la section Journalisation, sélectionnez Sélectionner, puis suivez les étapes suivantes :
      1. Pour les journaux d'accès, sélectionnez un compartiment, un groupe de journaux et un nom de journal.
      2. Pour les journaux de prédiction, sélectionnez un compartiment, un groupe de journaux et un nom de journal.
      3. Sélectionnez Soumettre.
    11. (Facultatif) Sélectionnez Afficher les options avancées pour ajouter des balises.
      1. (Facultatif) Sélectionnez le mode de service pour le déploiement de modèle, en tant qu'adresse HTTPS ou à l'aide d'un flux de service Streaming.
      2. (Facultatif) Sélectionnez la bande passante d'équilibrage de charge en Mbps ou utilisez la valeur par défaut de 10 Mbps.

        Conseils à propos de l'équilibrage de charge :

        Si vous connaissez la taille courante de la charge utile et la fréquence des demandes par seconde, vous pouvez appliquer la formule suivante pour estimer la bande passante d'équilibreur de charge dont vous avez besoin. Nous vous recommandons d'ajouter 20 % de marge pour les erreurs d'estimation et le trafic de pointe sporadique.

        (Taille de la charge utile en ko) * (Demandes estimées par seconde) * 8 / 1 024

        Par exemple, si la charge utile est de 1 024 ko et que vous estimez 120 demandes par seconde, la bande passante d'équilibreur de charge recommandée serait (1024 * 120 * 8 / 1024) * 1,2 = 1152 Mbps.

        N'oubliez pas que la taille maximale de charge utile prise en charge est de 10 Mo pour les charges utiles des images.

        Si la taille de charge utile de demande est supérieure à la bande passante allouée de l'équilibreur de charge défini, la demande est rejetée avec le code de statut 429.

      3. (Facultatif) Sélectionnez Utiliser une image de conteneur personnalisée et entrez les informations suivantes :
        • Référentiel dans <tenancy> : référentiel contenant l'image personnalisée.

        • Image : image personnalisée à utiliser dans le déploiement de modèle lors de l'exécution.

        • CMD : davantage de commandes à exécuter au démarrage du conteneur. Ajoutez une instruction par zone de texte. Par exemple, si la commande est ["--host", "0.0.0.0"], transmettez --host dans une zone de texte et 0.0.0.0 dans une autre. N'utilisez pas de guillemets à la fin.

        • Point d'entrée : fichiers de points d'entrée à exécuter au démarrage du conteneur. Par exemple, /opt/script/entrypoint.sh. N'utilisez pas de guillemets à la fin.

        • Port du serveur : port sur lequel s'exécute le serveur Web traitant l'inférence. La valeur par défaut est 8080. Le port peut être compris entre 1024 et 65535. N'utilisez pas les ports 24224, 8446 et 8447.

        • Port de vérification de l'état : port sur lequel écoute le conteneur HEALTHCHECK. La valeur par défaut est le port du serveur. Le port peut être compris entre 1024 et 65535. N'utilisez pas les ports 24224, 8446 et 8447.

      4. (Facultatif) Dans la section Balises, ajoutez des balises au <resourceType>. Si vous êtes autorisé à créer une ressource, vous disposez également des droits d'accès nécessaires pour lui appliquer des balises à forme libre. Pour appliquer une balise defined, vous devez être autorisé à utiliser la balise namespace. Pour plus d'informations sur le balisage, reportez-vous à Balises de ressource. Si vous n'êtes pas sûr d'appliquer des balises, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des balises ultérieurement.
    12. Sélectionnez Créer.
  • Vous pouvez utiliser l'interface de ligne de commande OCI pour créer un déploiement de modèle comme dans cet exemple.

    1. Déployez le modèle :
      oci data-science model-deployment create \
      --compartment-id <MODEL_DEPLOYMENT_COMPARTMENT_OCID> \
      --model-deployment-configuration-details file://<MODEL_DEPLOYMENT_CONFIGURATION_FILE> \
      --project-id <PROJECT_OCID> \
      --category-log-details file://<OPTIONAL_LOGGING_CONFIGURATION_FILE> \
      --display-name <MODEL_DEPLOYMENT_NAME>
    2. Utilisez le fichier de configuration JSON de déploiement de modèle suivant :
      {
            "deploymentType": "SINGLE_MODEL",
            "modelConfigurationDetails": {
              "bandwidthMbps": <YOUR_BANDWIDTH_SELECTION>,
              "instanceConfiguration": {
                "instanceShapeName": "<YOUR_VM_SHAPE>"
              },
              "modelId": "<YOUR_MODEL_OCID>",
              "scalingPolicy": {
                  "instanceCount": <YOUR_INSTANCE_COUNT>,
                  "policyType": "FIXED_SIZE"
               }
           }
       }

      Si vous indiquez une configuration d'environnement, vous devez inclure l'objet environmentConfigurationDetails comme dans cet exemple :

      
      {
        "modelDeploymentConfigurationDetails": {
          "deploymentType": "SINGLE_MODEL",
          "modelConfigurationDetails": {
            "modelId": "ocid1.datasciencemodel.oc1.iad........",
            "instanceConfiguration": {
              "instanceShapeName": "VM.Standard.E4.Flex",
              "modelDeploymentInstanceShapeConfigDetails": {
                "ocpus": 1,
                "memoryInGBs": 16
              }
            },
            "scalingPolicy": {
              "policyType": "FIXED_SIZE",
              "instanceCount": 1
            },
            "bandwidthMbps": 10
          },
          "environmentConfigurationDetails" : {
            "environmentConfigurationType": "OCIR_CONTAINER",
            "image": "iad.ocir.io/testtenancy/image_name:1.0.0",
            "entrypoint": [
              "python",
              "/opt/entrypoint.py"
            ],
            "serverPort": "5000",
            "healthCheckPort": "5000"
          },
          "streamConfigurationDetails": {
            "inputStreamIds": null,
            "outputStreamIds": null
          }
        }
      }
    3. (Facultatif) Utilisez le fichier de configuration JSON de journalisation suivant :
      {
          "access": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          },
          "predict": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          }
      }
    4. (Facultatif) Utilisez cette option pour utiliser un conteneur personnalisé :
      oci data-science model-deployment create \
      --compartment-id <MODEL_DEPLOYMENT_COMPARTMENT_OCID> \
      --model-deployment-configuration-details file://<MODEL_DEPLOYMENT_CONFIGURATION_FILE> \
      --project-id <PROJECT_OCID> \
      --category-log-details file://<OPTIONAL_LOGGING_CONFIGURATION_FILE> \
      --display-name <MODEL_DEPLOYMENT_NAME>
  • Utilisez l'opération CreateModelDeployment pour créer un déploiement de modèle.

Utilisation du kit SDK Python OCI

Nous avons développé un exemple de déploiement de modèle via le kit SDK Python OCI qui inclut l'authentification.

Important

Les artefacts dépassant 400 Go ne sont pas pris en charge pour le déploiement. Sélectionnez un artefact de modèle plus petit pour le déploiement.
Remarque

Vous devez mettre à niveau le kit SDK OCI vers la version 2.33.0 ou ultérieure avant de créer un déploiement avec le kit SDK Python. Pour ce faire, utilisez la commande suivante :

pip install --upgrade oci

Utilisez cet exemple pour créer un déploiement de modèle qui utilise un conteneur personnalisé :

# create a model configuration details object
model_config_details = ModelConfigurationDetails(
    model_id=<model-id>,
    bandwidth_mbps=<bandwidth-mbps>,
    instance_configuration=<instance-configuration>,
    scaling_policy=<scaling-policy>
)
 
# create the container environment configiguration
environment_config_details = OcirModelDeploymentEnvironmentConfigurationDetails(
    environment_configuration_type="OCIR_CONTAINER",
    environment_variables={'key1': 'value1', 'key2': 'value2'},
    image="iad.ocir.io/testtenancy/ml_flask_app_demo:1.0.0",
    image_digest="sha256:243590ea099af4019b6afc104b8a70b9552f0b001b37d0442f8b5a399244681c",
    entrypoint=[
        "python",
        "/opt/ds/model/deployed_model/api.py"
    ],
    server_port=5000,
    health_check_port=5000
)
 
# create a model type deployment
single_model_deployment_config_details = data_science.models.SingleModelDeploymentConfigurationDetails(
    deployment_type="SINGLE_MODEL",
    model_configuration_details=model_config_details,
    environment_configuration_details=environment_config_details
)
 
# set up parameters required to create a new model deployment.
create_model_deployment_details = CreateModelDeploymentDetails(
    display_name=<deployment_name>,
    model_deployment_configuration_details=single_model_deployment_config_details,
    compartment_id=<compartment-id>,
    project_id=<project-id>
)

Exemples de bloc-notes

Nous fournissons divers exemples de bloc-notes qui vous montrent comment entraîner, préparer, enregistrer, déployer et appeler des déploiements de modèle.