更新时间:2026-01-27 GMT+08:00
分享

模型微调

模型微调是在不依赖训练服务的情况下对模型进行二次训练,达到二次调优的效果。调优后的迭代模型可以在智驾模型管理列表中查看。

新建模型微调任务

  1. 在左侧菜单栏中选择“智驾模型服务 > 模型微调”。
  2. 单击“新建任务”。在新建模型微调任务页面,填写基本信息。

    • 名称:只能包含数字、英文、中文、下划线、中划线,输入长度不得超过64个字符。
    • 描述:简要描述任务,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。

  3. 完成模型配置。

    • 模型级别:可选择“初始模型”和“迭代模型”。“初始模型”为Octopus平台提供的内置模型,“迭代模型”是用户二次微调后的模型。
    • 输入模型:选择需要进行微调的模型和版本。初始模型提供的内置模型如下:
      表1 Octopus平台提供的内置模型

      模型名称

      说明

      hw_model_scene_generation

      场景生成模型

      hw_model_scene_generation_closed_loop

      场景生成闭环模型

    • 输出模型:模型微调后存储的模型仓库。
    • 模型版本描述:简要描述模型版本,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。

  4. 完成算法配置。

    • 训练类型:选择输入模型及版本后,将自动关联显示模型支持的训练类型。部分模型有该选项。
    • 参数列表:选择输入模型及版本后,将自动关联显示参数列表信息。支持自定义value值。
    • 环境变量列表:选择输入模型及版本后,将自动关联显示环境变量列表信息。用户可以自定义value值。
    • 数据集:选择训练的数据集。格式参考:场景生成模型数据集格式
    • 资源规格:选择训练使用的资源池和资源规格。

  5. 单击“确认”,下发模型微调任务。

模型微调任务相关操作

在模型微调任务列表页,还可以完成以下操作。

表2 模型微调任务管理相关操作

任务

操作步骤

查看任务详情

单击任务名称,在任务详情页面查看模型微调任务详情,包括任务基本信息、参数详情以及任务日志。

停止任务

当任务状态为“排队中”、“等待中”或“运行中”时,可单击操作栏内的“停止”,进行停止任务操作。

复制任务

单击操作栏内的“复制”,可基于现有任务创建新任务。

单个删除任务

单击操作栏内的“删除”可单个删除任务。模型微调任务删除后无法恢复,请谨慎操作。

批量删除任务

勾选名称前面的复选框,单击列表上方的“删除”,可批量删除任务。模型微调任务删除后无法恢复,请谨慎操作。

查询模型微调任务

在搜索输入框中输入搜索条件,按回车键即可查询目标任务。

场景生成模型及场景生成闭环模型数据集格式

目录结构

注:文件夹的命名需要包含“oc_”
|--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的图像

相关文档