如何在Vertex AI中高效二次微调已注册的code-bison自定义模型
Vertex AI 自定义模型二次微调与版本化实现方案
一、基于已有自定义模型二次微调
要实现基于已调优的custom-code-gen-model继续微调,需先从Vertex AI模型注册表中导入该模型,再执行微调流程,而非从基础模型code-bison@002重新开始。
实现代码
from vertexai.language_models import CodeGenerationModel from google.cloud import aiplatform # 1. 从模型注册表获取最新版本的自定义模型 # 按创建时间倒序,取第一个即为最新版本 existing_model = aiplatform.Model.list( display_name="custom-code-gen-model", order_by="create_time desc" )[0] # 2. 将注册表模型转换为可微调的CodeGenerationModel实例 tuned_base_model = CodeGenerationModel.get_tuned_model(existing_model.resource_name) # 3. 使用新数据集执行二次微调 new_training_data = "gs://training/new_dataset.jsonl" fine_tuned_model_v2 = tuned_base_model.tune_model( training_data=new_training_data, train_steps=100, # 根据新数据规模调整训练步数 tuning_job_location="<LOCATION>", tuned_model_location="<LOCATION>", model_display_name="custom-code-gen-model", # 保持原模型名称 accelerator_type="GPU", # 版本化配置:添加版本别名与描述 version_aliases=["v2"], version_description="基于v1模型二次微调,适配新业务数据集" )
二、同一模型名称下的版本化管理
通过在微调时指定相同的model_display_name,并配置version_aliases和version_description参数,即可在模型注册表中保留同一模型名称,同时创建独立版本。
版本化关键说明
- 无需修改模型显示名称,Vertex AI会自动为同一名称的模型创建新版本,而非生成新的模型条目
version_aliases可设置如v1、v2等标识,方便后续快速定位特定版本version_description用于记录版本差异,便于团队协作管理
加载特定版本模型
若需调用特定版本的模型,可通过版本别名或资源名加载:
# 方式1:通过版本别名直接加载 model_v2 = CodeGenerationModel.get_tuned_model( "projects/<你的项目ID>/locations/<地区ID>/models/<模型ID>@v2" ) # 方式2:通过筛选条件获取指定版本资源 target_model = aiplatform.Model.list( display_name="custom-code-gen-model", filter="version_aliases:v2" )[0] model_v2 = CodeGenerationModel.get_tuned_model(target_model.resource_name)
注意事项
- 确保
aiplatform客户端已正确配置项目与地区权限 - 二次微调的训练步数、学习率等参数可根据新数据集特性调整,无需与首次微调一致
- 若之前版本化失败,检查是否在微调时未保持
model_display_name与原模型一致,或未正确配置版本参数
内容的提问来源于stack exchange,提问作者Anis Rafid
相关产品推荐
相关产品推荐

