工作整理-2025

Apr 25, 2024
2 views
Work

Minieye

车舱VLM

💡 ****

任务

任务主要包含舱内感知和舱外感知两种任务,具体来说,舱内和舱外感知都会有很多子任务,比如说,舱内就包含人物的基础属性(性别,年龄,位置,动作,衣着等),遗落物体,宠物等等;舱外又包含天气,道路情况,停车后周围环境等。

数据

数据包含不同阶段的数据处理,pretrain,sft,rl

  • pretrain数据:大部分为为Caption数据,用来训练模型的图文知识,也包含一些文本数据,为了防止模型的语言能力遗忘问题
  • sft数据:这部分数据就包含了多种任务,包含caption、ocr、grounding、gqa、text、多轮对话等,也包含 了大量的内部数据,主要为舱内和舱外的感知对话数据
  • RL数据:这部分为两种数据 一种是偏好数据集用于DPO训练,另外一种是prompt数据用于GRPO训练

模型和训练

模型主要的结构为 前期采用的是llava架构, 后期采用的是qwen2.5vl以及qwen3-vl, 大小主要采用0.8B,4B,8B

训练步骤同样也分为pretrain-sft-rl三部分, 前期会做pretrain, 后期考虑到迭代速度和资源等原因会抛弃掉pretrain只做后训练

  • pretrain:包含align和知识灌入(caption):50M
  • sft:实验数据比例:20M
  • rl:借鉴internvl-3.5的成功经验,采用cascade强化训练的方案(用off-policy 预热,这样模型生成的 rollouts 质量更高,训练会更加稳定,接着用on-policy refine)

评测

利用vlmevalkit框架 调研主流的benchmark 并构建内部任务的benchmark, 分维度评测和量化性能指标

大的维度主要分为 多模,语言,项目任务,每个大维度里面又会细分细粒度的维度

image

Agent

这部分我只是参与了前期的框架调研和demo展示

目前整个项目的Agent框架流程主要包含 意图识别Agent、拒识Agent以及各自功能模块的Agent等

探索方案

  • 数据收集和处理框架: 一直在完善数据的整体pipeline,包含数据比例以及数据质量评估的方案
  • 压缩视觉token:在实际的使用中,视觉部分占用的token的占比还是比较大的,尤其是当传感器的分辨率较大时,所以我们探索了几种不同框架下压缩视觉token的方式,我们也自己实践并探索对比了一下 选出一个比较好的方案:
  • 正反馈循环系统:为了得到一套正反馈系统,由之前小模型的项目经验,建立了一套:数据采集—数据处理—模型训练—模型评估—badcase tag标签,这里主要说明basecase的分析,首先评测的数据我们会有一套tag系统(借鉴数据标注时的管道系统,通过小模型和人工规则筛取)来对现有的badcase分为比较细粒度的tag标签来查看模型存在的问题,然后定时收集和扩充我们的训练集和测试集
  • 提升推理输出速率:这部分我们也在调研和试验阶段,主要基于自投机采样方案来增大模型的推理速度
  • GUI-Agent:这部分同样也在调研和试验阶段,主要的方案主要参考UI-TARS2的方案来构建车机端的在线UI沙盒系统

商汤

产线动作识别

💡 ****

  • 工作整体流程:
    对产险上的video做动作的识别, video帧有标注,分不同的工位
  • 数据及GT(产险时序start,end帧的序号及对应动作类别(16+1)):
  • 关于 video action recognize
  • 以TDN为网络框架基础
  • 工作细节:

利用之前框架可以提取每一个segmemt的embedding, 在通过TRN的方式结合未来帧的信息来预测当前帧的输出结果

车舱项目Gaze识别

💡 ****

  • 整体工作流程:3d gaze-vec的回归,满足各个区域及分心的precision和recall精度指标要求
  • 数据相关标定及采集:
  • 泛化性能优化工作:
  • 模型结构:backbone为mobilenet-V2搜索版本
    loss
class CA_Loss_op(nn.Module):
    def __init__(self):
        super(CA_Loss_op, self).__init__()

    def forward(self, gaze, label):
        totals = torch.sum(gaze * label, dim=1, keepdim=True)
        length1 = torch.sqrt(torch.sum(gaze * gaze, dim=1, keepdim=True))
        length2 = torch.sqrt(torch.sum(label * label, dim=1, keepdim=True))
        res = totals / (length1 * length2)
        # angle = torch.mean(torch.acos(torch.min(res, torch.ones_like(res)*0.9999999))) * 180/math.pi
        angle = torch.acos(torch.min(res, torch.ones_like(res) * 0.9999999)) * 180 / math.pi
        angle = angle.reshape(-1)

        thresh_old_angle = 5
        angle_sorted, idx = torch.sort(angle, descending=True)
        idx_threshold = -1
        nums_min = 10
        while idx_threshold < nums_min:
            for i in range(len(angle_sorted)):
                if angle_sorted[i] > thresh_old_angle:
                    idx_threshold += 1
                else:
                    idx_threshold = i
                    if idx_threshold > nums_min:
                        break
            thresh_old_angle = thresh_old_angle - 1

        sorted_idx = idx[:idx_threshold]
        ohem_loss = angle[sorted_idx]
        angel_avg = ohem_loss.sum() / (idx_threshold + 1)
        return angel_avg

单目深度估计

💡 基于深度估计的单目相机方案调研和落地

  • 论文:manydepth

PDD

推词服务:

💡 ****

  • 主要场景包含:搜索框底纹词推荐、猜你想搜、腰部推荐
  • 模型:CTR、CVR模型
  • 输入特征:用户历史搜索词、点击商品为trigger,围绕u2i2q、u2q2q、u2c2q(c为用户偏好类目)
    猜你想搜(搜索中)&底纹

重排阶段LTR模型:

💡 重排阶段LTR模型,包括特征生成和模型的部署

  • 主要工作:重排时针对item权重的学习双塔模型,item主要权重包含:price,精排分数,相关性打分,销量

实验室

目标检测遮挡优化

💡 目标检测遮挡问题:
当两个不同类别物体产生遮挡时,分类会对定位造成混淆

  • 模型思路:在做定位时,很多时候可能proposal会向非对应gt去回归。所以尝试在定位分支中加入物体分类的信息。