GRPO强化多模态大模型目标检测能力奖励函数代码设计 原创

发布于 2025-7-14 07:20
浏览
0收藏

多模态大模型的目标检测任务可以通过GRPO训练增强,因此今天本文介绍的代码适用于需要预测边界框的多模态任务,代码将围绕"边界框预测任务"构建一套奖励机制,用于评估模型输出的质量,奖励以下维度:

  • 基于 IoU 计算奖励
  • 基于置信度计算奖励
  • 答案格式奖励

工具函数(边界框处理函数)

  • ​extract_bbox(response)​​​:从模型输出文本中提取边界框信息。模型输出需用​​</think>​​​和​​<|FunctionCallEnd|>​​​包裹边界框数据(如​​[{"Position": [x1,y1,x2,y2], "Confidence": 0.9}, ...]​​​)。处理格式错误(如单引号转双引号、补全截断的JSON结构),返回解析后的边界框列表或​​None​​(解析失败)。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区
  • ​calculate_iou(bbox1, bbox2)​​​:计算两个边界框的交并比(IoU),衡量重叠程度。输入:两个边界框的坐标​​(x1,y1,x2,y2)​​(左上角和右下角)。输出:IoU值(0~1,值越高重叠越好)。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区
  • ​sort_and_calculate_iou(list1, list2, iou_threshold=0.5)​​:将预测边界框与真实边界框匹配,计算IoU结果。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区

步骤:

    输出:列表​​[(iou1, confidence1), (iou2, confidence2), ...]​​,记录每个预测框的匹配质量。

  1. 预测框按置信度降序排序。
  2. 对每个预测框,匹配真实框中未匹配过的、IoU最大的框(超过阈值视为匹配)。
  • ​remove_duplicates(bbox_list)​​:移除重复的边界框(通过坐标去重),确保每个边界框唯一。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区

奖励计算逻辑

  • ​compute_reward_iou​​:IoU(衡量位置准确性),匹配成功(IoU>0)时,置信度越高奖励越高;匹配失败(IoU=0)时,高置信度会被惩罚(奖励降低)。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区
  • ​compute_reward_confidence​​:衡量模型对预测的确定性。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区

奖励函数设计

  • ​accuracy_reward_iou​​​:基于边界框IoU的准确性奖励。输入:模型预测(​​completions​​​)和标准答案(​​solution​​​)。1. 提取预测和真实的边界框,去重后计算IoU匹配结果。2. 用​​compute_reward_iou​​计算奖励(0~1,值越高预测越准)。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区
  • ​accuracy_reward_confidence​​​:基于预测置信度的准确性奖励。逻辑与​​accuracy_reward_iou​​类似,但奖励更侧重预测框的置信度合理性(例如:匹配成功时高置信度加分,匹配失败时高置信度扣分)。GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区
  • ​format_reward​​:与DeepSeek-R1那样对模型输出格式进行奖励。这里不多介绍。

GRPO强化多模态大模型目标检测能力奖励函数代码设计-AI.x社区


本文转载自​大模型自然语言处理​   作者:余俊晖

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-7-14 10:46:14修改
收藏
回复
举报
回复
相关推荐