1. 先读结论
如果目标是“最大化故事上限”,优先级不是训练 VLM,也不是一上来 fine-tune LLM,而是先把系统拆成观察、召回、评估、决策、写作五层,再训练最贴近“故事好不好”的那一层。
一句话结论:VLM 负责看见事实,embedding 负责快速捞候选,reranker/scorer 负责判断故事价值,evaluator/controller 负责诊断缺口和决定下一步,LLM writer 负责把已批准的故事写好。
| 模块 | 它解决什么 | 是否优先训练 | PM 判断口径 |
|---|---|---|---|
| VLM / PhotoCard | 把照片里的可见事实、人物、物品、场景、时间、互动写出来。 | 暂时不训。 | 靠 prompt、字段 schema、规则补特征更划算。VLM 没看见的事实,后面很难凭空补回来。 |
| Embedding | 把 PhotoCard 变成可快速搜索的表示,从全相册召回可能相关的照片。 | 后置训练。 | 先用强开源模型和多向量工程跑起来。等有 story-positive 数据后,再蒸馏成“故事证据召回”。 |
| Reranker / Story Scorer | 在候选里判断哪张图、哪组图更能支撑好故事。 | 最值得先训。 | 它离业务目标最近:相关不等于有故事,reranker 要学会“这组图有没有梗和证据”。 |
| Evaluator / Controller | 判断候选池够不够、缺什么证据、要不要补召回或重写。 | 先工程化,后训练局部 scorer。 | 它是决策器,不只是打分器。可以先用规则 + LLM judge + rubric。 |
| LLM Writer | 把已批准的 cover+pins 改写成好 caption,不重选图、不编关系。 | 不急。 | 优先 prompt / few-shot / guardrail。只有风格稳定性成为瓶颈时再训 LoRA。 |
2. 一张图理解系统
不要把 embedding 理解成“快速 VLM”。更准确地说,embedding 是 VLM 结果的快速索引器。它不会重新看图,也不会自动理解完整故事;它只是把已经写出来的 PhotoCard 压缩成便于搜索的信号。
PM 记法:VLM 决定“系统看见什么”,embedding 决定“能不能快速找到证据”,reranker 决定“这是不是故事证据”,evaluator 决定“下一步怎么补救”,LLM 决定“表达是否好看”。
3. 半天学习路线
这不是论文精读路线,而是 PM 建立判断力的路线。每一段都对应一个你之后会和算法、后端、数据同学讨论的问题。
读本文件第 1-4 节。目标是能用自己的话解释 VLM、embedding、reranker、evaluator、LLM writer 的分工。
读 BGE-M3、Qwen3-Embedding、ColBERT 的说明。只看它们解决什么,不看公式。重点理解 dense、sparse、multi-vector 的差异。
读 bge-reranker、Qwen3-Reranker。重点是 cross-encoder/reranker 为什么比 embedding 慢但更准,以及为什么适合判断故事价值。
读 CRAG 和 Self-RAG。重点是“评估召回质量后决定下一步”,这正好对应你的 planner/controller 回环。
读 Agent-as-a-Judge 摘要。重点是为什么只评最终 caption 不够,要评 recall、synthesis、scoring、writer 每一步。
读第 9-12 节,形成自己的判断:先做 benchmark 和 label,再训 reranker,最后蒸馏 embedding。
写清楚:本周验证什么、需要哪些标注、成功指标是什么。不要直接跳到“训练大模型”。
4. PM 词汇表
VLM
Vision Language Model。它看图并输出文字或结构化 JSON。在你的系统里,它把照片变成 PhotoCard。PM 关注字段质量,不必关心视觉 encoder 细节。
PhotoCard
每张照片的结构化档案。好的 PhotoCard 应该保留故事相关线索:人物、互动、物品、场景、时间、地点、OCR、拍摄视角、社交形态。
Embedding
把文本或图片变成向量,方便快速搜索相似内容。它适合“先捞一批可能相关的候选”,不适合独立判断故事好坏。
Dense / Sparse / Multi-vector
Dense 是一个整体语义向量;sparse 更像关键词和稀疏词权重;multi-vector 保留多个局部向量,适合长文本、多字段、细粒度匹配。
Reranker
对 embedding 捞出来的候选重新排序。它通常看 query 和候选全文,速度慢一些,但判断更细。你可以把它理解成“排序型评估器”。
Evaluator
更大的诊断模块。它不只排序,还要判断候选池是否足够、缺什么证据、下一步该补哪条 recall lane、writer 有没有越界。
Hard Negative
看起来很像正例但其实不是好答案的负样本。例如同一个餐厅、同一个人、同一晚上,但不能组成故事。这是训练 story-aware reranker 的关键。
Grounded Story
有证据支撑的故事。它可以有表达上的幽默和角度,但不能编身份、关系、动机、因果、地点或时间。
5. VLM 与工程特征:为什么暂时不训
你对 VLM 的判断是对的:在当前阶段,VLM 更像“观察和特征生成”的基础设施。它的问题通常不是模型不会看,而是输出字段不够适合后续故事检索。
VLM 应该靠工程补什么
| 特征 | 为什么对故事重要 | 工程补法 |
|---|---|---|
| 人物连续性 | 故事经常来自同一个人或同一群人的多帧变化。 | face_id、nickname、共同出现频次、同组出游窗口。 |
| 互动关系 | 好故事常来自“人和人/宠物之间发生了什么”。 | 强制 VLM 区分个人动作和互动动作;单独抽 relations。 |
| 事件链 | cover+pins 需要 setup、升级、揭示、结果。 | 按时间、地点、人物、活动聚合,生成 event cluster。 |
| 故事物件 | 饮料、票据、屏幕、菜单、证件、服装常是梗点。 | OCR、object_presented、品牌/文字最细粒度保留。 |
| 拍摄视角 | 自拍、他拍、第一视角会影响故事主语和 caption。 | capture.mode 枚举;低置信度时标 ambiguous。 |
不要急着训 VLM:如果 VLM 输出缺字段,先改 prompt/schema 和后处理。训练 VLM 成本高、回归风险大,而且不一定提升“故事选择”。
6. Embedding 学什么:从“相关图召回”到“故事证据召回”
普通 embedding 学的是 query 和文档是否语义相关。你的目标更难:一张照片可能和 query 相关,但不一定能成为故事证据;另一张照片单看一般,和 cover 放在一起却很有叙事价值。
三个层级
单向量召回
把整张 PhotoCard 压成一个向量。简单、快、便宜,但长文本和多线索容易被平均掉。
字段化多向量
people、relations、scene、time、ocr 分别建向量,再按 query 意图融合。更适合 story agent。
故事监督蒸馏
用 reranker/人工偏好告诉 embedding:哪些候选能组成好故事,哪些只是相似噪声。
模型短名单
| 模型 / 项目 | 适合你的原因 | PM 关注点 |
|---|---|---|
| Qwen3-Embedding / Reranker | 中文/英文、多语言、长上下文、instruction-aware,有配套 reranker。 | 适合作为下一代主线 baseline。重点验证 story query 下的召回和 rerank。 |
| BAAI/bge-m3 | 支持 dense、sparse、multi-vector,已经和你的实验环境贴近。 | 不要只用 dense,应该验证 sparse + colbert/multi-vector。 |
| Tevatron | 训练 dense retriever 的工具箱,适合后续系统性训练。 | 先看数据格式和 hard negative 训练流程,不必先上大规模训练。 |
| ColBERT | late interaction 的经典项目,解释为什么多向量能保留细节。 | 适合启发 PhotoCard 字段/短语级检索,不一定直接照搬。 |
7. Reranker / Evaluator:最该训练的核心层
Reranker 是 evaluator 里最容易训练、最稳定落地的一块。它的输入通常是 query 和候选,输出一个相关分或排序。对你来说,它不应只判断“像不像”,而要判断“能不能支撑好故事”。
普通 reranker 和 story-aware reranker 的差别
| 维度 | 普通 reranker | Story-aware reranker |
|---|---|---|
| 目标 | 这个文档是否回答 query。 | 这张图/这组图是否能支撑一个 grounded cover+pin 故事。 |
| 输入 | query + passage。 | query + cover card + candidate pin cards + 时间/人物/地点/关系特征。 |
| 负样本 | 不相关文档。 | 看似相关但没故事的照片:同人无事件、同地点无关系、同物品无转折。 |
| 输出 | 相关分。 | 证据分、关系分、故事潜力分、越界风险、缺口类型。 |
建议的第一版训练目标:先不要训练一个会写故事的 LLM,先训练一个会判断候选组合好坏的 scorer。它能服务召回排序、controller 决策、最终质检三处,收益更集中。
可参考项目
- bge-reranker-v2-m3:多语言 reranker,FlagEmbedding 提供 fine-tune 路线。
- Qwen3-Reranker-0.6B:支持自定义 instruction,适合把任务定义成 story evidence ranking。
- Prometheus-Eval:不是 reranker,但可参考 rubric judge 的结构化打分方式。
8. Agent 自修正:Evaluator 不只是裁判
在 story agent 里,evaluator 的最大价值不是给最终故事打一个分,而是在过程中告诉 controller:现在缺什么,下一步该做什么。
CRAG 给你的启发
CRAG 的核心是先评估检索结果质量,再决定是否修正或扩展检索。迁移到你的系统,就是先判断候选池够不够,再决定补同人、补事件链、补时间邻近或放弃。
Self-RAG 给你的启发
Self-RAG 把 retrieve、generate、critique 放在一个循环里。迁移到你的系统,就是让 agent 在不同阶段自问:还需要证据吗?当前证据支持这个故事吗?caption 忠实吗?
Agent-as-a-Judge 给你的启发
复杂 agent 不能只看最终答案,要评估轨迹。迁移到你的系统,就是分别评 recall、hypothesis、synthesis、scoring、writer,每一步都有诊断指标。
Reflexion / Self-Refine 给你的启发
反馈要能变成下一步动作。比如“caption 编了关系”不只是扣分,还要转成“只 rewrite,不重选图,不新增因果”的操作。
你的 evaluator 可以拆成三类
| 阶段 | 问题 | 输出给 controller 的动作 |
|---|---|---|
| 召回后 | 候选池够不够支撑故事? | 补同人、补时间、补事件、补地点、补 OCR、停止。 |
| 组合后 | cover+pins 是否有关系、事件、信息增益? | 重排、换 pin、降低故事强度、放弃该组合。 |
| 写作后 | caption 是否改变事实、编因果、改关系、超长度? | 只 rewrite、收紧 subject reference、删除越界梗。 |
9. 到底要不要训练
训练不是目标,训练是当工程和 prompt 到达瓶颈后,把已知偏好固化到模型里的手段。先问三个问题。
1. LLM 全扫能找到好故事吗?
如果能,说明上限存在,问题在召回/排序效率。优先做 embedding + reranker。
2. 候选已经对但故事不好吗?
如果是,问题在 synthesis/scoring/writer。优先做 story scorer 和 writer guardrail。
3. LLM 看完也找不到吗?
如果是,问题可能在 VLM 特征、故事定义或相册本身,不要先训 embedding。
训练优先级
| 优先级 | 训练对象 | 何时开始 | 需要的数据 |
|---|---|---|---|
| 1 | Story-aware reranker / scorer | 有 500-2,000 组候选组合偏好样本时。 | query、cover、pins、好/坏标签、失败原因、人工或高质量 judge 分。 |
| 2 | Embedding 蒸馏 | reranker 能稳定区分好坏后。 | reranker 高分正例、hard negatives、同一 query 下排序列表。 |
| 3 | Caption writer LoRA | 选图已稳定,但文风/长度/subject reference 不稳定时。 | 批准故事到高质量 caption 的成对样本。 |
| 4 | 完整 LLM policy / agent | 已有大量 trajectory 数据和稳定 reward 后。 | 完整 trace、每步动作、reward、人工偏好、失败诊断。 |
10. 必读资料
下面按“半天读完”的优先级排序。每个资料只要求你读能支持 PM 决策的部分。
读什么:读 abstract 和方法图,理解“先评估召回,再决定补救”的思想。
跳过什么:具体 benchmark 和公式可以先跳过。
FlagEmbedding · BGE-M3 · Reranker
读什么:读模型列表、dense/sparse/multi-vector、reranker fine-tune 的说明。
PM takeaway:这套最接近你当前实验,可以先验证“多向量 + reranker”。
GitHub · 论文 · 0.6B Reranker
读什么:读 model list、instruction-aware、embedding + reranker 组合方式。
PM takeaway:适合把你的任务写成 instruction:retrieve/rerank photo evidence for grounded cover+pin stories。
读什么:只理解 late interaction:不要把长文档压成一个向量,而是保留局部匹配。
PM takeaway:你的 PhotoCard 很像长文档,多字段、多人物、多物品,适合 late interaction 思路。
读什么:读“retrieve, generate, critique”的循环,不必看训练细节。
PM takeaway:agent 可以学会判断何时需要检索、检索是否有用、生成是否被证据支持。
读什么:读为什么 agent 不能只评最终输出,要评估完整轨迹。
PM takeaway:你的 story agent 应该评 recall、synthesis、score、writer 每一步,而不是只评最终 caption。
ColPali · ColPali paper · Jina v4 paper
读什么:理解 VLM/multimodal embedding + late interaction 如何用于视觉文档检索。
PM takeaway:不是当前第一优先级,但能启发未来“直接图像 embedding + PhotoCard text”的混合路线。
11. PM 检查清单
每次讨论“要不要训练”“为什么故事不好”时,用这张清单把问题定位到具体层,而不是泛泛说模型不行。
故事质量 rubric
| 维度 | 好故事标准 | 常见失败 |
|---|---|---|
| 事实忠实 | 故事只使用 PhotoCard 和 metadata 支持的信息。 | 编身份、编关系、编动机、编精确地点。 |
| 关系/互动 | cover 和 pins 之间有可见的人物、物品、场景或事件连接。 | 只是同类图拼在一起,没有关系。 |
| 信息增益 | pin 让 cover 的故事更完整,提供 setup、升级、反差或结果。 | pin 只是重复 cover。 |
| 故事吸引力 | 普通但具体,有可分享的角度,不靠夸张编造。 | 文案流畅但证据弱,像泛泛鸡汤或泛 meme。 |
| caption 安全 | 短、准、有口吻,保留主体和逻辑。 | 为了好笑改变事实,或让 subject reference 混乱。 |
12. 建议路线图
这里按“最大化故事上限,同时控制训练风险”的顺序排。
| 阶段 | 目标 | 动作 | 成功标准 |
|---|---|---|---|
| 第 1 阶段:不训练 | 确认上限和瓶颈。 | 跑 LLM full-scan ceiling、BGE-M3 dense/sparse/multi-vector、Qwen3 rerank baseline。 | 知道是“召回漏了”“排序错了”“组合差了”还是“writer 越界”。 |
| 第 2 阶段:标注偏好 | 沉淀 story quality 数据。 | 对每个 query 保存 top candidates,标好/坏、失败原因、是否可作为 cover/pin。 | 至少有 500 组高质量偏好样本,hard negative 覆盖主要失败类型。 |
| 第 3 阶段:训 reranker/scorer | 让系统学会“故事证据排序”。 | 用 Qwen3-Reranker 或 bge-reranker 做 LoRA/fine-tune,输出故事支持分。 | topK 的故事可用率、人评故事分、越界率明显改善。 |
| 第 4 阶段:蒸馏 embedding | 让召回层更早捞到好故事候选。 | 用 reranker 高分样本做正例,误召回做 hard negative,训练 embedding。 | Recall@50/100 和 story-positive candidate rate 上升,latency/cost 下降。 |
| 第 5 阶段:训练 writer 或 agent | 只在表达或完整轨迹成为瓶颈时做。 | caption writer LoRA、reward model、process reward,逐步做。 | caption 风格稳定、事实越界率下降、人工偏好提升。 |
关键提醒:不要先训完整 LLM agent。先把 story-aware scorer 做准,它会反过来让召回、组合、写作、评估都有可复用的信号。
13. 来源链接
以下是本资料使用和建议阅读的主要项目/论文。阅读时优先看 README、model card、abstract 和 architecture 图。
Embedding / Reranker
Multi-vector / Multimodal
Evaluator / Agent Loop
Judge / Evaluation Tools
注:外部项目状态会随时间变化。真正用于生产或训练前,需要再核对模型许可证、商用限制、依赖版本、硬件成本和最新 benchmark。