模型微调
模型微调是在不依赖训练服务的情况下对模型进行二次训练,达到二次调优的效果。调优后的迭代模型可以在智驾模型管理列表中查看。
新建模型微调任务
- 在左侧菜单栏中选择“智驾模型服务 > 模型微调”。
- 单击“新建任务”。在新建模型微调任务页面,填写基本信息。
- 名称:只能包含数字、英文、中文、下划线、中划线,输入长度不得超过64个字符。
- 描述:简要描述任务,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。
- 完成模型配置。
- 模型级别:可选择“初始模型”和“迭代模型”。“初始模型”为Octopus平台提供的内置模型,“迭代模型”是用户二次微调后的模型。
- 输入模型:选择需要进行微调的模型和版本。初始模型提供的内置模型如下:
表1 Octopus平台提供的内置模型 模型名称
说明
hw_model_scene_generation
场景生成模型
- 输出模型:模型微调后存储的模型仓库。
- 模型版本描述:简要描述模型版本,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。
- 完成算法配置。
- 参数列表:选择输入模型及版本后,将自动关联显示参数列表信息。支持自定义value值。
- 环境变量列表:选择输入模型及版本后,将自动关联显示环境变量列表信息。用户可以自定义value值。
当预标注模型的key为semantic_categories、instance_categories时,value值是数据集中所有的标注类型名称(允许中文,不允许遗漏某个标注类型),按语义分割和实例分割,分开统计后的值。示例如下:
- instance_categories:“交通警示物,骑行者,其它车辆,两轮车,消防栓,柱子,地面标识,限位块,行人,车辆,地锁,减速带”
- semantic_categories:“可行驶区域,路沿,车道线,车位线”
- 数据集:选择训练的数据集。格式参考:场景生成模型数据集格式。
- 资源规格:选择训练使用的资源池和资源规格。
- 单击“确认”,下发模型微调任务。
模型微调任务相关操作
在模型微调任务列表页,还可以完成以下操作。
|
任务 |
操作步骤 |
|---|---|
|
查看任务详情 |
单击任务名称,在任务详情页面查看模型微调任务详情,包括任务基本信息、参数详情以及任务日志。 |
|
停止任务 |
当任务状态为“排队中”或“运行中”时,可单击操作栏内的“停止”,进行停止任务操作。 |
|
复制任务 |
单击操作栏内的“复制”,可基于现有任务创建新任务。 |
|
单个删除任务 |
单击操作栏内的“删除”可单个删除任务。模型微调任务删除后无法恢复,请谨慎操作。 |
|
批量删除任务 |
勾选名称前面的复选框,单击列表上方的“删除”,可批量删除任务。模型微调任务删除后无法恢复,请谨慎操作。 |
|
查询模型微调任务 |
在搜索输入框中输入搜索条件,按回车键即可查询目标任务。 |
场景生成模型数据集格式
目录结构
|--demo_data
|--folder1
|--X1.pth
|--X2.pth
pth文件格式
注:训练的视频图片分辨率为448*800,BEV如果经过投影也是这个尺寸
# torch.shape (T K C H W)
# x torch.shape (K C T H W)
# 当前训练的输入
{
'pixel_values': torch.Size([17, 7, 3, 448, 800]), # 源视频,可选,推理时对比使用
'caption': ['daytime, cloudy, suburban, straight road, white building, green trees.', ..., ], # 源文本,可选,推理时对比使用
'x': torch.Size([7, 16, 5, 56, 100]), # 源视频过vae处理后
'y': torch.Size([1, 400, 4096]), # 源文本过语言模型(当前是T5)处理后
'y_mask': torch.Size([1, 400]), # 源文本过语言模型(当前是T5)处理后
'meta_infos': { # 一些元数据
'infos': [{'image_path': [], 'bbox_info': [], 'lidar_pose': [], }, ..., ], # 原始图片, bbox, 雷达信息
'calibrate': {'left_forward': {}, 'front': {}, ...}, # 原始标定参数信息
},
'bev': torch.Size([17, 7, 4, 448, 800]), # bev信息,4层结构
'bboxes': torch.Size([17, 7, 82, 8, 3]), # bboxes 3d 位置
'classes': torch.Size([17, 7, 82]), # bboxes 3d 类型
'masks': torch.Size([17, 7, 82]), # bboxes 3d 可见性
'camera_param': torch.Size([17, 7, 3, 7]), # 相机参数, 3x3的内参矩阵, 3x3的旋转矩阵, 3x1的平移向量
'lidar2image': torch.Size([17, 7, 4, 4]), # 4x4雷达到图片的转换矩阵
'frame_emb': torch.Size([17, 4, 4]), # 4x4每一帧到第一帧的相对位姿
}