最近在尝试将最新的 AI 模型集成到云平台进行推理和部署时,发现 Grok 系列模型因其独特的“理解”能力和对话风格备受关注。特别是随着 Grok 4.6 版本的发布,许多开发者和企业都希望能在 Google Cloud 这样稳定、可扩展的平台上使用它。然而,相关的集成教程和实战指南却非常零散,从模型获取、环境配置到服务部署,每一步都可能遇到意想不到的坑。
本文将为你提供一份从零开始,将 Grok 4.6 模型部署到 Google Cloud Vertex AI 平台的完整实战指南。无论你是想体验最新的大模型能力,还是需要为企业级应用寻找可靠的 AI 服务后端,都能从本文中找到可复现的步骤、清晰的代码示例以及关键的避坑方案。我们将涵盖从 Google Cloud 项目准备、Vertex AI 环境搭建、模型适配与部署,到最终通过 API 进行调用的全流程。
1. 背景与核心概念:为什么选择 Vertex AI 部署 Grok?
在深入实操之前,我们有必要厘清几个关键概念,这能帮助你理解整个部署流程的设计思路。
1.1 什么是 Grok 与 Grok 4.6?
Grok 是由 xAI 公司开发的一系列大型语言模型。其名称源自科幻小说,意为“深刻理解”。与一些通用模型不同,Grok 在设计上更强调实时信息访问、带有“叛逆”个性的对话风格以及更强的推理能力。Grok 4.6 是该系列的一个较新版本,据社区反馈,它在代码生成、逻辑推理和长上下文理解方面有显著提升。
对于开发者而言,Grok 模型本身通常不是一个可以直接pip install的库。它需要通过特定的 API 端点(如 xAI 官方 API)或导入预训练模型权重到兼容的推理框架中来使用。本文的重点在于后者——我们将模型文件部署到我们自己的基础设施上。
1.2 什么是 Google Cloud Vertex AI?
Vertex AI 是 Google Cloud 提供的统一机器学习平台。你可以把它想象成一个“机器学习操作系统”,它集成了从数据准备、模型训练、模型评估到模型部署和监控的全套工具。其核心优势在于:
- 托管服务:无需管理底层虚拟机、容器或缩放策略,Vertex AI 帮你处理。
- 统一的 API:无论模型是 TensorFlow、PyTorch、Scikit-learn 还是自定义容器,都通过相同的接口进行部署和调用。
- 强大的基础设施:无缝集成 Google Cloud 的 TPU/GPU、网络和存储服务。
- Model Garden:一个模型市场,可以一键部署许多预构建的模型(虽然 Grok 目前不在其官方列表,但我们可以通过自定义容器方式接入)。
1.3 为什么将 Grok 4.6 部署到 Vertex AI?
结合上述两点,将 Grok 4.6 部署到 Vertex AI 的优势显而易见:
- 生产级稳定性:Vertex AI 提供自动扩缩容、版本管理、流量分流和监控告警,适合构建 7x24 小时在线的 AI 应用。
- 成本与性能优化:可以灵活选择具有 GPU(如 NVIDIA L4, A100)的机器类型,并根据流量动态调整,优化成本。
- 安全与合规:模型和数据留在你自己的 Google Cloud 项目中,满足数据主权和安全合规要求。
- 集成生态:易于与 Google Cloud 的其他服务(如 Cloud Storage, BigQuery, Cloud Endpoints)集成,构建完整的 AI 解决方案。
2. 环境准备与前提条件
在开始部署之前,请确保你已准备好以下环境。这是后续所有步骤的基础。
2.1 Google Cloud 项目与账单账户
- 创建或选择一个 Google Cloud 项目:访问 Google Cloud Console ,创建一个新项目或使用现有项目。记下你的项目 ID(例如
my-grok-project)。 - 启用账单功能:Vertex AI 和 Compute Engine 等是收费服务。确保你的项目已关联一个有效的账单账户。
- 启用必要 API:在 Cloud Console 中,为你的项目启用以下 API:
Vertex AI API(aiplatform.googleapis.com)Cloud Storage API(storage.googleapis.com)Container Registry API或Artifact Registry API(containerregistry.googleapis.com或artifactregistry.googleapis.com)。推荐使用更新的 Artifact Registry。
2.2 本地开发环境
- 安装 Google Cloud SDK (gcloud):这是管理 GCP 资源的命令行工具。请根据你的操作系统(Windows/macOS/Linux)从 官方文档 安装并初始化。
# 初始化并登录 gcloud init # 设置默认项目 gcloud config set project YOUR_PROJECT_ID - 安装 Python 环境:我们将使用 Python 编写适配代码和客户端。建议使用 Python 3.9 或更高版本。使用
venv或conda创建虚拟环境。python3 -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows - 安装 Python 依赖:在虚拟环境中安装基础包。
pip install google-cloud-aiplatform google-cloud-storage flask gunicorn transformers torchgoogle-cloud-aiplatform: Vertex AI Python SDK。google-cloud-storage: 用于与 Cloud Storage 交互,上传模型文件。flask&gunicorn: 用于构建自定义模型服务容器。transformers&torch: Hugging Face 库,用于加载和运行类似 Grok 的 Transformer 模型。注意:Grok 可能有其特定的实现库,此处以通用 LLM 适配为例。
2.3 获取 Grok 4.6 模型文件
这是最具挑战性的一步。由于 Grok 并非开源模型,其权重文件通常不公开发布。你有以下几种可能途径:
- 官方渠道:关注 xAI 官方公告,看是否会发布模型权重或提供特定访问方式。
- 研究授权:某些学术研究项目可能获得访问权限。
- 使用兼容架构:如果无法获得原始权重,可以使用 Hugging Face 上架构类似的开源模型(如 Mixtral, Llama 等)进行流程演示。本文后续的代码示例将基于一个通用的、可从 Hugging Face 获取的模型(例如
microsoft/phi-2,因为它体积较小,适合演示)来展示 Vertex AI 的部署流程。一旦你获得 Grok 的权重,替换模型加载部分即可。
假设:你已经将模型文件(通常是多个.bin、.safetensors文件或一个完整的模型目录)下载到本地,命名为grok-4.6-model。
3. 核心流程与架构拆解
将自定义模型部署到 Vertex AI 的核心是使用自定义容器。Vertex AI 会拉取你构建的 Docker 镜像,并在其托管环境中运行。该容器需要提供一个 HTTP 服务,Vertex AI 会将预测请求转发给它。
整个流程可以拆解为以下关键步骤:
- 模型准备:将模型文件上传到 Cloud Storage。
- 容器构建:编写一个 Flask/FastAPI 应用来加载模型并处理预测请求,并将其 Docker 化。
- 容器推送:将构建好的镜像推送到 Google Artifact Registry。
- 模型上传:在 Vertex AI 中创建一个模型资源,指向你的容器镜像和存储中的模型文件。
- 端点部署:创建一个在线预测端点,并将模型部署到该端点。
- 预测请求:通过 SDK 或 REST API 向端点发送请求,获得模型推理结果。
下面,我们将按照这个流程进行实战。
4. 完整实战案例:部署模型到 Vertex AI 在线端点
4.1 步骤一:上传模型文件到 Cloud Storage
首先,在 Cloud Storage 中创建一个桶(Bucket),用于存放模型文件。
# 在 Cloud Shell 或本地终端执行 # 设置你的项目ID和区域 export PROJECT_ID="your-gcp-project-id" export REGION="us-central1" # 选择支持 Vertex AI 的区域 export BUCKET_NAME="gs://${PROJECT_ID}-grok-model" # 创建存储桶 gsutil mb -l ${REGION} ${BUCKET_NAME} # 假设你的模型文件在本地目录 ./grok-4.6-model # 将整个目录上传到存储桶的 model/ 前缀下 gsutil -m cp -r ./grok-4.6-model ${BUCKET_NAME}/model/上传完成后,你的模型文件路径类似:gs://your-project-id-grok-model/model/。
4.2 步骤二:构建自定义预测容器
这是最关键的一步。我们需要创建一个简单的 Web 服务来加载模型并响应预测请求。
项目结构如下:
grok-vertexai/ ├── Dockerfile ├── app.py ├── requirements.txt └── serve.sh (可选)1. 编写应用代码 (app.py)
这个 Flask 应用负责在启动时加载模型,并暴露一个/predict端点。
# app.py import os import logging from flask import Flask, request, jsonify from transformers import AutoModelForCausalLM, AutoTokenizer import torch app = Flask(__name__) # 配置日志 logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) # 全局变量存储模型和分词器 model = None tokenizer = None def load_model(): """从环境变量指定的路径加载模型和分词器""" global model, tokenizer model_path = os.getenv('AIP_STORAGE_URI', '/mnt/models') # Vertex AI 会将模型挂载到此路径 logger.info(f"Loading model from: {model_path}") # 注意:这里使用一个示例模型。对于 Grok,你需要使用正确的模型类和权重。 # 例如,如果 Grok 基于 Llama 架构,你可能需要使用 `LlamaForCausalLM`。 # 这里使用 phi-2 作为可运行的例子。 try: tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32, device_map="auto", # 自动分配 GPU/CPU trust_remote_code=True ) logger.info("Model and tokenizer loaded successfully.") except Exception as e: logger.error(f"Failed to load model: {e}") raise @app.before_first_request def initialize(): """在第一个请求之前加载模型(适用于 Flask 旧版本)。 对于生产环境,建议在应用启动时显式调用 load_model()。 """ if model is None: load_model() @app.route('/health', methods=['GET']) def health(): """健康检查端点,Vertex AI 会调用此端点""" return jsonify({'status': 'healthy'}), 200 @app.route('/predict', methods=['POST']) def predict(): """处理预测请求""" try: # 获取请求数据 data = request.get_json() instances = data.get('instances', []) if not instances: return jsonify({'error': 'No instances provided'}), 400 # 假设每个实例是一个字典,包含 `prompt` 字段 # 实际格式取决于你的模型输入要求 input_text = instances[0].get('prompt', '') if not input_text: return jsonify({'error': 'No prompt in instance'}), 400 logger.info(f"Received prompt: {input_text}") # 编码输入 inputs = tokenizer(input_text, return_tensors='pt').to(model.device) # 生成输出 with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=256, temperature=0.7, do_sample=True ) # 解码输出 generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) # 构造 Vertex AI 预期的响应格式 predictions = [{'generated_text': generated_text}] return jsonify({'predictions': predictions}) except Exception as e: logger.error(f"Prediction error: {e}") return jsonify({'error': str(e)}), 500 if __name__ == '__main__': # 显式加载模型 load_model() # 监听 0.0.0.0 和端口 8080 (Vertex AI 的默认端口) app.run(host='0.0.0.0', port=8080, debug=False)2. 创建依赖文件 (requirements.txt)
flask>=2.0.0 gunicorn>=20.0.0 torch>=2.0.0 transformers>=4.30.0 accelerate>=0.20.0 # 用于 device_map="auto"3. 编写 Dockerfile (Dockerfile)
# 使用带有 Python 和 CUDA 的基础镜像(如果需要 GPU) FROM python:3.9-slim # 安装系统依赖(如果需要) RUN apt-get update && apt-get install -y \ git \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # 复制依赖文件并安装 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY app.py . # 设置环境变量 ENV PORT=8080 ENV AIP_STORAGE_URI=/mnt/models # 创建模型挂载点目录(Vertex AI 会自动挂载) RUN mkdir -p /mnt/models # 使用 gunicorn 运行应用 CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 app:app4.3 步骤三:构建并推送 Docker 镜像
我们需要将上面的代码构建成 Docker 镜像,并推送到 Google Artifact Registry。
# 回到项目根目录 grok-vertexai/ # 设置变量 export PROJECT_ID="your-gcp-project-id" export REGION="us-central1" export REPO_NAME="grok-model-docker-repo" # Artifact Registry 仓库名 export IMAGE_NAME="grok-4.6-predictor" export TAG="latest" # 1. 在 Artifact Registry 创建 Docker 仓库(如果尚未创建) gcloud artifacts repositories create ${REPO_NAME} \ --repository-format=docker \ --location=${REGION} \ --description="Docker repository for Grok model" # 2. 配置 Docker 使用 gcloud 认证 gcloud auth configure-docker ${REGION}-docker.pkg.dev # 3. 构建 Docker 镜像 docker build -t ${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/${IMAGE_NAME}:${TAG} . # 4. 推送镜像到 Artifact Registry docker push ${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/${IMAGE_NAME}:${TAG}推送成功后,你可以在 Google Cloud Console 的 Artifact Registry 页面看到该镜像。
4.4 步骤四:在 Vertex AI 中上传和部署模型
现在,我们将告诉 Vertex AI 关于我们的模型:它使用哪个容器镜像,以及模型文件在哪里。
1. 创建 Vertex AI 模型资源
我们可以使用gcloud命令或 Python SDK。这里展示 Python SDK 的方式,因为它更灵活。
创建一个脚本upload_and_deploy.py:
# upload_and_deploy.py from google.cloud import aiplatform from google.cloud.aiplatform import gapic as aip # 初始化参数 PROJECT_ID = "your-gcp-project-id" REGION = "us-central1" BUCKET_NAME = f"{PROJECT_ID}-grok-model" MODEL_DISPLAY_NAME = "grok-4-6-demo" CONTAINER_IMAGE_URI = f"{REGION}-docker.pkg.dev/{PROJECT_ID}/grok-model-docker-repo/grok-4.6-predictor:latest" # 初始化 Vertex AI SDK aiplatform.init(project=PROJECT_ID, location=REGION) # 1. 上传模型到 Vertex AI Model Registry # 注意:这里我们不是“上传”文件,而是注册一个模型资源,该资源指向 GCS 中的文件和我们构建的容器。 model = aiplatform.Model.upload( display_name=MODEL_DISPLAY_NAME, artifact_uri=f"gs://{BUCKET_NAME}/model/", # 模型文件在 GCS 的路径 serving_container_image_uri=CONTAINER_IMAGE_URI, serving_container_ports=[8080], serving_container_health_route="/health", serving_container_predict_route="/predict", # 如果需要环境变量,可以在这里指定 # serving_container_environment_variables={"MODEL_NAME": "grok"} ) print(f"Model created: {model.resource_name}") print(f"Model display name: {model.display_name}") # 2. 创建端点(Endpoint) endpoint = aiplatform.Endpoint.create( display_name="grok-4-6-endpoint", project=PROJECT_ID, location=REGION, ) print(f"Endpoint created: {endpoint.resource_name}") # 3. 将模型部署到端点 # 需要指定机器类型。对于大语言模型,通常需要 GPU。 # 例如:n1-standard-4 机器 + 1 个 NVIDIA T4 GPU # 请根据你的模型大小和预算选择合适的机器类型。 DEPLOYED_MODEL_DISPLAY_NAME = "grok-4-6-deployed" MACHINE_TYPE = "n1-standard-4" ACCELERATOR_TYPE = "NVIDIA_TESLA_T4" ACCELERATOR_COUNT = 1 model.deploy( endpoint=endpoint, deployed_model_display_name=DEPLOYED_MODEL_DISPLAY_NAME, machine_type=MACHINE_TYPE, accelerator_type=ACCELERATOR_TYPE, accelerator_count=ACCELERATOR_COUNT, # 以下参数控制自动扩缩容(可选) min_replica_count=1, max_replica_count=2, traffic_percentage=100, # 将所有流量路由到此部署 ) print("Deployment completed successfully!") print(f"You can now send predictions to endpoint: {endpoint.resource_name}")运行此脚本:
python upload_and_deploy.py这个过程可能需要 10-20 分钟,因为 Vertex AI 需要拉取容器镜像、配置硬件并启动服务。
4.5 步骤五:测试部署的模型
部署完成后,我们可以使用 Python SDK 或curl命令来测试预测端点。
使用 Python SDK 测试:
# test_prediction.py from google.cloud import aiplatform ENDPOINT_ID = "YOUR_ENDPOINT_ID" # 格式:projects/xxx/locations/xxx/endpoints/xxx PROJECT_ID = "your-gcp-project-id" REGION = "us-central1" aiplatform.init(project=PROJECT_ID, location=REGION) endpoint = aiplatform.Endpoint(ENDPOINT_ID) # 构造预测请求实例 # 格式必须与 app.py 中 /predict 端点期望的格式匹配 instances = [ {"prompt": "Explain the concept of quantum computing in simple terms."} ] # 发送预测请求 response = endpoint.predict(instances=instances) print("Prediction response:") print(response.predictions)使用curl命令测试(需先认证):
# 获取访问令牌 ACCESS_TOKEN=$(gcloud auth print-access-token) ENDPOINT_ID="YOUR_ENDPOINT_ID" PROJECT="your-gcp-project-id" LOCATION="us-central1" curl -X POST \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ "https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:predict" \ -d '{ "instances": [ {"prompt": "What is the capital of France?"} ] }'如果一切顺利,你将收到一个包含模型生成文本的 JSON 响应。
5. 常见问题与排查思路
在部署过程中,你可能会遇到以下问题。这里提供排查思路。
| 问题现象 | 可能原因 | 排查步骤与解决方案 |
|---|---|---|
docker build或docker push失败 | 1. 网络问题。 2. gcloud认证失效。3. Artifact Registry 仓库未创建或权限不足。 | 1. 运行gcloud auth configure-docker重新配置。2. 确认 gcloud auth login已执行。3. 在 Cloud Console 检查 Artifact Registry 仓库是否存在,当前用户是否有 Artifact Registry Writer角色。 |
模型上传 (aiplatform.Model.upload) 失败 | 1.artifact_uri(GCS路径) 不存在或无权访问。2. serving_container_image_uri镜像不存在或无权访问。3. 容器镜像的架构与 Vertex AI 机器不兼容。 | 1. 使用gsutil ls gs://your-bucket/model/确认文件存在。2. 使用 gcloud artifacts docker images list确认镜像存在。3. 确保 Dockerfile 使用 linux/amd64架构(Vertex AI 标准)。可在docker build时添加--platform linux/amd64。 |
| 端点部署长时间卡住或失败 | 1. 容器启动失败(健康检查不通过)。 2. 机器类型资源不足(如 GPU 内存不足)。 3. 容器内代码错误(如模型加载失败)。 | 这是最常见的问题! 1. 在 Vertex AI -> 模型 -> 点击模型版本 -> 查看日志。重点看容器日志。 2. 检查 app.py中/health端点是否正常返回。在本地用 Docker 测试镜像:docker run -p 8080:8080 -e AIP_STORAGE_URI=/dummy your-image,然后访问localhost:8080/health。3. 在本地模拟 Vertex AI 环境:将模型文件挂载到容器的 /mnt/models,测试/predict端点。 |
| 预测请求返回 404 或 500 错误 | 1. 端点 URL 或 ID 错误。 2. 请求 JSON 格式与容器期望的格式不匹配。 3. 模型服务内部异常(如 CUDA 内存不足)。 | 1. 仔细核对ENDPOINT_ID。2. 检查容器日志,查看 /predict端点收到的具体请求和抛出的异常。3. 简化请求(如缩短 prompt),或尝试在部署时选择更大内存的 GPU 机器类型(如 NVIDIA_A100)。 |
| 预测延迟非常高 | 1. 模型首次加载需要时间(冷启动)。 2. 机器类型性能不足。 3. 未启用模型预热或最小副本数设为0。 | 1. 在部署时设置min_replica_count=1,让至少一个实例常驻,避免冷启动。2. 升级机器类型(更多 CPU/内存)或使用更强的 GPU。 3. 考虑使用 Vertex AI Prediction 的专用终端(Private Endpoint)以减少网络延迟。 |
关键排查命令:
- 查看模型和端点状态:
gcloud ai models list --region=us-central1 - 查看端点详情:
gcloud ai endpoints describe ENDPOINT_ID --region=us-central1 - 查看部署日志:在 Cloud Console 进入 Vertex AI -> 模型 -> 点击你的模型 -> 点击版本 ID -> 查看日志。
6. 最佳实践与工程建议
将大型语言模型投入生产环境,除了能跑通流程,还需要考虑稳定性、成本和可维护性。
6.1 容器优化
- 使用轻量级基础镜像:如
python:3.9-slim,减少镜像大小,加速拉取和启动。 - 分层构建:在 Dockerfile 中,将安装依赖 (
requirements.txt) 和复制代码分开,充分利用 Docker 缓存。 - 非 root 用户运行:在 Dockerfile 中创建并切换到一个非 root 用户,增强安全性。
RUN useradd -m -u 1000 appuser USER appuser6.2 模型服务优化
- 实现模型预热:在容器启动后、健康检查通过前,主动运行一次简单的推理,触发模型加载和 CUDA 内核初始化,避免第一个真实请求的延迟过高。
- 批处理预测:修改
/predict端点,使其能同时处理instances列表中的多个请求,利用 GPU 的并行能力提高吞吐量。 - 流式响应:对于长文本生成,考虑支持 Server-Sent Events (SSE) 流式输出,提升用户体验。这需要调整 Flask 应用和 Vertex AI 容器的兼容性(可能需要使用其他框架如 FastAPI)。
6.3 Vertex AI 配置优化
- 自动扩缩容:根据流量模式精细配置
min_replica_count和max_replica_count。例如,夜间可设置min_replica_count=0以节省成本,但需容忍冷启动延迟。 - 使用专用终端:对于生产流量,创建 Vertex AI Private Endpoint,避免流量经过公网,提升安全性和降低延迟。
- 监控与告警:在 Cloud Monitoring 中为模型的预测延迟、错误率、请求数量设置仪表盘和告警策略。
- 版本管理:每次模型更新时,在 Vertex AI Model Registry 中创建新版本,并在端点上进行 A/B 测试 或影子部署,确认无误后再切换流量。
6.4 安全与成本
- 服务账户权限:为 Vertex AI 使用的服务账户遵循最小权限原则,仅授予必要的权限(如 Storage Object Viewer 读取模型, Log Writer 写日志)。
- 模型文件加密:在 Cloud Storage 中上传模型时,默认使用 Google 管理密钥,对于敏感模型,可以使用客户管理密钥 (CMEK) 进行加密。
- 成本监控:大型 GPU 实例费用不菲。使用 Google Cloud 的预算和告警功能,监控 Vertex AI 和 Compute Engine 的成本。预估并设置每月预算上限。
7. 总结与后续步骤
通过本文的步骤,你已经成功地将一个类似于 Grok 4.6 的大语言模型部署到了 Google Cloud Vertex AI 平台,并能够通过 API 进行调用。这个过程的核心在于理解自定义容器与托管服务的对接方式。
回顾一下关键节点:
- 模型准备:获得模型权重文件并上传至 Cloud Storage。
- 容器化:编写一个符合 Vertex AI 规范的 Flask 应用(提供
/health和/predict端点)并打包成 Docker 镜像。 - 注册与部署:在 Vertex AI 中创建模型资源(关联容器镜像和模型文件存储位置),然后将其部署到一个在线端点上。
后续可以深入探索的方向:
- 性能调优:尝试不同的机器类型(如 A100 vs T4)、调整 Flask 的 worker 数量、启用模型量化(如使用
bitsandbytes进行 8-bit 量化)来降低显存消耗和提升速度。 - 集成其他服务:将 Vertex AI 端点与 Cloud Functions、Cloud Run 或你的后端应用集成,构建完整的 AI 应用。
- 探索 Model Garden:如果你的模型是公开的或经过转换的,可以研究如何将其发布到 Vertex AI Model Garden,供其他用户一键部署。
- 持续集成/持续部署 (CI/CD):使用 Cloud Build 自动化整个流程:代码提交 -> 构建镜像 -> 推送镜像 -> 更新 Vertex AI 模型版本 -> 部署到端点。
部署大模型到生产环境是一个系统工程,Vertex AI 提供了强大的托管能力来管理这个复杂性。希望这份指南能成为你构建企业级 AI 应用的坚实起点。如果在实践中遇到新的问题,不妨多查看 Vertex AI 的官方文档和日志,它们通常能提供最准确的答案。