调整 API

借助模型调优,用户可以调整模型的权重,以便针对特定任务进行自定义。用户需要提供特定于任务的训练数据集才能运行调优。

支持的模型

  • Gemini 1.0 Pro
    • Gemini-1.0-pro-002

创建调优作业

参数列表

参数

source_model

string

要调优的基本模型。从 gemini-1.0-pro-002 开始支持。

training_dataset

string

包含训练数据的 Cloud Storage 文件。您的数据集必须采用 JSONL 文件格式。

validation_dataset

可选:string

包含验证数据的 GCS 文件。您的数据集必须采用 JSONL 文件格式。最多可包含 256 个样本。如果您提供此文件,则数据将用于在微调期间定期生成验证指标。

epochs

可选:int

模型在训练期间对整个训练数据集进行的完整传递次数。

learning_rate_multiplier

可选:float

用于调整默认学习速率的系数。

tuned_model_display_name

可选:string

TunedModel 的显示名称。名称不得超过 128 个字符,且可以包含任何 UTF-8 字符。

示例

  • PROJECT_ID = PROJECT_ID
  • REGION = us-central1

基本用例

使用 gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl 中的训练数据集 URI 在基本模型 gemini-1.0-pro-002 上运行调优作业。所有其他参数都将使用自动值。

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs \
  -d '{
    "baseModel": "gemini-1.0-pro-002",
    "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl"
    },
  }'

Python

from vertexai.preview import tuning
from vertexai.preview.tuning import sft

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
)
stf_tuning_job.to_dict()

高级用例

使用 gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl 中的训练数据集 URI 在基本模型 gemini-1.0-pro-002 上运行调优作业。使用用户指定的值设置 hyper_parameters(例如 epoch_countlearning_rate_multiplier)。提供 gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl 作为 validation_dataset_uri

  • MODEL_ID = gemini-1.5-pro-preview-0409

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs \
  -d '{
    "baseModel": "gemini-1.0-pro-002",
    "supervisedTuningSpec" : {
        "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
        "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
        "hyper_parameters": {
            "epoch_count": 4,
            "learning_rate_multiplier": 1,
        },
    },
    "tunedModelDisplayName": "tuned_gemini_pro",
  }'

Python

from vertexai.preview import tuning
from vertexai.preview.tuning import sft

sft_tuning_job = sft.train(
    source_model="gemini-1.0-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
    validation_dataset="gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl",
    epochs=4,
    learning_rate_multiplier=1.0,
  tuned_model_display_name='tuned_gemini_pro'
)
stf_tuning_job.to_dict()

列出调优作业

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

curl

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs

Python

from vertexai.preview.tuning import sft

sft.SupervisedTuningJob.list()

获取调优作业

参数列表

参数

name

string

调优作业的资源名称。

示例

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION
  • TUNING_JOB_ID = TUNING_JOB_ID

curl

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs/{tuning_job_id}"

Python

from vertexai.preview import tuning
job = tuning.SupervisedTuningJob("projects/{PROJECT_ID}/locations/{REGION}/tuningJobs/{tuning_job_id}")

取消调优作业

参数

name

string

调优作业的资源名称。

示例

  • PROJECT_ID = PROJECT_ID
  • REGION = REGION

curl

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/tuningJobs/:cancel

Python

from vertexai.preview.tuning import sft

sft_tuning_job = sft.SupervisedTuningJob("projects/{PROJECT_ID}/locations/{REGION}/tuningJobs/")
sft_tuning_job.cancel()

深入探索

如需详细文档,请参阅以下内容: