模型调优是调整 Gemini 以更准确地执行特定任务的关键过程。模型调优的工作原理是为模型提供训练数据集,其中包含一组特定下游任务的示例。
在以下应用场景中使用 Gemini 调优 API:
支持的模型:
您可以对以下 Gemini 模型使用监督式微调:
模型 | 版本 |
---|---|
Gemini 1.5 Pro | gemini-1.5-pro-002 |
Gemini 1.5 Flash | gemini-1.5-flash-002 |
Gemini 1.0 Pro | gemini-1.0-pro-002 |
示例语法
用于对模型调优的语法。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs \ -d '{ "baseModel": "...", "supervisedTuningSpec" : { ... "hyper_parameters": { ... }, }, "tunedModelDisplayName": "", }'
参数列表
如需了解实现详情,请参阅示例。
请求正文
请求正文中包含具有以下参数的数据:
参数 | |
---|---|
|
可选: 要调优的基础模型的名称。支持的值为: |
|
|
supervisedTuningSpec
参数 | |
---|---|
|
训练数据集的 Cloud Storage URI。数据集必须采用 JSONL 文件格式。为获得最佳效果,请提供至少 100 到 500 个样本。如需了解详情,请参阅监督式调优数据集简介。 |
|
可选: 验证数据集的 Cloud Storage URI。您的数据集必须采用 JSONL 文件格式。一个数据集最多可以包含 256 个样本。如果您提供此文件,系统会在微调期间定期使用其中的数据生成验证指标。如需了解详情,请参阅监督式调优数据集简介。 |
|
可选: 在训练期间,模型完整通过整个训练数据集的次数。Vertex AI 会根据您的训练数据集大小自动调整默认值。此值基于基准测试结果,用于优化模型输出质量。 |
|
可选: 用于调整默认学习速率的系数。 |
|
可选: 用于调优的适配器大小。 |
|
可选:
|
AdapterSize
调优作业的适配器大小。
参数 | |
---|---|
|
未指定适配器大小。 |
|
适配器大小 1。 |
|
适配器大小 4。 |
|
适配器大小 8。 |
|
适配器大小 16。 |
示例
创建监督式调优作业
您可以使用 Vertex AI SDK for Python 或通过发送 POST 请求来创建监督式文本模型调优作业。
基本用例
基本用例仅设置 baseModel
和 training_dataset_uri
的值。所有其他参数均使用默认值。
如需创建模型调优作业,请使用 tuningJobs.create
方法发送 POST 请求。请注意,某些参数只受部分模型支持。确保仅包含您要调优的模型的适用参数。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :您的项目 ID。TUNING_JOB_REGION :运行调优作业的区域。这也是上传调优后模型的默认区域。BASE_MODEL :要调整的基础模型的名称。支持的值:gemini-1.5-pro-002
、gemini-1.5-flash-002
、gemini-1.0-pro-002
。TRAINING_DATASET_URI :训练数据集的 Cloud Storage URI。数据集必须采用 JSONL 文件格式。为获得最佳效果,请提供至少 100 到 500 个样本。如需了解详情,请参阅监督式调优数据集简介。
HTTP 方法和网址:
POST https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs
请求 JSON 正文:
{ "baseModel": "BASE_MODEL ", "supervisedTuningSpec" : { "training_dataset_uri": "TRAINING_DATASET_URI " }, }
如需发送请求,请选择以下方式之一:
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs"
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
响应
{ "name": "projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID ", "createTime":CREATE_TIME , "updateTime":UPDATE_TIME , "status": "STATUS ", "supervisedTuningSpec": { "training_dataset_uri": "TRAINING_DATASET_URI ", "validation_dataset_uri": "VALIDATION_DATASET_URI ", "hyper_parameters": { "epoch_count":EPOCH_COUNT , "learning_rate_multiplier":LEARNING_RATE_MULTIPLIER }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME " }
高级用例
高级用例在基本用例的基础上进行了扩展,但还会设置可选 hyper_parameters
(例如 epoch_count
、learning_rate_multiplier
和 adapter_size
)的值。
如需创建模型调优作业,请使用 tuningJobs.create
方法发送 POST 请求。请注意,某些参数只受部分模型支持。确保仅包含您要调优的模型的适用参数。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID :您的项目 ID。TUNING_JOB_REGION :运行调优作业的区域。这也是上传调优后模型的默认区域。BASE_MODEL :要调整的基础模型的名称。支持的值:gemini-1.5-pro-002
、gemini-1.5-flash-002
和gemini-1.0-pro-002
。TRAINING_DATASET_URI :训练数据集的 Cloud Storage URI。数据集必须采用 JSONL 文件格式。为获得最佳效果,请提供至少 100 到 500 个样本。如需了解详情,请参阅监督式调优数据集简介。VALIDATION_DATASET_URI 可选:验证数据集文件的 Cloud Storage URI。EPOCH_COUNT 可选:在训练期间,模型完整通过整个训练数据集的次数。如果不设置,则使用预先填充的建议值。ADAPTER_SIZE 可选:用于调优作业的适配器大小。 适配器大小会影响调优作业的可训练参数数量。适配器越大,意味着模型可以学习更复杂的任务,但需要更大的训练数据集和更长的训练时间。LEARNING_RATE_MULTIPLIER :可选:要应用于建议的学习速率的调节系数。如果不设置,则使用建议的值。TUNED_MODEL_DISPLAYNAME 可选:调优后模型的显示名称。如果未设置,则会生成随机名称。
HTTP 方法和网址:
POST https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs
请求 JSON 正文:
{ "baseModel": "BASE_MODEL ", "supervisedTuningSpec" : { "trainingDatasetUri": "TRAINING_DATASET_URI ", "validationDatasetUri": "VALIDATION_DATASET_URI ", "hyperParameters": { "epochCount":EPOCH_COUNT , "adapterSize": "ADAPTER_SIZE ", "learningRateMultiplier":LEARNING_RATE_MULTIPLIER }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME " }
如需发送请求,请选择以下方式之一:
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs"
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
响应
{ "name": "projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID ", "createTime":CREATE_TIME , "updateTime":UPDATE_TIME , "status": "STATUS ", "supervisedTuningSpec": { "trainingDatasetUri": "TRAINING_DATASET_URI ", "validationDatasetUri": "VALIDATION_DATASET_URI ", "hyperParameters": { "epochCount":EPOCH_COUNT , "adapterSize": "ADAPTER_SIZE ", "learningRateMultiplier":LEARNING_RATE_MULTIPLIER }, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME " }
列出调优作业
您可以使用 Vertex AI SDK for Python 或通过发送 GET 请求来查看当前项目中的调优作业列表。
如需创建模型调优作业,请使用 tuningJobs.create
方法发送 POST 请求。请注意,某些参数只受部分模型支持。确保仅包含您要调优的模型的适用参数。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
GET https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs
如需发送请求,请选择以下方式之一:
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs"
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
响应
{ "tuning_jobs": [TUNING_JOB_1 ,TUNING_JOB_2 , ... ] }
获取调优作业的详细信息
您可以使用 Vertex AI SDK for Python 或通过发送 GET 请求来获取调优作业的详细信息。
如需查看模型调优作业列表,请使用 tuningJobs.get
方法发送 GET 请求并指定 TuningJob_ID
。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
GET https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID
如需发送请求,请选择以下方式之一:
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID "
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID " | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
响应
{ "name": "projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID ", "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME ", "createTime":CREATE_TIME , "endTime":END_TIME , "tunedModel": { "model": "projects/PROJECT_ID /locations/TUNING_JOB_REGION /models/MODEL_ID ", "endpoint": "projects/PROJECT_ID /locations/TUNING_JOB_REGION /endpoints/ENDPOINT_ID " }, "experiment": "projects/PROJECT_ID /locations/TUNING_JOB_REGION /metadataStores/default/contexts/EXPERIMENT_ID ", "tuning_data_statistics": { "supervisedTuningDataStats": { "tuninDatasetExampleCount": "TUNING_DATASET_EXAMPLE_COUNT ", "totalTuningCharacterCount": "TOTAL_TUNING_CHARACTER_COUNT ", "tuningStepCount": "TUNING_STEP_COUNT " } }, "status": "STATUS ", "supervisedTuningSpec" : { "trainingDatasetUri": "TRAINING_DATASET_URI ", "validationDataset_uri": "VALIDATION_DATASET_URI ", "hyperParameters": { "epochCount":EPOCH_COUNT , "learningRateMultiplier":LEARNING_RATE_MULTIPLIER } } }
取消调优作业
您可以使用 Vertex AI SDK for Python 或通过发送 POST 请求来取消调优作业。
如需查看模型调优作业列表,请使用 tuningJobs.cancel
方法发送 GET 请求并指定 TuningJob_ID
。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
POST https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID :cancel
如需发送请求,请选择以下方式之一:
执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID :cancel"
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION -aiplatform.googleapis.com/v1/projects/PROJECT_ID /locations/TUNING_JOB_REGION /tuningJobs/TUNING_JOB_ID :cancel" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
响应
{}
后续步骤
如需查看详细文档,请参阅以下内容: