Neste tutorial, mostramos como implantar o modelo Meta-Llama-3.1-8B na plataforma de agentes do Gemini Enterprise. Você vai aprender a implantar endpoints e otimizar para suas necessidades específicas. Se você tiver cargas de trabalho tolerantes a falhas, use as VMs spot para otimizar os custos. Se quiser garantir a disponibilidade, use as reservas do Compute Engine. Você vai aprender a implantar endpoints que usam:
- VMs spot:use instâncias provisionadas por spot para economizar muito.
- Reservas:garantem a disponibilidade de recursos para um desempenho previsível, especialmente para cargas de trabalho de produção. Neste tutorial, mostramos como usar reservas automáticas (
ANY_RESERVATION) e específicas (SPECIFIC_RESERVATION).
Para mais informações, consulte VMs do Spot ou Reservas de recursos do Compute Engine.
Pré-requisitos
Antes de começar, atenda aos seguintes pré-requisitos:
- Um projeto do Cloud de Confiance by S3NS com o faturamento ativado.
- As APIs da plataforma de agentes do Gemini Enterprise e do Compute Engine ativadas.
- Cota suficiente para o tipo de máquina e o acelerador que você pretende usar, como GPUs NVIDIA L4. Para verificar suas cotas, consulte Cotas e limites do sistema no console Cloud de Confiance .
- Uma conta do Hugging Face e um token de acesso de usuário com acesso de leitura.
- Se você estiver usando reservas compartilhadas, conceda permissões do IAM entre projetos. Todas essas permissões estão incluídas no notebook.
Implantar em VMs do Spot
As seções a seguir orientam você no processo de configuração do projeto Cloud de Confiance by S3NS , configuração da autenticação do Hugging Face, implantação do modelo Llama-3.1 usando VMs spot ou reservas e teste da implantação.
1. Configurar o projeto do Cloud de Confiance by S3NS e a reserva compartilhada
Abra o notebook do Colab Enterprise.
Na primeira seção, defina as variáveis PROJECT_ID, SHARED_PROJECT_ID (se aplicável), BUCKET_URI e REGION no notebook do Colab.
O notebook concede o papel compute.viewer à conta de serviço dos dois projetos.
Se você pretende usar uma reserva criada em um projeto diferente na mesma organização, conceda o papel compute.viewer à P4SA (conta de serviço principal) dos dois projetos. O código do notebook vai automatizar isso, mas verifique se SHARED_PROJECT_ID está definido corretamente. Essa permissão entre projetos permite que o endpoint da Gemini Enterprise Agent Platform no seu projeto principal veja e use a capacidade de reserva no projeto compartilhado.
2. Configurar a autenticação do Hugging Face
Para fazer o download do modelo Llama-3.1, forneça seu token de acesso de usuário do Hugging Face na variável HF_TOKEN no notebook do Colab. Se você não fornecer um, vai receber o seguinte erro: Cannot access gated repository for URL.
Figura 1: configurações do token de acesso do Hugging Face
3. Implantar com VM spot
Para implantar o modelo Llama em uma VM spot, navegue até a seção "Implantação do endpoint da plataforma do agente Gemini Enterprise em uma VM spot" no notebook do Colab e defina is_spot=True.
base_model_name = "Meta-Llama-3.1-8B"
hf_model_id = "meta-llama/" + base_model_name
if "8b" in base_model_name.lower():
accelerator_type = "NVIDIA_L4"
machine_type = "g2-standard-12"
accelerator_count = 1
max_loras = 5
else:
raise ValueError(
f"Recommended GPU setting not found for: {accelerator_type} and {base_model_name}."
)
common_util.check_quota(
project_id=PROJECT_ID,
region=REGION,
accelerator_type=accelerator_type,
accelerator_count=accelerator_count,
is_for_training=False,
)
gpu_memory_utilization = 0.95
max_model_len = 8192
models["vllm_gpu_spotvm"], endpoints["vllm_gpu_spotvm"] = deploy_model_vllm(
model_name=common_util.get_job_name_with_datetime(prefix="llama3_1-serve-spotvm"),
model_id=hf_model_id,
base_model_id=hf_model_id,
service_account=SERVICE_ACCOUNT,
machine_type=machine_type,
accelerator_type=accelerator_type,
accelerator_count=accelerator_count,
gpu_memory_utilization=gpu_memory_utilization,
max_model_len=max_model_len,
max_loras=max_loras,
enforce_eager=True,
enable_lora=True,
use_dedicated_endpoint=False,
model_type="llama3.1",
is_spot=True,
)
Fazer a implantação em instâncias de reserva compartilhada
As seções a seguir orientam você no processo de criação de uma reserva compartilhada, configuração das definições de reserva, implantação do modelo Llama-3.1 usando ANY_RESERVATION ou SPECIFIC_RESERVATION e teste da implantação.
1. Criar uma reserva compartilhada
Para configurar suas reservas, acesse a seção "Configurar reservas para previsões da plataforma de agentes do Gemini Enterprise" do notebook. Defina as variáveis obrigatórias para a reserva, como RES_ZONE, RESERVATION_NAME, RES_MACHINE_TYPE, RES_ACCELERATOR_TYPE e RES_ACCELERATOR_COUNT.
É necessário definir RES_ZONE como {REGION}-{availability_zone}.
RES_ZONE = "a"
RES_ZONE = f"{REGION}-{RES_ZONE}"
RESERVATION_NAME = "shared-reservation-1"
RESERVATION_NAME = f"{PROJECT_ID}-{RESERVATION_NAME}"
RES_MACHINE_TYPE = "g2-standard-12"
RES_ACCELERATOR_TYPE = "nvidia-l4"
RES_ACCELERATOR_COUNT = 1
rev_names.append(RESERVATION_NAME)
create_reservation(
res_project_id=PROJECT_ID,
res_zone=RES_ZONE,
res_name=RESERVATION_NAME,
res_machine_type=RES_MACHINE_TYPE,
res_accelerator_type=RES_ACCELERATOR_TYPE,
res_accelerator_count=RES_ACCELERATOR_COUNT,
shared_project_id=SHARED_PROJECT_ID,
)
2. Compartilhar suas reservas
Há dois tipos de reservas: de projeto único (padrão) e compartilhadas. As reservas de projeto único só podem ser usadas por VMs no mesmo projeto da reserva. Já as reservas compartilhadas podem ser usadas por VMs no projeto em que a reserva está localizada, bem como por VMs em qualquer outro projeto com que a reserva foi compartilhada. O uso de reservas compartilhadas pode melhorar a utilização dos recursos reservados e reduzir o número total de reservas que você precisa criar e gerenciar. Este tutorial se concentra em reservas compartilhadas. Para mais informações, consulte Como funcionam as reservas compartilhadas.
Antes de continuar, verifique se a opção Compartilhar com outros Serviços do Google está marcada no console do Cloud de Confiance by S3NS , conforme mostrado na figura:
Figura 2: compartilhar a reserva com outros Serviços do Google
3. Implantar com ANY_RESERVATION
Para implantar o endpoint usando ANY_RESERVATION, acesse a seção "Implantar o endpoint Llama-3.1 com ANY_RESERVATION" do notebook. Especifique as configurações de implantação e defina reservation_affinity_type="ANY_RESERVATION". Em seguida, execute a célula para implantar o endpoint.
hf_model_id = "meta-llama/Meta-Llama-3.1-8B"
models["vllm_gpu_any_reserve"], endpoints["vllm_gpu_any_reserve"] = deploy_model_vllm(
model_name=common_util.get_job_name_with_datetime(
prefix=f"llama3_1-serve-any-{RESERVATION_NAME}"
),
model_id=hf_model_id,
base_model_id=hf_model_id,
service_account=SERVICE_ACCOUNT,
machine_type=MACHINE_TYPE,
accelerator_type=ACCELERATOR_TYPE,
accelerator_count=ACCELERATOR_COUNT,
model_type="llama3.1",
reservation_affinity_type="ANY_RESERVATION",
)
4. Testar o endpoint ANY_RESERVATION
Com o endpoint implantado, teste alguns comandos para garantir que ele esteja funcionando corretamente.
5. Implantar com SPECIFIC_RESERVATION
Para implantar o endpoint usando SPECIFIC_RESERVATION, acesse a seção "Implantar o endpoint Llama-3.1 com SPECIFIC_RESERVATION" do notebook. Especifique os seguintes parâmetros: reservation_name, reservation_affinity_type="SPECIFIC_RESERVATION", reservation_project e reservation_zone. Em seguida, execute a célula para implantar o endpoint.
hf_model_id = "meta-llama/Meta-Llama-3.1-8B"
MACHINE_TYPE = "g2-standard-12"
ACCELERATOR_TYPE = "NVIDIA_L4"
ACCELERATOR_COUNT = 1
(
models["vllm_gpu_specific_reserve"],
endpoints["vllm_gpu_specific_reserve"],
) = deploy_model_vllm(
model_name=common_util.get_job_name_with_datetime(
prefix=f"llama3_1-serve-specific-{RESERVATION_NAME}"
),
model_id=hf_model_id,
base_model_id=hf_model_id,
service_account=SERVICE_ACCOUNT,
machine_type=MACHINE_TYPE,
accelerator_type=ACCELERATOR_TYPE,
accelerator_count=ACCELERATOR_COUNT,
model_type="llama3.1",
reservation_name=RESERVATION_NAME,
reservation_affinity_type="SPECIFIC_RESERVATION",
reservation_project=PROJECT_ID,
reservation_zone=RES_ZONE,
)
6. Testar o endpoint SPECIFIC_RESERVATION
Com o endpoint implantado, verifique se a reserva está sendo usada pela previsão on-line da Gemini Enterprise Agent Platform e teste alguns comandos para garantir que ela esteja implantada corretamente.
Figura 3: verifique se a reserva é usada pela previsão on-line da Vertex
7. Limpar
Para evitar cobranças contínuas, exclua os modelos, endpoints e reservas criados durante este tutorial. O notebook do Colab fornece código na seção "Limpar" para automatizar esse processo.
Solução de problemas
- Erros de token do Hugging Face:verifique se o token do Hugging Face tem permissões de
reade se está configurado corretamente no notebook. - Erros de cota:verifique se você tem cota de GPU suficiente na região em que está fazendo a implantação. Solicite um aumento de cota, se necessário.
- Conflitos de reserva:verifique se o tipo de máquina e a configuração do acelerador da implantação do endpoint correspondem às configurações da sua reserva. Verifique se as reservas podem ser compartilhadas com os Serviços do Google
Próximas etapas
- Conheça as diferentes variantes do modelo Llama 3.
- Saiba mais sobre reservas com esta Visão geral das reservas do Compute Engine.
- Saiba mais sobre as VMs spot com esta visão geral das VMs spot.