多模态重排模型训练:样本与评测怎么做
图片和文字资料一起检索时,结果不相关往往不是模型名称一个问题,而是相关性标准、样本字段和评测方法没有统一。本文从任务定义开始,整理一套适合新手执行的多模态重排模…
检索任务与相关性标准
开始训练前,先写清楚系统要回答什么问题。查询可以是文字、图片,或图文组合;候选结果可以是图片、OCR文字、页面片段或它们的组合。每条样本都要能回答“为什么相关”以及“为什么不相关”。
- 按资料类型划分查询:产品截图、扫描页、图表、界面截图和普通图片。
- 为相关性设定等级:强相关、部分相关、不相关、无法判断。
- 固定评测范围,例如只比较同一批候选资料,避免每次测试数据变化。
- 约定无法判断时的处理方式,通常进入人工复核队列,不直接作为正样本。
资料包仅确认公开索引中出现过多模态嵌入与重排模型相关主题,未确认具体模型名称、训练参数、显存要求或接口字段。因此,下面使用通用字段和流程,不把某个实现写成唯一方案。
训练样本字段表
建议先用表格保存原始资料和标注结果,再导出为训练框架所需格式。图片地址、OCR文本和查询文本应分别保留,避免后续无法判断错误来自视觉内容还是文字内容。
| 字段 | 用途 | 填写要求 |
|---|---|---|
| query_id | 关联一次查询 | 保持唯一,测试集也沿用 |
| query_text | 保存文字查询 | 记录原始表达,不要只留改写版 |
| query_image | 保存查询图片 | 写入稳定文件标识或内部路径 |
| candidate_id | 关联候选资料 | 不能只保存文件名 |
| candidate_text | 保存OCR或页面片段 | 标记是否经过人工修正 |
| relevance | 记录相关性等级 | 使用预先约定的等级 |
| reason | 说明标注依据 | 写出命中的对象、文字或版面关系 |
| hard_case | 标记难例 | 记录误排原因和复核状态 |
| split | 划分训练、验证或测试 | 相近图片和同源页面避免跨集合 |
正负样本整理
- 先选出明确相关的候选作为正样本,例如查询要求找某张包含特定字段的截图,而候选确实包含该字段。
- 再加入明确不相关的候选,例如主题相近但缺少目标字段的图片。
- 补充部分相关样本,例如图片主体相同但文字版本、页面区域或业务用途不同。
- 检查同一查询下的正负样本是否具有可比较性,避免把明显无关内容全部当作负样本。
- 保留原始查询、候选内容和人工理由,后续发现标注标准变化时才能重新整理。
正负样本比例不应脱离实际任务单独决定。比起追求整齐数量,更重要的是覆盖真实误排:文字相似但图片不同、图片相似但关键文字不同、同一页面不同区域,以及OCR存在轻微错误的情况。
难例归档规则
难例是最值得复用的错误资料。建议每次评测后,把模型高分但人工判为不相关,或模型低分但人工判为强相关的记录单独保存。
- 视觉相似:主体、颜色或版式相近,但目标对象不同。
- 文字相似:关键词相同,但上下文、版本或数值不同。
- 跨模态冲突:图片看起来相关,OCR文字却指向另一个对象。
- 局部命中:整张图片不相关,但某个区域含有查询所需信息。
- 资料质量问题:图片模糊、裁切、旋转或OCR缺字导致判断困难。
难例字段至少包括错误类型、查询标识、候选标识、人工结论、复核人、复核时间和是否回流训练集。无法形成稳定结论的记录应保留为观察样本,不要强行标成正例或负例。
固定查询评测方法
训练或微调后,先使用固定查询集比较旧方案和新方案。每次测试都固定查询、候选池、排序数量和评测规则,只替换待比较的模型或配置。
- 为每条查询保存人工认可的相关候选集合。
- 分别运行基线方案和新方案,保存完整排序结果与分数。
- 检查前几位是否出现强相关结果,并记录首个相关结果的位置。
- 统计命中率、前几位命中情况、平均排名和人工复核通过率。
- 按查询类型拆分结果,观察图片主导、文字主导和图文冲突样本是否出现不同变化。
不要只看一个总分。若整体指标提高,但关键的图片文字查询变差,应优先检查该类样本的标注一致性、候选池和难例覆盖。
截图查询示例
假设查询是“找出包含新版接口参数说明的后台截图”,查询同时包含截图和文字描述。候选结果中可能有旧版截图、同一页面的帮助文档、只出现接口名称的页面,以及真正包含参数说明的截图。
- 强相关:图片区域和文字内容都能确认新版参数说明。
- 部分相关:页面主题一致,但只出现接口名称,没有参数细节。
- 不相关:版式相似或关键词相同,但属于旧版本。
- 待复核:图片清晰度不足,无法确认版本信息。
评测时要同时看排序位置和理由记录。若旧方案把版式相似的旧截图排在前面,新方案把包含目标参数的截图提前,即使分数不可直接横向解释,也可以通过人工记录确认排序是否改善。
常见故障修正
| 故障 | 原因 | 修正动作 |
|---|---|---|
| 训练后结果没有改善 | 相关性标准不一致或样本过于简单 | 抽查标注理由,补充部分相关和相似负样本 |
| 文字查询有效,图片查询变差 | 图片字段缺失、尺寸处理不一致或图文配对错误 | 检查图片标识、预处理记录和查询候选对应关系 |
| 模型偏爱关键词相同的候选 | 负样本没有覆盖同词不同义场景 | 加入关键词相同但对象、版本或用途不同的难例 |
| 评测结果每次波动 | 查询、候选池或排序数量发生变化 | 冻结测试集、候选池和运行配置,并保存版本号 |
| 写作导入后找不到原图 | 只保存了文本片段,没有保存资料标识 | 为每个结果绑定图片标识、来源位置和复核状态 |
| 人工标注意见冲突 | 等级定义不够具体 | 用争议样本补充标注说明,再进行双人复核 |
发布前验收检查
检索结果通过人工复核后,再进入写作流程。需要从训练记录中分离出可引用资料,避免把实验分数或未经确认的候选内容直接写进正文。
如果还需要整理图片文字资料的基础检索流程,可参考多模态嵌入检索的资料整理方法,再将本文的样本和重排记录接到后续写作环节。
- 查询、候选和人工相关性标准已经写成可复查文档。
- 训练集、验证集和固定测试集已经分开,近似重复资料没有跨集合泄漏。
- 每条正负样本都有来源标识和必要的标注理由。
- 难例已按错误类型归档,并标记是否回流训练。
- 基线方案与新方案使用同一批固定查询和候选池。
- 评测结果不仅有总指标,也有按查询类型拆分的结果。
- 低置信度和无法判断的结果已进入人工复核,不直接进入正文。
- 写作导入记录了图片、文字片段、来源位置和复核状态。
- 正文没有引用未确认的模型名称、参数、性能或部署结论。
下一步
把这篇的方法练一遍
提示词和步骤可以带到创作里直接试做一版。