Rede Padrão

Criar uma implantação de modelo no serviço Data Science usando a configuração de rede padrão. Você pode escolher entre dois modos: um com acesso à internet ativado e outro com acesso à internet desativado.

A carga de trabalho se conecta usando uma VNIC secundária a uma rede virtual na nuvem (VCN) e uma sub-rede pré-configuradas e gerenciadas pelo serviço. A sub-rede fornecida dá acesso a outros serviços do Oracle Cloud por meio de um gateway de serviço, mas não à internet pública. Se você ativar a Rede padrão com internet, a sub-rede também fornecerá um caminho opcional para a internet pública por meio de um gateway NAT gerenciado pelo OCI.

Se você precisar de acesso apenas aos serviços do OCI, recomendamos o uso dessa opção. Não é necessário criar recursos de rede ou gravar políticas para permissões de rede.

Você pode criar e executar implantações de modelo de rede padrão usando a Console, o OCI Python SDK, a CLI do OCI ou a API do Data Science.

    1. Na página de lista Projetos, selecione o projeto que contém as implantações de modelo com as quais você deseja trabalhar. Se precisar de ajuda para localizar a página da lista ou o projeto, consulte Listando Projetos.
    2. Na página de detalhes do projeto, selecione Implantações de modelo.
    3. Selecione Criar implantação de modelo.
    4. Na página Criar implantação de modelo, especifique as informações a seguir.
      • Compartimento
      • Name (Opcional): Informe um nome exclusivo para a implantação de modelo (limite de 255 caracteres). Caso você não forneça um nome, um nome é gerado automaticamente. Exemplo: modeldeployment20200108222435
      • Descrição (Opcional): Informe uma descrição (limite de 400 caracteres) para a implantação do modelo.
      • Chave de variável de ambiente personalizada (Opcional): Informe uma chave de variável de ambiente personalizada.
      • Valor (Opcional): Informe o valor da chave.
      • Modelos: Selecione Selecionar para abrir o painel Selecionar modelos, selecione a opção relevante e, em seguida, selecione Submeter para fechar o painel.
        Importante

        Não há suporte para a implantação de artefatos de modelo que excedam 400 GB. Selecione um artefato de modelo menor para implantação.
        • Modelo Único: Localize o modelo com Selecionar um compartimento de modelo (especificar compartimento e projeto) ou Usando OCID e selecione o modelo na lista.
        • Grupos de Modelos: Especifique o compartimento e o projeto e selecione o grupo de modelos na lista.
      • Altere a forma de Computação selecionando Alterar forma. Em seguida, siga estas etapas no painel Selecionar forma de computação.
        • Selecione um tipo de instância.
        • Selecione uma série de formas.
        • Selecione uma das formas de Computação suportadas na série. Selecione a forma que melhor se adapte à forma como deseja usar o recurso.
        • Expanda a forma selecionada para configurar OCPUs e memória.
          • Número de OCPUs
          • Quantidade de memória (GB): Para cada OCPU, selecione até 64 GB de memória e um total máximo de 512 GB. A quantidade mínima de memória permitida é 1 GB ou um valor correspondente ao número de OCPUs, o que for maior.
          • Ativar Forma Expansível: Selecione se estiver usando VMs expansíveis e, em seguida, para Utilização da linha de base por OCPU, selecione a porcentagem de OCPUs que você geralmente deseja usar. Os valores suportados são 12,5% e 50%. (Para implantações de modelo, somente o valor de 50% é suportado.)
        • Selecione Selecionar forma.
      • Número de instâncias: Informe o número de instâncias nas quais a implantação de modelo será replicada.
      • Configuração de dimensionamento automático (Opcional): Selecione Ativar dimensionamento automático e especifique as seguintes informações.
        • Número mínimo de instâncias
        • Número máximo de instâncias
        • Período de resfriamento em segundos
        • Tipo de métrica de dimensionamento

          Para usar a opção de métrica de dimensionamento personalizada, selecione Personalizado e especifique as consultas de expansão e expansão.

          Importante

          Inclua o seguinte texto em cada consulta MQL para fazer referência ao OCID do recurso: {resourceId = "MODEL_DEPLOYMENT_OCID"}
        • Limite de redução em porcentagem
        • Limite de expansão em porcentagem
        • Opções avançadas (Opcional): Dimensionamento automático do balanceador de carga. Defina o valor da largura de banda máxima para ser maior que o valor mínimo da largura de banda e não mais que o dobro do valor mínimo da largura de banda.
          • Etapa de contagem de instâncias de redução horizontal
          • Etapa de expansão de contagem de instâncias
      • Recursos de rede: Selecione a opção relevante para a rede padrão.
        • Rede Padrão: Restringe o tráfego somente aos serviços Oracle. O sistema usa a rede existente gerenciada pelo serviço. A carga de trabalho é anexada usando uma VNIC secundária a uma VCN e sub-rede pré-configuradas gerenciadas pelo serviço. Essa sub-rede fornecida possibilita a saída para a internet pública por meio de um gateway NAT e o acesso a outros serviços doOracle Cloud por meio de um gateway de serviço.

          Se você precisar de acesso apenas à internet pública e aos serviços da OCI, recomendamos o uso dessa opção. Não é necessário criar recursos de rede ou gravar políticas para permissões de rede.

        • Rede padrão com internet: Permite acesso de saída à internet por meio do gateway NAT do serviço Data Science.
          Observação

          Você não pode usar Rede padrão com internet em realms desconectados e tenancies de desenvolvimento da Oracle. Se sua tenancy ou compartimento tiver uma política de zona de segurança do serviço Data Science que negue acesso à rede pública (por exemplo, deny model_deploy_public_network — consulte Política de zona de segurança do serviço Data Science), a opção de acesso à internet pública gerenciada pelo serviço será desativada. Se você tentar usar essa opção, receberá um erro 404 NotAuthorizedOrNotFound.
      • Tipo de ponto final: Selecione a opção relevante.
        • Ponto final público: Permite o acesso a dados para uma instância gerenciada de fora de uma VCN (rede virtual na nuvem).
        • Ponto final privado: Especifica o ponto final privado a ser usado para a implantação de modelo. As implantações que usam rede privada ou pontos finais privados não podem ativar o acesso à internet pública gerenciado pelo serviço.
          • Compartimento de ponto final privado
          • Ponto final privado
      • Log (Opcional): Selecione Selecionar para abrir o painel Selecionar log, insira as informações a seguir e selecione Submeter para fechar o painel.
        Observação

        O registro em log requer acesso configurado ou registro em log de previsão.
        • Para log de acesso, selecione um compartimento, um grupo de log e um nome de log.
        • Para logs de predição, selecione um compartimento, um grupo de log e um nome de log.
      • Defina seu ambiente BYOC (em Usar uma Imagem de Contêiner Personalizada) (Opcional): Selecione Selecionar para abrir o painel Definir seu ambiente BYOC, especifique as seguintes informações e selecione Selecionar novamente para fechar o painel.
        • Compartimento do repositório
        • Repositório: Informe o repositório que contém a imagem personalizada.
        • Imagem: Informe a imagem personalizada a ser usada no runtime.
        • Digest: Informe a compilação da imagem. Por exemplo: sha256:<digest>. A compilação deve corresponder à imagem exata que você está implantando.
        • Ponto de Entrada: Informe um ou mais arquivos de ponto de entrada para execução quando o contêiner for iniciado, como /opt/script/entrypoint.sh. Não use aspas no final.
        • Porta do servidor: Informe a porta do servidor Web de inferência. O padrão é 8080. de Faixa válida: 1024–65535, exceto 24224, 8446, 8447.
        • Porta de verificação de integridade: Informe a porta para a verificação de integridade do contêiner. O padrão é a porta do servidor. Faixa válida: 1024–65535, exceto 24224, 8446, 8447.
      • Modo de disponibilização (em Opções avançadas) (Opcional): Selecione a largura da banda de balanceamento da carga em Mbps ou use o padrão 10 Mbps.

        Dicas de balanceamento de carga:

        Se você souber o tamanho do payload comum e a frequência de solicitações por segundo, poderá usar a fórmula a seguir para estimar a largura de banda do balanceador de carga necessário. Recomendamos que você adicione mais 20% para levar em conta os erros de estimativa e o tráfego de pico esporádico.

        (Tamanho do payload em KB) * (Solicitações estimadas por segundo) * 8 / 1024

        Por exemplo, se o payload for de 1.024 KB e você estimar 120 solicitações por segundo, a largura de banda do balanceador de carga recomendada será (1024 * 120 * 8 / 1024) * 1.2 = 1152 Mbps.

        Lembre-se de que o tamanho máximo de payload suportado é de 10 MB ao lidar com payloads de imagem.

        Se o tamanho do payload da solicitação for maior que a largura de banda alocada do balanceador de carga definido, a solicitação será rejeitada com um código de status 429.

      • Tags (em Opções avançadas) (Opcional): Adicione tags à implantação de modelo. Se você tiver permissões para criar um recurso, também terá permissões para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deve ter permissões para usar o namespace da tag. Para obter mais informações sobre tags, consulte Tags de Recursos. Se você não tiver certeza se deseja aplicar tags, ignore essa opção ou pergunte a um administrador. Você pode aplicar as tags posteriormente.
    5. Selecione Criar.
  • Você pode usar a CLI do OCI para criar uma implantação de modelo como neste exemplo.

    1. Implante o modelo com:
      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. Use este arquivo de configuração JSON de implantação de modelo:
      {
            "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 estiver especificando uma configuração de ambiente, você deverá incluir o objeto environmentConfigurationDetails como neste exemplo:

      
      {
        "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
          }
        }
      }
      Observação

      O campo imageSignatureId é opcional.
    3. (Opcional) Use este arquivo de configuração JSON de registro em log:
      {
          "access": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          },
          "predict": {
            "logGroupId": "<YOUR_LOG_GROUP_OCID>",
            "logId": "<YOUR_LOG_OCID>"
          }
      }
    4. (Opcional) Use essa opção para usar um contêiner personalizado:
      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>
                                      
  • Use a operação CreateModelDeployment para criar uma implantação de modelo.

Usando o OCI Python SDK

Desenvolvemos um exemplo de implantação de modelo OCI Python que inclui autenticação.

Importante

Artefatos que excedem 400 GB não são suportados para implantação. Selecione um artefato de modelo menor para implantação.
Observação

Faça upgrade do OCI SDK para a versão 2.33.0 ou mais recente antes de criar uma implantação com o Python SDK. Use o seguinte comando:

pip install --upgrade oci

Use este exemplo para criar uma implantação de modelo que use um contêiner personalizado:

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

Exemplos de Notebooks

Fornecemos vários exemplos de notebook que mostram como treinar, preparar, salvar, implantar e chamar implantações de modelo.