Réseau par défaut

Créez un déploiement de modèle à l'aide de la configuration de réseau par défaut. Vous pouvez choisir entre deux modes : l'un avec accès Internet activé et l'autre avec accès Internet désactivé.

La charge de travail se connecte à l'aide d'une carte VNIC secondaire à un réseau en nuage virtuel (VCN) et à un sous-réseau préconfigurés gérés par le service. Le sous-réseau fourni donne accès à d'autres services Oracle Cloud au moyen d'une passerelle de service, mais pas à l'Internet public. Si vous activez le réseau par défaut avec Internet, le sous-réseau fournit également un chemin facultatif vers l'Internet public au moyen d'une passerelle NAT gérée par OCI.

Si vous avez besoin d'accéder uniquement aux services OCI, nous vous recommandons d'utiliser cette option. Vous n'avez pas besoin de créer des ressources de réseau ni d'écrire des politiques pour les autorisations de 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, de la trousse SDK Python pour OCI, de l'interface de ligne de commande OCI ou de l'API du service de science des données.

    1. Dans 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, voir Liste des déploiements de modèle.
    2. (Facultatif) Entrez un nom unique pour le modèle (255 caractères au maximum). Si vous ne fournissez pas de nom, un nom est automatiquement généré.

      Par exemple modeldeployment20200108222435.

    3. (Facultatif) Entrez une description (limite de 400 caractères) pour le 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 dans le catalogue de modèles.
      1. Recherchez un modèle en utilisant le compartiment et le projet par défaut, ou en sélectionnant Utilisation de l'OCID et en recherchant le modèle en entrant son OCID.
      2. Sélectionnez le modèle.
      3. Sélectionnez Soumettre.
      Important

      Les artefacts de modèle qui dépassent 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 du service de calcul en sélectionnant Modifier la forme. Suivez ensuite ces étapes dans le panneau Sélectionner le service de calcul.
      1. Sélectionner un type d'instance.
      2. Sélectionnez une série de formes.
      3. Sélectionnez une des formes de calcul prises en charge dans la série.
      4. Sélectionnez la forme qui convient le mieux à l'utilisation souhaitée 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 de 1 Go ou une valeur correspondant au nombre d'OCPU, selon la valeur la plus élevée.

      5. Si vous utilisez des machines virtuelles à capacité extensible, activez/désactivez Burstable.
        Dans Utilisation de référence par OCPU, sélectionnez le pourcentage d'OCPU que vous voulez généralement utiliser. Les valeurs prises en charge sont 12,5 % et 50 %.
      6. Sélectionnez Sélectionner une forme.
    7. Entrez le nombre d'instances sur lesquelles le déploiement réplique le modèle.
    8. Sélectionnez une des ressources de réseau suivantes :
      • Réseau par défaut : Restreint le trafic vers les services Oracle uniquement.
      • Réseau par défaut avec Internet : Autorise l'accès Internet sortant au moyen de la passerelle NAT du service de science des données.
        Note

        Vous ne pouvez pas utiliser le réseau par défaut avec Internet dans des domaines déconnectés et des locations de développement Oracle.

        Si votre location ou compartiment a une politique de zone de sécurité du service de science des données qui refuse l'accès au réseau public (par exemple, deny model_deploy_public_network—voir Politique de zone de sécurité du service de science des données), l'option d'accès à l'Internet public géré par le service est désactivée. Si vous essayez d'utiliser cette option, vous recevez une erreur 404 NotAuthorizedOrNotFound.

    9. Sélectionnez l'une des options suivantes pour configurer le type de point d'extrémité :
      • Public endpoint : Active l'accès aux données à une instance gérée à partir d'un réseau en nuage virtuel (VCN).
      • Private endpoint : Spécifie le point d'extrémité privé à utiliser pour le déploiement de modèle.

        Les déploiements qui utilisent un réseau privé ou des points d'extrémité privés ne peuvent pas activer l'accès à Internet public géré par le service.

      Si vous sélectionnez Private endpoint, sélectionnez Private Endpoint dans Point d'extrémité privé dans le service de science des données.

      Sélectionnez Changer de compartiment pour sélectionner le compartiment qui contient le point d'extrémité privé.

    10. (Facultatif) Si vous configurez la journalisation des accès ou des prédictions, dans la section Journalisation, sélectionnez Sélectionner, puis suivez les étapes suivantes :
      1. Pour les journaux d'accès, sélectionner un compartiment, un groupe de journaux et un nom de journal.
      2. Pour les journaux de prédiction, sélectionner 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 marqueurs.
      1. (Facultatif) Sélectionnez le mode de service pour le déploiement de modèle, en tant que point d'extrémité HTTPS ou à l'aide d'un flux de service de diffusion en continu.
      2. (Facultatif) Sélectionnez la bande passante d'équilibrage de charge en Mbps ou utilisez la valeur par défaut de 10 Mbps.

        Conseils pour l'équilibrage de charge

        Si vous connaissez la taille commune des données utiles et la fréquence des demandes par seconde, vous pouvez utiliser la formule suivante pour évaluer la bande passante de l'équilibreur de charge dont vous avez besoin. Nous vous recommandons d'ajouter un supplément de 20 % pour prendre en compte les erreurs d'estimation et le trafic de pointe sporadique.

        (Taille des données utiles en Ko) * (Demandes estimées par seconde) * 8 / 1 024

        Par exemple, si les données utiles sont de 1 024 Ko et que vous estimez 120 demandes par seconde, la bande passante recommandée pour l'équilibreur de charge serait (1024 * 120 * 8 / 1024) * 1,2 = 1152 Mbps.

        N'oubliez pas que la taille maximale des données utiles prise en charge est de 10 Mo lors du traitement des données utiles d'image.

        Si la taille des données utiles de la demande est supérieure à la bande passante affectée de l'équilibreur de charge défini, la demande est rejetée avec un code de statut 429.

      3. (Facultatif) Sélectionnez Utiliser une image de conteneur personnalisée et entrez ce qui suit :
        • Référentiel dans <tenancy> : Entrez le référentiel qui contient l'image personnalisée.

        • Image : Entrez l'image personnalisée à utiliser lors de l'exécution.

        • Condensé d'image : Entrez le condensé d'image. Par exemple : sha256:<digest>. Le condensé doit correspondre à l'image exacte que vous déployez.
        • ID signature de l'image : Entrez l'OCID de signature de l'image généré lors de la signature de l'image. Pour plus d'informations sur le processus de signature, voir Signature d'images à des fins de sécurité.

          L'entrée de signature est facultative, sauf si votre location ou votre politique applique la vérification de signature d'image pour les images personnalisées. Si la vérification est appliquée, vous devez fournir tous les champs de signature obligatoires. Sinon, le déploiement ne se poursuivra pas.

          Si la vérification échoue, la console affiche une erreur telle que "La signature <ID> n'est pas vérifiée." ou "Le numérique de l'image fournie ne correspond pas au condensé de la signature". Dans ce cas, la création du déploiement de modèle est bloquée.

        • CMD : Entrez des commandes pour le conteneur, une commande par zone de texte. Par exemple, entrez --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 : Entrez un ou plusieurs fichiers de point 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 : Entrez le port du serveur Web d'inférence. La valeur par défaut est 8080. Intervalle valide : 1024-65535, sauf 24224, 8446, 8447.

        • Port de vérification de l'état : Entrez le port de la vérification de l'état du conteneur. La valeur par défaut est le port du serveur. Intervalle valide : 1024-65535, sauf 24224, 8446, 8447.

      4. (Facultatif) Dans la section Marqueurs, ajoutez un ou plusieurs marqueurs au déploiement de modèle. Si vous êtes autorisé à créer une ressource, vous disposez également des autorisations nécessaires pour appliquer des marqueurs à structure libre à cette ressource. Pour appliquer un marqueur défini, vous devez disposer des autorisations nécessaires pour utiliser l'espace de noms du marqueur. Pour plus d'informations sur le marquage, voir Marqueurs de ressource. Si vous ne savez pas si vous devez appliquer des marqueurs, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des marqueurs plus tard.
    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 avec :
      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 ce fichier de configuration JSON de déploiement de modèle :
      {
            "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 spécifiez 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",
            "imageDigest": "sha256:a9c8468cb671929aec7ad947b9dccd6fe8e6d77f7bcecfe2e10e1c935a88c2a5",
            "imageSignatureId": "ocid1.containerimagesignature.oc1.iad.0.ociodscprod.aaaaaaaavkjvrldo4etdpdas3o5vuom3t6anoixneey737cr57if7jhkh6nq",
            "entrypoint": [
              "python",
              "/opt/entrypoint.py"
            ],
            "serverPort": "5000",
            "healthCheckPort": "5000"
          },
          "streamConfigurationDetails": {
            "inputStreamIds": null,
            "outputStreamIds": null
          }
        }
      }
      Note

      Le champ imageSignatureId est facultatif.
    3. (Facultatif) Utilisez ce fichier de configuration JSON de journalisation :
      {
          "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 de la trousse SDK Python pour OCI

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

Important

Les artefacts supérieurs à 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.
Note

Vous devez mettre à niveau la trousse SDK pour OCI vers la version 2.3.0 ou ultérieure avant de créer un déploiement avec la trousse SDK Python. 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 carnets

Nous avons fourni des divers exemples de carnets qui montrent comment entraîner, préparer, enregistrer, déployer et appeler des déploiements de modèle.