sentence-transformers调用EVIE-4.5B完整指南:MultiVectorEncoder三步实现多向量文档检索
发布时间:2026/11/3 10:26:05 锦皓数字建站

sentence-transformers调用EVIE-4.5B完整指南MultiVectorEncoder三步实现多向量文档检索EVIE-4.5B 是腾讯开源的多向量视觉文档检索模型本指南带你用 sentence-transformers 的 MultiVectorEncoder 三步完成多向量文档检索安装依赖、一行加载模型、三次调用算出相关性得分并附赠 Prefix-MRL 弹性维度控制技巧新手也能 10 分钟跑通 为什么选多向量检索EVIE-4.5B 的 MaxSim 原理传统单向量检索会把一整页文档压成一个点复杂表格、图表、版式细节全部丢失。EVIE-4.5B 采用Late-Interaction 多向量范式查询文本→ 一组查询向量每个 token 一个文档图片→ 一组文档向量每个视觉 token 一个约 750 个/页相关性得分 对每个查询向量找文档中最相似的那个向量取内积后求和即MaxSimS(Q, D) Σᵢ maxⱼ (qᵢ · dⱼ)这种延迟交互方式让文档中任意局部的证据都能被精确命中ViDoRe V1 上 nDCG5 达到92.07稳居榜单前列。此外EVIE-4.5B 支持Prefix-MRL 弹性维度单个 2048D 投影头运行时可自由截断为 64 / 128 / 256 / 512 / 1024 / 2048 维无需维护多套模型见 config.json 中的head_dims字段。第一步30 秒安装 sentence-transformers 与 EVIE-4.5B1. 克隆仓库可选需要本地权重与内置 demo 时使用git clone https://gitcode.com/tencent_hunyuan/EVIE-4.5B cd EVIE-4.5B2. 安装依赖pip install -U sentence-transformers[image]仓库的基础依赖清单见 requirements.txttorch ≥ 2.4、transformers、pillow 等。若你有 NVIDIA GPU强烈建议使用 GPU 推理速度差异非常大。 说明仓库内已按 sentence-transformers 6.0 规范打包好模型model_type: MultiVectorEncoder配置文件为 config_sentence_transformers.json。第二步一行代码用 MultiVectorEncoder 加载模型from sentence_transformers import MultiVectorEncoder model MultiVectorEncoder(tencent/EVIE-4.5B)就这一行背后会自动装配如下 4 级流水线定义于 modules.json模块类型作用0Transformer (ColQwen3.5)多模态主干双向注意力编码图文1_DenseDense2048D 线性投影Prefix-MRL 头2_NormalizeNormalize向量 L2 归一化3_MultiVectorMaskMultiVectorMask屏蔽 padding保留多向量结构同时模型默认使用maxsim相似度函数见 config_sentence_transformers.json 的similarity_fn_name文档侧会自动套用专用的 sentence-transformers 对话模板additional_chat_templates/sentence_transformers.jinja无需你手动拼 prompt。第三步三次调用完成文档检索encode_query、encode_document、similarity三个方法即查即得queries [ What is the total quarterly revenue?, How many employees does the company have?, ] documents [ examples/demo/pages/q3_revenue.png, examples/demo/pages/headcount.png, examples/demo/pages/invoice_4412.png, ] query_embeddings model.encode_query(queries) document_embeddings model.encode_document(documents) scores model.similarity(query_embeddings, document_embeddings) print(scores) # tensor([[17.25, 4.53, 6.79], # [ 7.61, 12.78, 4.35]])结果怎么读query_embeddings[0].shape为(23, 2048)一条查询是 23 个 token 向量每个 2048 维document_embeddings[0].shape为(991, 2048)一页文档约近千个向量scores是「查询 × 文档」矩阵值越大越相关按行排序即得 Top-K 排名文档输入非常灵活本地图片路径、URL、PIL.Image对象都可以。比如仓库自带的 8 页示例文档中examples/demo/pages/headcount.png 员工人数页headcount 1,204examples/demo/pages/patent.png 专利页Patent US-11,234,567取 Top-1 只需一行top1 scores.argmax(dim-1) # 每条查询命中的文档下标进阶Prefix-MRL 弹性维度64D–2048D 自由切换完整 2048 维精度最高ViDoRe V3 达 66.02但索引体积大。如果显存或存储紧张可对向量截断前缀 重新归一化from torch.nn.functional import normalize dimension 128 query_embeddings [normalize(e[..., :dimension], dim-1) for e in query_embeddings] document_embeddings [normalize(e[..., :dimension], dim-1) for e in document_embeddings] scores model.similarity(query_embeddings, document_embeddings)各档位的精度参考ViDoRe V3 Mean Task维度精度损失适用场景2048D基准离线精排、最高精度1024D / 512D≈ 0.04–0.12均衡之选128D / 64D0.75–1.5超大索引、CPU 在线检索生产环境还可叠加仓库内置的HAC 无训练 token 压缩code/compress/把每页约 750 个向量聚类压缩到 32 个百万页索引仅3.81 GiB。一键跑通本地 8 页 Demo不想写代码仓库内置了 8 页演示文档与完整评测脚本bash examples/demo/run.sh该脚本examples/demo/run.sh会自动构建 demo 页面、按最大 Matryoshka 维度加载模型并输出summary.json。若想更轻量地手动打分也可以直接用独立的推理 CLIpython infer.py --query How many employees are there? \ --image examples/demo/pages/headcount.pnginfer.py 支持--head 128切换投影头、--device cpu回退 CPU。常见坑与注意事项问题解决CPU 上跑很慢EVIE-4.5B 建议用 GPU bfloat16CPU 仅作调试两次运行得分略有差异不同 dtype 与 attention 后端会带来微小波动属正常现象想省显存/存储用 Prefix-MRL 截断到 128D/64D见进阶章节文档不是图片encode_document接受 URL、本地路径或PIL.Image先转图片即可总结三步回顾装pip install -U sentence-transformers[image]载MultiVectorEncoder(tencent/EVIE-4.5B)查encode_queryencode_documentsimilarity得到 MaxSim 得分矩阵从文本查询到文档图片检索只需十行代码。多向量 Prefix-MRL 的组合让 EVIE-4.5B 在精度、体积、速度之间自由权衡非常适合构建企业级视觉文档搜索引擎 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。