Mise en réseau par défaut

Créez un déploiement de modèle à l'aide de la configuration 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 globale se connecte à l'aide d'une carte d'interface réseau virtuelle secondaire à un réseau cloud virtuel (VCN) et à un sous-réseau préconfigurés et gérés par le service. Le sous-réseau fourni donne accès à d'autres services Oracle Cloud via une passerelle de service, mais pas au réseau Internet public. Si vous activez la mise en réseau par défaut avec Internet, le sous-réseau fournit également un chemin facultatif vers le réseau Internet public via 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. 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. Si vous utilisez des machines virtuelles éclatables, basculez sur Burstable.
        Dans Utilisation de référence par OCPU, sélectionnez le pourcentage d'OCPU que vous souhaitez 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 répliquer le modèle pour le déploiement de modèle.
    8. Sélectionnez l'une des ressources réseau suivantes :
      • Mise en réseau par défaut : limite le trafic aux services Oracle uniquement.
      • Mise en réseau par défaut avec Internet : autorise l'accès Internet sortant via la passerelle NAT Data Science.
        Remarque

        Vous ne pouvez pas utiliser la mise en réseau par défaut avec Internet dans les domaines déconnectés et les locations de développement Oracle.

        Si votre location ou votre compartiment dispose d'une stratégie de zone de sécurité Data Science qui refuse l'accès au réseau public (par exemple, deny model_deploy_public_network - Reportez-vous à Stratégie de zone de sécurité Data Science), l'option d'accès 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 d'adresse :
      • Public endpoint : permet l'accès aux données d'une instance gérée depuis l'extérieur d'un réseau cloud virtuel (VCN).
      • Private endpoint : indique l'adresse privée à utiliser pour le déploiement de modèle.

        Les déploiements qui utilisent des réseaux privés ou des adresses privées 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 Adresse privée dans Data Science.

      Sélectionnez Modifier le compartiment pour sélectionner le compartiment qui contient 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 procédez comme suit :
      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> : 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>. La synthèse doit correspondre à l'image exacte que vous déployez.
        • ID de signature d'image : entrez l'OCID de signature d'image généré lors de la signature de l'image. Pour plus d'informations sur le processus de signature, reportez-vous à Signature d'images pour la sécurité.

          L'entrée de signature est facultative, sauf si votre location ou stratégie 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 requis. Sinon, le déploiement ne se poursuivra pas.

          Si la vérification échoue, la console affiche une erreur telle que "Signature <ID> is not Verified" ou "Digest of the image provided does not match the digest on the 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 de serveur : entrez le port du serveur Web d'inférence. La valeur par défaut est 8080. Plage 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. Plage valide : 1024–65535, sauf 24224, 8446, 8447.

      4. (Facultatif) Dans la section Balises, ajoutez des balises au déploiement de modèle. Si vous disposez des droits d'accès nécessaires pour créer une ressource, vous disposez également de droits d'accès permettant d'appliquer des balises à format libre à cette ressource. Pour appliquer une balise defined, vous devez disposer des droits d'accès permettant d'utiliser l'espace de noms de balise. Pour plus d'informations sur le balisage, reportez-vous à Balises de ressource. Si vous n'êtes pas certain 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",
            "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
          }
        }
      }
      Remarque

      Le champ imageSignatureId est facultatif.
    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.