2026/11/4 19:44:05

Carrel 图文双路重排揭秘:文本与图像独立打分再按名次融合的原理

Carrel 图文双路重排揭秘:文本与图像独立打分再按名次融合的原理 【免费下载链接】carrelOntology-Augmented Generation for AI agents.项目地址https://gitcode.com/gh_mirrors/ca/carrel点击查看免费下载Carrel 是一个面向 AI Agent 的自托管知识库核心能力是混合检索与本体增强生成Ontology-Augmented Generation。它的图文双路重排Dual Reranking机制让文本片段和图片证据先由两个独立的重排模型分别打分、各自判断相关性最后再按名次而非分数融合成一份结果。本文将拆解这条检索链路的原理、关键参数和实测收益帮你理解为什么开启双路重排后图片类问题的命中率能从 50% 提升到 87.5%。 为什么需要「双路」单路重排搞不定图文混合检索传统 RAG 的重排环节通常只有一个文本交叉编码器Cross-Encoder但知识库里的证据并不都是文字图片证据截图、图表、界面照片在索引时只有一小段视觉模型生成的描述文字。文本重排器只能读这段旁白看不见图本身相关性判断经常失准用一张图提问以图搜证据时文本重排器更是完全无能为力文本分数和图片分数来自不同模型数值尺度不可比直接相加或取最大值都会互相干扰。Carrel 的解法是两路各打各的分、各判各的相关性最后只用名次这一把通用的尺子来融合。 整体流程召回 → 通道融合 → 双路并行重排 → 名次融合一次检索请求在重排前后的链路如下阶段做什么关键细节① 多通道召回向量、关键词BM25、图谱、视觉四路并行召回候选通道定义见 fusion.py 的CHANNELS② RRF 通道融合按1 / (60 名次)累加决定谁有资格进入重排rrf_merge常数KB_SEARCH_RRF_K默认 60③ 双路并行重排文本交叉编码器与多模态图片重排器同时开跑两条分支独立超时互不拖累④ 名次融合两路各自内部排名再按名次做第二次 RRF 得到最终顺序核心逻辑在 _rank_dual第 ② 步的 RRF 只决定候选进入重排的先后预算默认 64 个名额KB_SEARCH_RERANK_N真正的相关性判断发生在 ③④ 两步。✍️ 文本路交叉编码器如何给长文本打分文本重排器如 qwen3-reranker-0.6b接收的是清洗后的正文规则很讲究长切块不截断而是开窗打分约 480 token 一个窗口、32 token 重叠KB_SEARCH_RERANK_WINDOW_TOKENS/KB_SEARCH_RERANK_OVERLAP_TOKENS每个候选的最终分数取所有窗口的最高分避免答案被切在窗口缝隙里而丢失实现见 rerank.py输入带文件名 › 章节路径的头部行帮助模型理解出处通过相关性地板默认 0.1KB_SEARCH_RERANK_THRESHOLD的候选才被标记为accepted全部低于地板时整包降级为diagnostic提示 Agent证据偏弱文本路超时默认 20 秒失败时退回第 ② 步的融合顺序并在degraded字段中报告而不是让整个请求失败。️ 图像路多模态模型真的看图打分图像重排是双路机制的核心增量。rerank_images 的工作方式看缓存像素只允许读取校验过的本地缓存图片转成 data URL 喂给模型模型绝不会去抓取文档里引用的任何网络地址图 文一起进每个候选是多模态 content——图片像素 截断到 384 token 的来源文字模型综合判断这张图和问题的相关度以图搜图如果请求本身带查询图片image_b64问题一侧也变成文字 图片实现跨模态匹配小批量 硬预算每批最多 4 张图图像阶段默认 15 秒预算KB_SEARCH_VISUAL_RERANK_TIMEOUT且受整次请求总预算约束独立的相关性门槛 0.5KB_SEARCH_VISUAL_RERANK_THRESHOLD低分是拒绝不是模型故障。一张低相关图片不能靠它的向量相似度高分被救回见 test_dual_rerank.py 中的同名断言。⚖️ 名次融合为什么按排名而不是按分数不同模型输出的分数分布差异很大0.9 的文本分和 0.9 的视觉分含义完全不同。Carrel 的融合策略因此只用名次拿到视觉分数的候选只进入图像分路从文本分路中移除——同一证据只投一票避免图注文字 图片双重计票两条分路内部各自按相关性精排后分别计算 RRF 名次分1 / (60 名次)得到统一的score_fusionservice.py存在被接受候选时未通过各自门槛的候选被整体过滤——拒绝在融合后依然生效名次相同时不跨模型比大小保留原始召回顺序仅当请求带图片时图像分路在同名次下获得优先表格偏好、样板内容降权、低置信视觉降权等微调都在各分路内部、融合之前完成融合分数本身是排名分而非可信度概率。这套设计还有一个工程收益两条分支并行执行、独立降级。图像端点挂了文本路照常返回响应里只多一条visual_rerank:unavailable的降级记录。 实测效果图片证据命中率接近翻倍官方 0.3.0 检索评测 在 176 份文档、99 道问题上用本地 Qwen3 / Qwen3-VL 模型测得证据类型重排方式题数hit5MRR12图片、界面与图表文本重排84/850.00%0.5208图片、界面与图表双路重排87/887.50%0.8750文本事实与说明文本重排4745/4795.74%0.8216表格定位与数值文本重排2322/2395.65%0.8080结论很清晰双路重排最确定的收益在图片证据新增的 3 个 top-5 命中全部排到第 1 名而文本与表格题略有让位——这是能力取舍不是回归。完整报告含耗时与跨文档覆盖分析retrieval-evaluations-0.3.0.zh-CN.md。⚙️ 如何开启与调整双路重排双路重排默认开启只需提供端点即可自动生效配置说明见 configuration.zh-CN.md参数作用默认值RERANKER_BASE_URL文本重排端点留空则不做文本重排本地127.0.0.1:8102VISUAL_RERANKER_BASE_URL图像重排端点配置后自动参与融合本地127.0.0.1:8104KB_SEARCH_RERANK统一开关同时控制两路trueKB_SEARCH_RERANK_N/KB_SEARCH_VISUAL_RERANK_N总重排预算 / 图片最多占用的位置64 / 8KB_SEARCH_VISUAL_RERANK_THRESHOLD图像相关性门槛换模型需重新标定0.5KB_SEARCH_RRF_K名次融合平滑常数60本地部署可用--with-local-models一键拉起包含文本/视觉重排器在内的模型服务模板文件在 qwen3_reranker.jinja 与 qwen3_vl_reranker.jinja。排障时看两处/health会分别报告文本重排、视觉召回、图像重排是否在线响应里的retrieval_summary.ranking给出两路状态sources中每条证据的ranking字段标明它来自哪条分路、排名第几。 关键源码与文档导航双路重排主逻辑app/kb_search/service.py_rank_dual并行打分与名次融合重排客户端与窗口打分app/kb_search/rerank.py召回通道 RRF 融合app/kb_search/fusion.py全部检索参数与默认值app/kb_search/config.py分路行为测试融合、超时、回退app/tests/test_dual_rerank.py图文分路重排官方说明docs/retrieval.zh-CN.md小结Carrel 的图文双路重排可以浓缩成三句话图像证据交给看得见图的多模态模型文本证据交给文本交叉编码器两路独立打分、独立设门槛拒绝不可被高分翻案最后只用名次做 RRF 融合让不可比的分数量纲退场。这正是它在图片类问题上命中率接近翻倍的来源。赞分享【免费下载链接】carrelOntology-Augmented Generation for AI agents.项目地址https://gitcode.com/gh_mirrors/ca/carrel点击查看免费下载相关推荐为什么选择r8brain-free-src对比主流音频重采样库的10大优势为什么选择r8brain free src对比主流音频重采样库的10大优势 r8brain free src是一款高质量专业音频重采样C库专注于提供高效如何高效使用智能GUI助手UI-TARS桌面版的完整操作手册如何高效使用智能GUI助手UI TARS桌面版的完整操作手册 UI TARS桌面版是一款革命性的多模态AI代理工具能够将前沿的视觉语言模型与代理基础设施无缝人工智能大模型AI Agent自主智能体多模态GUI自动化浏览器控制桌面应用TIPSv2-SO400m/14 文本编码器原理揭秘SentencePiece分词与Transformer如何对齐图像TIPSv2 SO400m/14 文本编码器原理揭秘SentencePiece分词与Transformer如何对齐图像 TIPSv2 SO400m/14 是上一篇Ling-3.0-tiny-base-30T检查点怎么选Pre-trained/Mid-trained/Merged三大版本完全解读下一篇Movie Narrator 可靠性设计完整解析熔断器、检查点恢复与质量门禁如何保障电影解说视频成片质量创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考