本教學課程將引導您在 Vertex AI 上部署 Meta-Llama-3.1-8B 模型。您將瞭解如何部署端點,並根據特定需求進行最佳化。如果您有容錯工作負載,可以使用 Spot VM 來降低成本。如要確保可用性,請使用 Compute Engine 預訂功能。您將瞭解如何部署使用下列項目的端點:
- Spot VM:使用預留 Spot 的執行個體,可大幅節省成本。
- 預留資源:保證資源可用性,以便預測效能,特別適用於正式環境工作負載。本教學課程將示範如何使用自動 (
ANY_RESERVATION
) 和特定 (SPECIFIC_RESERVATION
) 預留功能。
詳情請參閱「Spot VM」或「Compute Engine 資源的預留項目」。
事前準備
開始之前,請先完成下列必備條件:
- 已啟用計費功能的 Google Cloud 專案。
- 已啟用 Vertex AI 和 Compute Engine API。
- 您要使用的機器類型和加速器 (例如 NVIDIA L4 GPU) 有足夠配額。如要查看配額,請參閱「 Google Cloud 控制台中的配額與系統限制」一文。
- Hugging Face 帳戶和具備讀取權的使用者存取權杖。
- 如果您使用共用預留項目,請在專案之間授予 IAM 權限。這些權限都包含在記事本中。
在 Spot VM 上部署
以下各節將逐步引導您設定 Google Cloud 專案、設定 Hugging Face 驗證、使用 Spot VM 或預留執行個體部署 Llama-3.1 模型,以及測試部署作業。
1. 設定 Google Cloud 專案和共用保留項目
在第一個部分中,在 Colab 筆記本中設定 PROJECT_ID
、SHARED_PROJECT_ID
(如適用)、BUCKET_URI
和 REGION
變數。
筆記本會將 compute.viewer 角色授予兩個專案的服務帳戶。
如果您打算使用在同一個機構內不同專案中建立的預訂,請務必將 compute.viewer
角色授予兩個專案的 P4SA (主要服務帳戶)。筆記本程式碼會自動執行這項操作,但請確保 SHARED_PROJECT_ID
已正確設定。這項跨專案權限可讓主要專案中的 Vertex AI 端點查看並使用共用專案中的預留容量。
2. 設定 Hugging Face 臉部驗證
如要下載 Llama-3.1 模型,您必須在 Colab 筆記本的 HF_TOKEN
變數中提供 Hugging Face 使用者存取權杖。如果未提供,就會收到以下錯誤:Cannot access gated repository for URL
。

3. 使用 Spot VM 部署
如要將 Llama 模型部署至 Spot VM,請前往 Colab 筆記本中的「Spot VM Vertex AI 端點部署」部分,然後設定 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,
)
在共用預留項目執行個體上部署
以下各節將逐步引導您建立共用預留、設定預留選項、使用 ANY_RESERVATION
或 SPECIFIC_RESERVATION
部署 Llama-3.1 模型,以及測試部署作業。
1. 建立共用預訂
如要設定預留作業,請前往筆記本的「Set Up Reservations for Vertex AI Predictions」(設定 Vertex AI 預測作業的預留作業) 部分。設定預訂所需的變數,例如 RES_ZONE
、RESERVATION_NAME
、RES_MACHINE_TYPE
、RES_ACCELERATOR_TYPE
和 RES_ACCELERATOR_COUNT
。
您必須將 RES_ZONE
設為 {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. 分享預訂資訊
預留項目分為兩種:單一專案預留項目 (預設) 和共用預留項目。單一專案預留項目只能由與保留項目相同專案中的 VM 使用。另一方面,共用預留項目則可供保留項目所在專案中的 VM 使用,以及共用保留項目的任何其他專案中的 VM 使用。使用共用預訂功能可提高預留資源的使用率,並減少需要建立及管理的預訂總數。本教學課程的重點是共用預留作業。詳情請參閱「共用預留的運作方式」。
進行操作之前,請務必在 Google Cloud 主控台中「與其他 Google 服務共用」:

3. 使用 ANY_RESERVATION 部署
如要使用 ANY_RESERVATION
部署端點,請前往 Notebook 中的「Deploy Llama-3.1 Endpoint with ANY_RESERVATION
」(使用 ANY_RESERVATION
部署 Llama-3.1 端點) 部分。指定部署設定,然後設定 reservation_affinity_type="ANY_RESERVATION"
。接著執行儲存格,即可部署端點。
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. 測試 ANY_RESERVATION 端點
端點部署完成後,請務必測試幾個提示,確保端點已正確部署。
5. 使用 SPECIFIC_RESERVATION 部署
如要使用 SPECIFIC_RESERVATION
部署端點,請前往 Notebook 中的「Deploy Llama-3.1 Endpoint with SPECIFIC_RESERVATION
」(使用 SPECIFIC_RESERVATION
部署 Llama-3.1 端點) 部分。指定下列參數:reservation_name
、reservation_affinity_type="SPECIFIC_RESERVATION"
、reservation_project
和 reservation_zone
。接著執行儲存格,即可部署端點。
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. 測試 SPECIFIC_RESERVATION 端點
端點部署完成後,請確認 預留項目是否已由 Vertex AI 線上預測服務使用,並確實測試幾個提示,確認已正確部署。

7. 清除所用資源
為避免持續產生費用,請刪除您在本教學課程中建立的模型、端點和預留項目。Colab 筆記本會在「Clean Up」(清理) 部分提供程式碼,自動執行這項清理程序。
疑難排解
- Hugging Face 權杖錯誤:請仔細檢查 Hugging Face 權杖是否具備
read
權限,且在筆記本中正確設定。 - 配額錯誤:請確認您在要部署的區域中,有足夠的 GPU 配額。視需要申請提高配額。
- 預留衝突:請確認端點部署作業的機器類型和加速器設定,與預留設定相符。確認已啟用可與 Google 服務共用預訂功能
後續步驟
- 探索不同的 Llama 3 模型變化版本。
- 如要進一步瞭解預留資源,請參閱 Compute Engine 預留資源總覽。
- 如要進一步瞭解 Spot VM,請參閱Spot VM 總覽。