GCP中Gemini批量预测出现内部错误排查求助
Gemini批量预测任务崩溃(INTERNAL错误)排查
背景信息
已验证以下JSON请求结构可正常调用Gemini API:
{ "contents":[ { "role":"user", "parts":[ { "text":"do xyz" }, { "inline_data":{ "mime_type":"audio/wav", "data":"<encoded data>" } } ] } ], "system_instruction":{ "parts":[ { "text":"long instruction" } ] }, "generation_config":{ "max_output_tokens":8192, "temperature":0.9, "top_p":0.95 } }
将约3万条该结构的请求存入BigQuery的JSON类型Request列,通过以下Python API提交批量预测任务:
import requests url = "https://europe-west6-aiplatform.googleapis.com/v1/projects/myprivateproject/locations/europe-west6/batchPredictionJobs" payload = { "name": "new-run", "displayName": "NewRun", "model": "publishers/google/models/gemini-1.5-pro-001", "inputConfig": { "instancesFormat": "bigquery", "bigquerySource": { "inputUri": "bq://myprivateproject.datasetname.GeminiBatchTable" } }, "outputConfig": { "predictionsFormat": "bigquery", "bigqueryDestination": { "outputUri": "bq://myprivateproject.datasetname.GeminiBatchTable" } } } # Get the access token access_token = get_access_token() headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json; charset=utf-8" } response = requests.post(url, headers=headers, json=payload) print(response.json()) if response.status_code == 200: print("Request successful!") print("Response:", response.json()) else: print("Failed to send request:", response.status_code) print("Response:", response.text)
问题描述
任务进入Pending状态后崩溃,仅显示Error (INTERNAL),无详细日志信息。怀疑可能的原因:
- 模型未全面GA导致权限问题
- 需提前创建目标表结构
- 目标表路径设置错误
排查建议
1. 权限与模型可用性检查
- 确认
gemini-1.5-pro-001模型在europe-west6区域是否已开放GA访问,部分模型在特定区域可能处于预览阶段,需申请权限或切换至已GA的区域。 - 检查提交任务的账号是否拥有
aiplatform.batchPredictionJobs.create权限,以及BigQuery的dataEditor或更高权限(用于读写表数据)。 - 用单次API调用验证账号的Gemini模型调用权限,排除批量任务特有的权限问题。
2. 目标表配置检查
- 路径冲突问题:当前输入表与输出表为同一表
GeminiBatchTable,批量预测默认会在目标路径下生成新表(如GeminiBatchTable_prediction_xxxx),指定已存在的表可能引发冲突。建议修改输出URI为数据集路径(如bq://myprivateproject.datasetname)让系统自动生成结果表,或指定不存在的表名(如bq://myprivateproject.datasetname.GeminiBatchResults)。 - 表结构要求:无需提前创建目标表结构,系统会自动根据预测结果生成表;若强制指定已存在的表,需确保表结构与预测输出兼容,否则可能触发内部错误。
3. 输入数据验证
- 抽样检查BigQuery中
Request列的内容,确认所有音频数据编码完整、符合audio/wav格式要求,排除单条异常数据导致的批量任务崩溃。 - 先提交小批量任务(如10条)验证运行状态,排除数据量过大引发的内部错误。
4. 日志深度排查
- 前往Vertex AI控制台的批量预测任务详情页,查看日志标签页(关联Cloud Logging),过滤
batchPredictionJobs相关日志,获取更详细的错误信息。 - 检查Cloud Logging中是否存在BigQuery读写相关的报错,比如权限不足、数据格式不兼容等。
内容的提问来源于stack exchange,提问作者Giancarlo Metitieri
相关产品推荐
相关产品推荐

