模型微调
模型微调是在不依赖训练服务的情况下对模型进行二次训练,达到二次调优的效果。调优后的迭代模型可以在智驾模型管理列表中查看。
新建模型微调任务
- 在左侧菜单栏中选择“智驾模型服务 > 模型微调”。
- 单击“新建任务”。在新建模型微调任务页面,填写基本信息。
- 名称:只能包含数字、英文、中文、下划线、中划线,输入长度不得超过64个字符。
- 描述:简要描述任务,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。
- 完成模型配置。
- 模型级别:可选择“初始模型”和“迭代模型”。“初始模型”为Octopus平台提供的内置模型,“迭代模型”是用户二次微调后的模型。
- 输入模型:选择需要进行微调的模型和版本。初始模型提供的内置模型如下:
表1 Octopus平台提供的内置模型 模型名称
说明
hw_model_scene_generation
场景生成模型
hw_model_scene_generation_closed_loop
场景生成闭环模型
- 输出模型:模型微调后存储的模型仓库。
- 模型版本描述:简要描述模型版本,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。
- 完成算法配置。
- 训练类型:选择输入模型及版本后,将自动关联显示模型支持的训练类型。部分模型有该选项。
- 参数列表:选择输入模型及版本后,将自动关联显示参数列表信息。支持自定义value值。
- 环境变量列表:选择输入模型及版本后,将自动关联显示环境变量列表信息。用户可以自定义value值。
- 数据集:选择训练的数据集。格式参考:场景生成模型数据集格式。
- 资源规格:选择训练使用的资源池和资源规格。
- 单击“确认”,下发模型微调任务。
模型微调任务相关操作
在模型微调任务列表页,还可以完成以下操作。
|
任务 |
操作步骤 |
|---|---|
|
查看任务详情 |
单击任务名称,在任务详情页面查看模型微调任务详情,包括任务基本信息、参数详情以及任务日志。 |
|
停止任务 |
当任务状态为“排队中”、“等待中”或“运行中”时,可单击操作栏内的“停止”,进行停止任务操作。 |
|
复制任务 |
单击操作栏内的“复制”,可基于现有任务创建新任务。 |
|
单个删除任务 |
单击操作栏内的“删除”可单个删除任务。模型微调任务删除后无法恢复,请谨慎操作。 |
|
批量删除任务 |
勾选名称前面的复选框,单击列表上方的“删除”,可批量删除任务。模型微调任务删除后无法恢复,请谨慎操作。 |
|
查询模型微调任务 |
在搜索输入框中输入搜索条件,按回车键即可查询目标任务。 |
场景生成模型及场景生成闭环模型数据集格式
目录结构
|--demo_data
|--oc_folder1
|--X1.pth
|--X2.pth
…
|--oc_folderX
|--X1.pth
|--X2.pth
…
…
pth文件格式
注:训练的视频图片分辨率为448*800,BEV如果经过投影也是这个尺寸
{
'pixel_values': torch.Size([17,7,3,448,800]) #源视频,
'caption': ['daytime, cloudy, suburban, straightroadwhitebuildtrees.'],#源文本,
'x': torch.Size([7,32,17,16,32]) #源视频pixel_values过vae处理后得到,
'y': torch.Size([1,62,4096]) #源文本经过语言模型处理后得到的编码,
'y_mask': torch.Size([1,62]) #源文本过语言模型处理后得到的mask编码,
'bev': torch.Size([17,7,4,512,1024]), #bev信息, ,必选
'bboxes': torch.Size([17,7,14,8,3]) #场景中障碍物的3D框位置,,必选
'classes': torch.Size([17,7,14]) #bboxes3d类型,必选,
'masks': torch.Size([17,7,14]) #bboxes3d可见性,必选,
'camera_param': torch.Size([17,7,3,7]),#相机参数, 必选,
'lidar2image': torch.Size([17,7,4,4]) #雷达到图片的转换矩阵 ,必选
'frame_emb': torch.Size([17,17,4,4]) #4x4每一帧到第一帧的相对位姿,必选
'bbox_projs': torch.Size([17,7,11,512,1024]) # bbox投影到图片的信息,必选
}
各字段详细说明:
|
字段 |
类型&尺寸 |
字段含义 |
是否必选 |
说明 |
|
pixel_values |
torch.Size([17,7,3,512,1024]), torch.float32 |
源视频 |
可选 |
推理时对比使用,归一化在-1,1之间 |
|
caption |
['daytime, cloudy, suburban, straightroadwhitebuildtrees.'] |
源文本,对整段视频文件的描述 |
必选 |
需要有该字段(实际使用的是经T5编码后的y) ,caption的个数和y 和y_mask相关 |
|
x |
torch.Size([7,32,17,16,32]) torch.bfloat16 |
源视频pixel_values过vae处理后得到 |
必选 |
形状(K,C,XT,XH,XW)K是摄像机数,固定为7,C为vae输出特征channel,固定为32,T为采样帧数,H为图像高度,W为图像宽度,XT,XH,XW是指(T,H,W)降采样之后的大小 (XT = T/1, XH = H / 32, XW = W / 32); |
|
y |
torch.Size([1,62,4096]),torch.float32 |
源文本经过语言模型(当前是T5)处理后得到的编码 |
必选 |
形状为[1,N,4096] ,N为实际的分词长度,不同内容使用不同的分词器产生的分词长度不同,实际训练的时候补回400 (t5支持的最大值) |
|
y_mask |
torch.Size([1,62]),torch.bool |
源文本过语言模型(当前是T5)处理后得到的mask编码 |
必选 |
形状为[1,N],0 表示无效填充字符,1表示属于有效源文本字符; N为实际的分词长度,和y中的N保持一致 |
|
bev |
torch.Size([17,7,4,512,1024]) ,torch.float32 |
bev信息,自车周围环境的鸟瞰图,4层结构提取的特征 |
必选 |
形状[T,K,4,512,1024],T为采样帧数,固定17,K是摄像机数,固定7,4通道,512*1024的图像,每个通道是特征的二值映射,分别为:divider,ped_crossing,boundary,drivable_area,bev中,自车从左向右行驶 |
|
bboxes |
torch.Size([17,7,14,8,3]),torch.float32 |
#场景中障碍物的3D框位置 |
必选 |
形状是(T,K,N,8,3),T为采样帧数,固定17,K是摄像机数,固定7,N是3D框的个数,N是可变的,每个框由8个顶点组成(车顶激光lidar坐标系) |
|
classes |
torch.Size([17,7,14]),torch.int64 |
bboxes3d类型 |
必选 |
形状为(T,K,N)T为采样帧数,固定17,K是摄像机数,固定7,N是3D框的个数,取值[0,10] 分别表示: "car", "truck", "bus", "motorcycle", "construction_vehicle", "trailer", "bicycle", "pedestrian", "traffic_cone", "fence", "barrier" |
|
masks |
torch.Size([17,7,14]),torch.bool |
bboxes3d在七视角图片上的可见性 |
必选 |
形状是(T,K,N)T为采样帧数,固定17,K是摄像机数,固定7,N是3D框的个数,取值True/False, 3dbbox在相机上可见置为True, 不可见置为False, |
|
camera_param |
torch.Size([17,7,3,7]), torch.float32 |
相机参数 |
必选 |
形状为(T,K,3,7)其中T为采样帧数,固定17,K为摄像机数,固定7,(3,7)矩阵表示[K R T]矩阵,其中k为摄像机3x3的内参矩阵,R为3x3的旋转矩阵,T为3x1的平移向量 |
|
lidar2image |
torch.Size([17,7,4,4]),torch.float32 |
雷达到图片的转换矩阵 |
必选 |
形状(T,K,4,4), 其中T为采样帧数,固定17,K为摄像机数,固定7,用于bbox投影到每个摄像机视角 |
|
frame_emb |
torch.Size([17,17,4,4]),torch.float32 |
当前帧到其他帧的相对位姿 |
必选 |
形状(T,T,4,4)其中T为采样帧数,固定17,实际使用只用到当前帧到后面其他帧的相对位姿,到前面帧的相对位姿无用,可用默认值填充 |
|
bbox_projs |
torch.Size([17,7,11,512,1024]) torch.float3 2 |
Bbox 投影到图片 HW维度 |
必选 |
形状[T,K,N,512,1024],T为采样帧数,固定17,K为摄像机数,固定7, N为3d框类别,取值[0,10], 512*1024的图像 |