Networking predefinito

Creare una distribuzione di modelli in Data Science 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 di elenco Progetti, selezionare il progetto contenente le distribuzioni del modello da utilizzare. Se è necessaria assistenza per trovare la pagina elenco o il progetto, vedere Elenca progetti.
    2. Nella pagina dei dettagli del progetto, selezionare Distribuzioni modello.
    3. Selezionare Crea distribuzione modello.
    4. Nella pagina Crea distribuzione modello, immettere le informazioni seguenti.
      • Compartimento
      • Nome (facoltativo): immettere un nome univoco per la distribuzione del modello (limite di 255 caratteri). Se non si fornisce un nome, il nome viene generato automaticamente. Esempio: modeldeployment20200108222435
      • Descrizione (facoltativo): immettere una descrizione (limite di 400 caratteri) per la distribuzione del modello.
      • Chiave variabile di ambiente personalizzata (facoltativo): immettere una chiave variabile di ambiente personalizzata.
      • Valore (facoltativo): immettere il valore per la chiave.
      • Modelli: selezionare Seleziona per aprire il pannello Seleziona modelli, selezionare l'opzione pertinente, quindi selezionare Sottometti per chiudere il pannello.
        Importante

        Gli artifact del modello che superano i 400 GB non sono supportati per la distribuzione. Selezionare un artifact di modello più piccolo per la distribuzione.
        • Modello singolo: trovare il modello con Selezionare un compartimento modello (specificare il compartimento e il progetto) oppure Utilizzare OCID, quindi selezionare il modello dalla lista.
        • Gruppi di modelli: specificare il compartimento e il progetto, quindi selezionare il gruppo di modelli dalla lista.
      • Modificare la forma di computazione selezionando Modifica forma. Quindi, attenersi alla procedura riportata di seguito nel pannello Seleziona forma di computazione.
        • Selezionare un tipo di istanza.
        • Selezionare una serie di forme.
        • Selezionare una delle forme di computazione supportate nella serie. Selezionare la forma più adatta a come si desidera utilizzare la risorsa.
        • Espandere la forma selezionata per configurare OCPU e memoria.
          • Numero di OCPU
          • Quantità di memoria (GB): per ogni OCPU, selezionare fino a 64 GB di memoria e un totale massimo di 512 GB. La quantità minima di memoria consentita è pari a 1 GB o a un valore corrispondente al numero di OCPU, a seconda di quale dei due valori è maggiore.
          • Abilita forma espandibile: selezionare questa opzione se si utilizzano VM espandibili, quindi per Utilizzo di base per OCPU selezionare la percentuale di OCPU che in genere si desidera utilizzare. I valori supportati sono 12,5% e 50%. (Per le distribuzioni di modelli, è supportato solo il valore del 50%).
        • Selezionare Seleziona forma.
      • Numero di istanze: immettere il numero di istanze per la distribuzione del modello su cui replicare il modello.
      • Configurazione scala automatica (facoltativo): selezionare Abilita scala automatica e immettere le seguenti informazioni.
        • Numero minimo di istanze
        • Numero massimo di istanze
        • Periodo di stabilizzazione in secondi
        • Tipo di metrica di ridimensionamento

          Per utilizzare l'opzione della metrica di ridimensionamento personalizzata, selezionare Personalizzato, quindi specificare le query di scale-in e scale-out.

          Importante

          Includere il testo seguente in ogni query MQL per fare riferimento all'OCID della risorsa: {resourceId = "MODEL_DEPLOYMENT_OCID"}
        • Soglia scale-in in percentuale
        • Soglia di scale out in percentuale
        • Opzioni avanzate (facoltativo): ridimensionamento automatico del load balancer. Impostare il valore della larghezza di banda massima in modo che sia maggiore del valore della larghezza di banda minima e non più del doppio del valore della larghezza di banda minima.
          • Conteggio istanze di scale in
          • Conteggio istanze di scale out
      • Risorse di networking: selezionare l'opzione pertinente per la rete predefinita.
        • Networking predefinito: limita solo il traffico verso i servizi Oracle. Il sistema utilizza la rete esistente gestita dal servizio. Il carico di lavoro viene collegato utilizzando una VNIC secondaria a una VCN e a una subnet preconfigurate e gestite dal servizio. Questa subnet fornita consente l'uscita alla rete Internet pubblica tramite un gateway NAT e l'accesso ad altri servizi Oracle Cloud tramite un gateway di servizi.

          Se hai bisogno dell'accesso solo alla rete Internet pubblica e 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.

        • 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 in realm disconnessi e 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.
      • Tipo di endpoint: selezionare l'opzione pertinente.
        • Endpoint pubblico: consente l'accesso ai dati a un'istanza gestita dall'esterno di una rete cloud virtuale (VCN).
        • Endpoint privato: 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.
          • Compartimento endpoint privato
          • Endpoint privato
      • Log (facoltativo): selezionare Seleziona per aprire il pannello Seleziona log, immettere le informazioni riportate di seguito, quindi selezionare Sottometti per chiudere il pannello.
        Nota

        La registrazione richiede l'accesso configurato o la previsione del log.
        • Per i log degli accessi, selezionare un compartimento, un gruppo di log e un nome di log.
        • Per i log di previsione, selezionare un compartimento, un gruppo di log e un nome di log.
      • Impostare l'ambiente BYOC (in Usa un'immagine contenitore personalizzata) (Facoltativo): selezionare Seleziona per aprire il pannello Impostare l'ambiente BYOC, immettere le informazioni riportate di seguito e selezionare di nuovo Seleziona per chiudere il pannello.
        • Compartimento repository
        • Repository: immettere il repository contenente l'immagine personalizzata.
        • Immagine: immettere l'immagine personalizzata da utilizzare in runtime.
        • Digest: immettere il digest dell'immagine. Ad esempio: sha256:<digest>. Il digest deve corrispondere all'immagine esatta che si sta distribuendo.
        • 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.
      • Modalità di distribuzione (in Opzioni avanzate) (Facoltativo): selezionare la larghezza di banda di bilanciamento del carico in Mbps o utilizzare l'impostazione predefinita di 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.

      • Tag (in Opzioni avanzate) (Facoltativo): aggiungere 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 le tag, salta questa opzione o chiedi a un amministratore. È possibile applicare le tag in un secondo momento.
    5. 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.