Criar uma instância usando um contêiner personalizado

Esta página descreve como criar uma instância do Vertex AI Workbench com base em um contêiner personalizado.

Informações gerais

As instâncias do Vertex AI Workbench aceitam o uso de um contêiner personalizado derivado de um contêiner base fornecido pelo Google. Você pode modificar esse contêiner base para criar uma imagem de contêiner personalizada e usar esse contêiner personalizado para criar uma instância do Vertex AI Workbench.

O contêiner base é configurado com um Container-Optimized OS na máquina virtual (VM) host. O contêiner base fornece pacotes de ciência de dados pré-instalados e configurações específicas que permitem a integração da sua instância ao Google Cloud.

O contêiner base está localizado em gcr.io/deeplearning-platform-release/workbench-container:latest.

Limitações

Considere as seguintes limitações ao planejar seu projeto:

  • O contêiner personalizado precisa ser derivado do contêiner base fornecido pelo Google (gcr.io/deeplearning-platform-release/workbench-container:latest). O uso de um contêiner que não seja derivado do contêiner base não é aceito e aumenta os riscos de problemas de compatibilidade com nossos serviços.

  • Não há suporte para o uso de mais de um contêiner com uma instância do Vertex AI Workbench.

  • Os metadados compatíveis para contêineres personalizados de notebooks gerenciados pelo usuário e notebooks gerenciados podem ter comportamentos diferentes quando usados com instâncias do Vertex AI Workbench.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

Funções exigidas

Para garantir que sua conta de usuário tenha as permissões necessárias para criar uma instância do Vertex AI Workbench, peça ao administrador para conceder à sua conta de usuário o papel do IAM Notebooks Runner (roles/notebooks.runner) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

O administrador também pode conceder à sua conta de usuário as permissões necessárias via papéis personalizados ou outros papéis predefinidos.

Criar um contêiner personalizado

Para criar um contêiner personalizado para uso com instâncias do Vertex AI Workbench:

  1. Crie um contêiner derivado da imagem de contêiner base fornecida pelo Google (gcr.io/deeplearning-platform-release/workbench-container:latest).

  2. Crie e envie o contêiner para o Artifact Registry. Você usará o URI do contêiner ao criar sua instância do Vertex AI Workbench. Por exemplo, o arquivo pode ser assim: gcr.io/PROJECT_ID/IMAGE_NAME.

Criar instância

É possível criar uma instância do Vertex AI Workbench com base em um contêiner personalizado usando o console do Google Cloud ou a CLI do Google Cloud.

Console

Para criar uma instância do Vertex AI Workbench com base em um contêiner personalizado, faça o seguinte:

  1. No console do Google Cloud, acesse a página Instâncias.

    Acesse "Instâncias"

  2. Clique em Criar.

  3. Na caixa de diálogo Nova instância, clique em Opções avançadas.

  4. Na caixa de diálogo Criar instância, na seção Ambiente, selecione Usar contêiner personalizado.

  5. Em Imagem do contêiner do Docker, clique em Selecionar.

  6. Na caixa de diálogo Selecionar imagem do contêiner, acesse a imagem do contêiner que você quer usar e clique em Selecionar.

  7. Opcional. Em Script pós-inicialização, insira um caminho para um script pós-inicialização que você quer usar.

  8. Preencha o restante da caixa de diálogo de criação de instância e clique em Criar.

    O Vertex AI Workbench cria uma instância e a inicia automaticamente. Quando a instância estiver pronta para uso, o Vertex AI Workbench ativa um link Abrir JupyterLab.

gcloud

