Neste tutorial, mostramos como implantar e disponibilizar um modelo de linguagem gpt-oss-120b usando o framework vLLM.
Você implanta esse modelo em um cluster do Autopilot do Google Kubernetes Engine (GKE) e consome uma única máquina virtual A4 (VM) com 8 GPUs B200.
Este tutorial é destinado a engenheiros de machine learning (ML), administradores e operadores de plataforma e especialistas em dados e IA interessados em usar os recursos de orquestração de contêineres do Kubernetes para processar cargas de trabalho de inferência.
Objetivos
- Acesse
gpt-oss-120busando o Hugging Face. - Prepare seu ambiente.
- Criar um cluster do GKE no modo Autopilot.
- Crie um secret do Kubernetes para as credenciais do Hugging Face.
- Criar um bucket do Cloud Storage.
- Baixe o modelo para o bucket do Cloud Storage.
- Implante um contêiner vLLM no cluster do GKE.
- Interaja com o modelo de linguagem gpt-oss usando curl.
- Fazer a limpeza.
Custos
Neste tutorial, usamos componentes faturáveis do Google Cloud, incluindo:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative a API necessária:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable container.googleapis.com
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o projeto Google Cloud que você está criando. -
Selecione o projeto Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative a API necessária:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable container.googleapis.com
-
Atribua papéis à sua conta de usuário. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/container.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário . Por exemplo,myemail@example.com.ROLE: o papel do IAM concedido à sua conta de usuário.
- Faça login ou crie uma conta do Hugging Face.
Acessar o gpt-oss usando o Hugging Face
Para usar o Hugging Face e acessar o gpt-oss, faça o seguinte:
- Faça login no Hugging Face e conheça o modelo gpt-oss.
- Crie um token de acesso
readdo Hugging Face. - Copie e salve o valor do token
read access. Você vai usar esse valor mais tarde neste tutorial.
Preparar o ambiente
Para preparar o ambiente, defina as variáveis de ambiente padrão:
Substitua:
YOUR_PROJECT_ID: o ID do Google Cloud projeto em que você quer criar o cluster do GKE.YOUR_RESERVATION_NAME: o URL da reserva que você quer usar para criar o cluster do GKE. Com base no projeto em que a reserva existe, especifique um dos seguintes valores:A reserva existe no seu projeto:
RESERVATION_NAMEA reserva existe em um projeto diferente, e seu projeto pode usar a reserva:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
YOUR_REGION: a região em que você quer criar o cluster do GKE. Só é possível criar o cluster na região em que a reserva está.YOUR_CLUSTER_NAME: o nome do cluster do GKE a ser criado.YOUR_GCS_BUCKET: o nome do bucket do Cloud Storage em que você baixa o modelo.YOUR_HF_TOKEN: o token de acesso do Hugging Face que você criou na seção anterior.YOUR_NETWORK_NAME: a rede que o cluster do GKE usa. Especifique um dos seguintes valores:Se você criou uma rede personalizada, especifique o nome dela.
Caso contrário, especifique
default.
YOUR_SUBNETWORK_NAME: a sub-rede usada pelo cluster do GKE. Especifique um dos seguintes valores:Se você criou uma sub-rede personalizada, especifique o nome dela. Só é possível especificar uma sub-rede que esteja na mesma região da reserva.
Caso contrário, especifique
default.
Criar um cluster do GKE no modo Autopilot
Para criar um cluster do GKE no modo Autopilot, execute o seguinte comando:
A criação do cluster do GKE pode levar algum tempo. Para verificar se o Google Cloud terminou de criar o cluster, acesse Clusters do Kubernetes no console Google Cloud .
Criar um secret do Kubernetes para as credenciais do Hugging Face
Para criar um secret do Kubernetes para as credenciais do Hugging Face, faça o seguinte:
Configure
kubectlpara se comunicar com o cluster do GKE:Crie um secret do Kubernetes para armazenar seu token do Hugging Face:
Criar um bucket do Cloud Storage
Se você estiver usando um bucket do Cloud Storage, verifique se as seguintes condições são verdadeiras:
- O bucket do Cloud Storage está na mesma região que o cluster do GKE.
- Sua conta de serviço tem as permissões
writenecessárias no bucket.
Para armazenar seu modelo em um novo bucket do Cloud Storage, siga estas etapas:
Execute o comando a seguir para criar um bucket:
Conceda permissões de
writeno bucket do Cloud Storage à conta de serviço padrão.
Baixar o modelo para seu bucket do Cloud Storage
Para fazer o download do modelo para o bucket do Cloud Storage, siga estas etapas:
Crie um arquivo
gpt-download-job.yaml:Para inicializar o job de download, aplique o manifesto
gpt-download-job.yaml.O recurso de job faz o download dos pesos do modelo
gpt-oss-120bdo Hugging Face para seu bucket do Cloud Storage. O download leva cerca de 30 minutos para ser concluído. Quando o download terminar, vá para a próxima seção para iniciar a implantação do modelo.Para conferir o status da conclusão, execute o comando a seguir:
A flag
--timeoutespecifica por quanto tempo o comando monitora o job antes de atingir o tempo limite.Para excluir o job, execute o seguinte comando:
Implantar um contêiner vLLM no cluster do GKE
Depois de baixar o modelo para o bucket do Cloud Storage, implante um contêiner vLLM no cluster do GKE:
Crie um arquivo
vllm-gpt-oss-120b.yamlcom a implantação do vLLM escolhida:Aplique o arquivo
vllm-gpt-oss-120b.yamlao cluster do GKE:Para conferir o status da conclusão, execute o comando a seguir:
A flag--timeoutpermite que o comando monitore a implantação durante o período especificado.
Interagir com o modelo gpt-oss usando curl
Para verificar o modelo gpt-oss implantado, faça o seguinte:
Configure o encaminhamento de portas para o modelo
gpt-oss:Abra uma nova janela do terminal. Em seguida, converse com o modelo usando
curl:A saída será semelhante a esta:
{ "id": "chatcmpl-2235c39759c040daae23ce2addc40c0a", "object": "chat.completion", "created": 1756831629, "model": "openai/gpt-oss-120b", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A sleek vessel gliding on water, its cloth sails billowing like captured wind.", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [], "reasoning_content": "User asks: \"Describe a sailboat in one short sentence?\" We need to produce a short sentence description. Should comply with policy. It's fine. Provide a short sentence." }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 80, "total_tokens": 142, "completion_tokens": 62, "prompt_tokens_details": null }, "prompt_logprobs": null, "kv_transfer_params": null }
Observar a performance do modelo
Para observar a performance do modelo, use a integração do painel do vLLM no Cloud Monitoring. Esse painel ajuda você a conferir métricas de performance importantes do seu modelo, como capacidade de processamento de tokens, latência de rede e taxas de erro. Para mais informações, consulte vLLM na documentação do Monitoring.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir os recursos
Depois de concluir o tutorial, exclua os recursos que não são mais necessários.
Para excluir a implantação e o serviço definidos no arquivo
vllm-gpt-oss-120b.yamle a chave secreta do Kubernetes do cluster do GKE, execute o seguinte comando:Para excluir o bucket do Cloud Storage, execute o seguinte comando:
Para excluir o cluster do GKE, faça o seguinte:
Excluir o projeto
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID