Networking predefinito

Creare una distribuzione modello utilizzando la configurazione di rete predefinita. È possibile scegliere tra due modalità: una con accesso a Internet abilitato e una con accesso a Internet disabilitato.

Il carico di lavoro si connette utilizzando una VNIC secondaria a una rete cloud virtuale (VCN) e a una subnet preconfigurate gestite dal servizio. La subnet fornita fornisce l'accesso ad altri servizi Oracle Cloud tramite un gateway di servizi, ma non alla rete Internet pubblica. Se si abilita la rete predefinita con Internet, la subnet fornisce anche un percorso facoltativo alla rete Internet pubblica tramite un gateway NAT gestito da OCI.

Se hai bisogno di accedere solo ai servizi OCI, ti consigliamo di utilizzare questa opzione. Non richiede la creazione di risorse di rete o la scrittura di criteri per le autorizzazioni di rete.

Puoi creare ed eseguire distribuzioni di modelli di rete predefiniti utilizzando la console, l'SDK Python OCI, l'interfaccia CLI OCI o l'API Data Science.

    1. Nella pagina Distribuzioni modello, selezionare Crea distribuzione modello. Se è necessaria assistenza per trovare l'elenco delle distribuzioni di modelli, vedere Elenca distribuzioni di modelli.
    2. (Facoltativo) Immettere un nome univoco per il modello (limite di 255 caratteri). Se non si specifica un nome, viene generato automaticamente un nome.

      Ad esempio, modeldeployment20200108222435.

    3. (Facoltativo) Immettere una descrizione (limite di 400 caratteri) per la distribuzione del modello.
    4. (Facoltativo) In Configurazione predefinita, immettere una chiave di variabile di ambiente personalizzata e il valore corrispondente. Selezionare + Tasto di ambiente personalizzato aggiuntivo per aggiungere altre variabili di ambiente.
    5. Nella sezione Modelli, selezionare Seleziona per selezionare un modello attivo da distribuire dal catalogo modelli.
      1. Trovare un modello utilizzando il compartimento e il progetto predefiniti oppure selezionando Utilizzo dell'OCID e cercando il modello immettendo il relativo OCID.
      2. Selezionare il modello.
      3. Selezionare Sottometti.
      Importanti

      Gli artifact di modello che superano i 400 GB non sono supportati per la distribuzione. Selezionare un artifact modello più piccolo per la distribuzione.
    6. (Facoltativo) Modificare la forma di computazione selezionando Modifica forma. Attenersi quindi alla procedura descritta di seguito nel pannello Select compute.
      1. Selezionare un tipo di istanza.
      2. Selezionare una serie di forme.
      3. Selezionare una delle forme di computazione supportate nella serie.
      4. Selezionare la forma più adatta a come si desidera utilizzare la risorsa.

        Per ciascuna OCPU, selezionare fino a 64 GB di memoria e un totale massimo di 512 GB. La quantità minima di memoria consentita è 1 GB o un valore corrispondente al numero di OCPU, a seconda di quale delle due è maggiore.

      5. Se si utilizzano VM espandibili, attivare/disattivare Esegui espandibile.
        In Utilizzo di base per OCPU selezionare la percentuale di OCPU che in genere si desidera utilizzare. I valori supportati sono 12,5% e 50%.
      6. Selezionare Seleziona forma.
    7. Immettere il numero di istanze per la distribuzione del modello su cui replicare il modello.
    8. Selezionare una delle risorse di rete riportate di seguito.
      • Networking predefinito: limita solo il traffico verso i servizi Oracle.
      • Networking predefinito con Internet: consente l'accesso a Internet in uscita tramite il gateway NAT di Data Science.
        Nota

        Non è possibile utilizzare la rete predefinita con Internet nei realm disconnessi e nelle tenancy di sviluppo Oracle.

        Se la tenancy o il compartimento in uso dispone di un criterio della zona di sicurezza di Data Science che nega l'accesso alla rete pubblica (ad esempio, deny model_deploy_public_network, vedere Criterio della zona di sicurezza di Data Science), l'opzione di accesso alla rete Internet pubblica gestita dal servizio è disabilitata. Se si tenta di utilizzare questa opzione, viene visualizzato un errore 404 NotAuthorizedOrNotFound.

    9. Selezionare una delle opzioni riportate di seguito per configurare il tipo di endpoint.
      • Public endpoint: consente l'accesso ai dati a un'istanza gestita dall'esterno di una rete cloud virtuale (VCN, Virtual Cloud Network).
      • Private endpoint: specifica l'endpoint privato da utilizzare per la distribuzione del modello.

        Le distribuzioni che utilizzano reti private o endpoint privati non possono abilitare l'accesso a Internet pubblico gestito dal servizio.

      Se si seleziona Private endpoint, selezionare Private Endpoint da Endpoint privato in Data Science.

      Selezionare Modifica compartimento per selezionare il compartimento che contiene l'endpoint privato.

    10. (Facoltativo) Se si configura l'accesso o la previsione del log, nella sezione Log selezionare Seleziona, quindi effettuare le operazioni riportate di seguito.
      1. Per i log degli accessi, selezionare un compartimento, un gruppo di log e un nome di log.
      2. Per i log di previsione, selezionare un compartimento, un gruppo di log e un nome di log.
      3. Selezionare Sottometti.
    11. (Facoltativo) Selezionare Mostra opzioni avanzate per aggiungere tag.
      1. (Facoltativo) Selezionare la modalità di servizio per la distribuzione del modello, come endpoint HTTPS o utilizzando un flusso di servizi di streaming.
      2. (Facoltativo) Selezionare la larghezza di banda di bilanciamento del carico in Mbps o utilizzare l'impostazione predefinita 10 Mbps.

        Suggerimenti per il bilanciamento del carico:

        Se si conoscono la dimensione del payload comune e la frequenza delle richieste al secondo, è possibile utilizzare la formula riportata di seguito per stimare la larghezza di banda del load balancer di cui si ha bisogno. Ti consigliamo di aggiungere un ulteriore 20% per tenere conto degli errori di stima e dei picchi di traffico sporadici.

        (Dimensione payload in KB) * (Richieste stimate al secondo) * 8 / 1024

        Ad esempio, se il payload è di 1.024 KB e si stimano 120 richieste al secondo, la larghezza di banda consigliata per il load balancer sarà (1024 * 120 * 8 / 1024) * 1,2 = 1152 Mbps.

        Tenere presente che la dimensione massima del payload supportato è di 10 MB quando si tratta di payload di immagini.

        Se la dimensione del payload della richiesta è maggiore della larghezza di banda allocata del load balancer definito, la richiesta viene rifiutata con un codice di stato 429.

      3. (Facoltativo) Selezionare Usa immagine contenitore personalizzata e immettere quanto segue:
        • Repository in <tenancy>: immettere il repository contenente l'immagine personalizzata.

        • Immagine: immettere l'immagine personalizzata da utilizzare in runtime.

        • Immagine digest: immettere il digest immagine. Ad esempio: sha256:<digest>. Il digest deve corrispondere all'immagine esatta che si sta distribuendo.
        • ID firma immagine: immettere l'OCID firma immagine generato quando si firma l'immagine. Per ulteriori informazioni sul processo di firma, vedere Firma di immagini per la sicurezza.

          La voce relativa alla firma è facoltativa, a meno che la tenancy o il criterio non applichi la verifica della firma dell'immagine per le immagini personalizzate. Se la verifica viene applicata, è necessario fornire tutti i campi della firma obbligatori. In caso contrario, la distribuzione non continuerà.

          Se la verifica non riesce, nella console viene visualizzato un errore come "Firma <ID> non verificata" o "Il digest dell'immagine fornita non corrisponde al digest sulla firma". In questo caso, la creazione della distribuzione del modello è bloccata.

        • CMD: immettere i comandi per il contenitore, un comando per casella di testo. Ad esempio, immettere --host in una casella di testo e 0.0.0.0 in un'altra. Non utilizzare le virgolette alla fine.

        • Punto di ingresso: immettere uno o più file del punto di ingresso da eseguire all'avvio del contenitore, ad esempio /opt/script/entrypoint.sh. Non utilizzare le virgolette alla fine.

        • Porta server: immettere la porta per il server Web di inferenza. L'impostazione predefinita è 8080. Intervallo valido: 1024-65535, tranne 24224, 8446, 8447.

        • Porta di controllo dell'integrità: immettere la porta per il controllo dello stato del contenitore. L'impostazione predefinita è la porta server. Intervallo valido: 1024-65535, tranne 24224, 8446, 8447.

      4. (Facoltativo) Nella sezione Tag aggiungere una o più tag alla distribuzione del modello. Se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare tag in formato libero a tale risorsa. Per applicare una tag defined, è necessario disporre delle autorizzazioni per utilizzare la tag namespace. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non sei sicuro di applicare i tag, salta questa opzione o chiedi a un amministratore. È possibile applicare i tag in un secondo momento.
    12. Selezionare Crea.
  • È possibile utilizzare l'interfaccia CLI OCI per creare una distribuzione modello come in questo esempio.

    1. Distribuisce il modello con:
      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. Utilizzare questo file di configurazione JSON di distribuzione modello:
      {
            "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"
               }
           }
       }

      Se si specifica una configurazione di ambiente, è necessario includere l'oggetto environmentConfigurationDetails come nell'esempio riportato di seguito.

      
      {
        "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
          }
        }
      }
      Nota

      Il campo imageSignatureId è facoltativo.
    3. (Facoltativo) Utilizzare questo file di configurazione JSON di log:
      {
          "access": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          },
          "predict": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          }
      }
    4. (Facoltativo) Utilizzare questa opzione per utilizzare un contenitore personalizzato:
      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>
                                      
  • Utilizzare l'operazione CreateModelDeployment per creare una distribuzione del modello.

Uso dell'SDK Python OCI

Abbiamo sviluppato un esempio di distribuzione del modello di SDK OCI Python che include l'autenticazione.

Importante

Gli artifact che superano i 400 GB non sono supportati per la distribuzione. Selezionare un artifact modello più piccolo per la distribuzione.
Nota

Prima di creare una distribuzione con l'SDK Python, è necessario eseguire l'upgrade dell'SDK OCI alla versione 2.33.0 o successiva. Utilizzare il seguente comando:

pip install --upgrade oci

Utilizzare questo esempio per creare una distribuzione modello che utilizza un contenitore personalizzato.

# 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>
)

Esempi di notebook

Sono stati forniti vari esempi di notebook che mostrano come addestrare, preparare, salvare, distribuire e richiamare le distribuzioni di modelli.