Antes de usar os dados do comando abaixo, faça estas substituições:

  • INSTANCE_NAME: o nome da sua instância do Vertex AI Workbench. Precisa começar com uma letra seguida por até 62 letras minúsculas, números ou hifens (-) e não pode terminar com um hífen.
  • PROJECT_ID: ID do projeto;
  • LOCATION: a zona em que você quer que a instância esteja localizada
  • CUSTOM_CONTAINER_PATH: o caminho para o repositório de imagens do contêiner, por exemplo: gcr.io/PROJECT_ID/IMAGE_NAME
  • METADATA: metadados personalizados a serem aplicados a esta instância. Por exemplo, para especificar um script pós-inicialização, use a tag de metadados post-startup-script no formato: "--metadata=post-startup-script=gs://BUCKET_NAME/hello.sh"

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud workbench instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --container-repository=CUSTOM_CONTAINER_URL \
    --container-tag=latest \
    --metadata=METADATA

Windows (PowerShell)

gcloud workbench instances create INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --container-repository=CUSTOM_CONTAINER_URL `
    --container-tag=latest `
    --metadata=METADATA

Windows (cmd.exe)

gcloud workbench instances create INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --container-repository=CUSTOM_CONTAINER_URL ^
    --container-tag=latest ^
    --metadata=METADATA

Para mais informações sobre o comando para criar uma instância usando a linha de comando, consulte a documentação da CLI gcloud.

O Vertex AI Workbench cria uma instância e a inicia automaticamente. Quando a instância estiver pronta para uso, o Vertex AI Workbench ativa um link Abrir JupyterLab no console do Google Cloud.

Exemplo de instalação: contêiner personalizado com um kernel padrão personalizado

O exemplo a seguir mostra como criar um novo kernel com um pacote pip pré-instalado.

  1. Crie um contêiner personalizado:

    FROM gcr.io/deeplearning-platform-release/workbench-container:latest
    
    ENV MAMBA_ROOT_PREFIX=/opt/micromamba
    
    RUN micromamba create -n ENVIRONMENT_NAME -c conda-forge python=PYTHON_VERSION -y
    
    SHELL ["micromamba", "run", "-n", "ENVIRONMENT_NAME", "/bin/bash", "-c"]
    
    RUN micromamba install -c conda-forge pip -y
    RUN pip install PACKAGE
    RUN pip install ipykernel
    RUN python -m ipykernel install --prefix /opt/micromamba/envs/ENVIRONMENT_NAME --name ENVIRONMENT_NAME --display-name KERNEL_NAME
  2. Adicione o novo contêiner ao Artifact Registry:

    gcloud auth configure-docker REGION-docker.pkg.dev
    docker build -t REGION-docker.pkg.dev/PROJECT_ID/IMAGE_NAME .
    docker push REGION-docker.pkg.dev/PROJECT_ID/IMAGE_NAME:latest
  3. Crie uma instância:

    gcloud workbench instances WBI_NAME  \
        --project=PROJECT_ID \
        --location=ZONE \
        --container-repository=REGION-docker.pkg.dev/PROJECT_ID/IMAGE_NAME \
        --container-tag=latest

Acessar a instância

Você pode acessar sua instância por meio de um URL proxy.

Depois que sua instância for criada e estiver ativa, você poderá obter o URL do proxy usando a CLI gcloud.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • INSTANCE_NAME: o nome da sua instância do Vertex AI Workbench.
  • PROJECT_ID: ID do projeto
  • LOCATION: a zona em que a instância está localizada

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud workbench instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--location=LOCATION | grep proxy-url

Windows (PowerShell)

gcloud workbench instances describe INSTANCE_NAME `
--project=PROJECT_ID `
--location=LOCATION | grep proxy-url

Windows (cmd.exe)

gcloud workbench instances describe INSTANCE_NAME ^
--project=PROJECT_ID ^
--location=LOCATION | grep proxy-url
proxy-url: 7109d1b0d5f850f-dot-datalab-vm-staging.googleusercontent.com

O comando describe retorna seu URL de proxy. Para acessar sua instância, abra o URL do proxy em um navegador da web.

Para mais informações sobre o comando para descrever uma instância usando a linha de comando, consulte a documentação da CLI gcloud.