HuggingFace镜像/colqwen3.5-4.5B-v3
模型介绍文件和版本分析
下载使用量0

ColQwen3.5-4.5B-v3

基于ColBERT风格的后期交互视觉文档检索模型,采用Qwen3.5-4B构建。

45亿参数 | 128维嵌入 | LoRA(r=16,alpha=64) | BF16

关于嵌入维度的说明:投影头为320维(已训练)。config.json中设置dim: 320(供ColQwen3_5读取),并将embed_dim: 320作为跨生态工具的同义词,因此ColQwen3_5.from_pretrained(...)默认可正确加载。排行榜中显示“128”的列反映的是colpali-engine类的默认值(self.dim = getattr(config, "dim", 128)),而非实际输出维度。

设计理念

V3版本在V2的基础上,引入了自动化超参数搜索和进化模型融合技术。搜索过程确定了最优的LoRA配置(r=16,alpha=64)及余弦调度策略,最终模型 checkpoint 是与V2版本进行逐层进化融合的结果。这使得模型在各基准测试中的表现较V2提升了0.0219。

基准测试结果

ViDoRe V3(nDCG@10)

实时 ViDoRe V3 排行榜 上的排名会随着新提交模型的加入而变化。发布时,v3版本总体排名第3;以下数据采集于2026年4月20日,此时v3在“Mean (Task)”指标上排名第6,在40亿参数级别模型中仍保持前三。

排名模型内存(MB)参数(B)嵌入维度最大 tokensMean (Task)Mean (Public)Mean (Private)
1nemotron-colembed-vl-8b-v2167228.7409626214463.4263.5462.92
2webAI-ColVec1-9b—9.42256026214463.0064.4557.20
3webAI-ColVec1-4b—4.54164026214462.2263.3957.55
4tomoro-colqwen3-embed-8b167248.032026214461.5961.6061.56
5nemotron-colembed-vl-4b-v292064.8256026214461.5461.4262.04
6colqwen3.5-4.5B-v386604.612826214461.4661.5661.06
7Ops-Colqwen3-4B92064.825603276861.1761.2760.78
8tomoro-colqwen3-embed-4b84664.032026214460.2060.1660.33
9llama-nemotron-colembed-vl-3b-v284034.4073072819259.7959.7060.16
10jina-embeddings-v475003.93520483276857.5257.5457.41

ViDoRe V1+V2(nDCG@5)

排名模型ArxivQADocVQAInfoVQAShiftProjSynAISynEnergySynGovSynHealthTabfquadTatdqaBioMedESGHLESGEcon平均值
1Ops-Colqwen3-4B91.866.594.090.899.697.398.099.693.682.465.578.666.064.584.9
2nemotron-colembed-vl-8b-v293.168.194.693.3100.097.998.999.697.783.466.273.260.660.884.8
3nemotron-colembed-vl-4b-v292.067.493.392.399.396.298.098.598.181.264.371.461.560.883.9
4colqwen3.5-4.5B-v391.966.693.690.2100.097.197.398.995.984.065.373.858.059.983.7
5llama-nemotron-colembed-vl-3b-v290.467.294.792.0100.098.098.098.997.381.063.273.158.658.683.6
6tomoro-colqwen3-embed-8b91.266.494.587.999.396.797.699.194.280.965.576.060.759.583.5
7EvoQwen2.5-VL-Retriever-7B-v191.565.194.188.899.696.696.398.993.682.365.277.059.759.183.4
8tomoro-colqwen3-embed-4b90.666.394.387.499.396.997.299.694.379.965.474.662.456.383.2
9llama-nemoretriever-colembed-3b-v188.466.294.990.799.696.697.899.395.980.662.775.457.457.883.1
10SauerkrautLM-ColQwen3-8b-v0.193.864.794.590.498.696.596.899.392.284.063.370.857.958.082.9

局限性

  • 在大多数 V3 任务上落后于 Nemotron 8B(平均任务差距为 1.9 分)
  • V1+V2 平均值略低于 Ops-ColQwen3 和 Nemotron 变体
  • V2 是表现最弱的基准领域(ESG、Econ)
  • 更大规模的 4B+ 提交模型(webAI-ColVec1-4b/9b)在 v3 之后发布,目前在总体平均任务上领先;v3 在 4B 级模型中仍保持前三

使用方法

import torch
from PIL import Image
from colpali_engine.models import ColQwen3_5, ColQwen3_5Processor

model = ColQwen3_5.from_pretrained(
    "athrael-soju/colqwen3.5-4.5B-v3",
    torch_dtype=torch.bfloat16,
    device_map="cuda",
    attn_implementation="sdpa",
)
processor = ColQwen3_5Processor.from_pretrained("athrael-soju/colqwen3.5-4.5B-v3")

# Embed document images
images = [Image.open("page1.png"), Image.open("page2.png")]
batch = processor.process_images(images).to(model.device)
with torch.no_grad():
    doc_embeddings = model(**batch)

# Embed queries
queries = ["What is the revenue for Q4?", "Show me the organizational chart"]
batch = processor.process_queries(queries).to(model.device)
with torch.no_grad():
    model.rope_deltas = None
    query_embeddings = model(**batch)

# Score with MaxSim
scores = processor.score(query_embeddings, doc_embeddings)

训练

流程

  1. 超参数搜索:在 V1+V3 上进行多目标优化,确定最佳 LoRA 配置
  2. 完整训练:使用优化后的超参数,3 个随机种子(42、123、456),训练 1 个 epoch
  3. 种子融合:完整状态字典平均(将 3 个种子的模型融合为 1 个)
  4. 模型融合:与 V2 进行每层进化式融合

训练数据(约 77.6 万对)

  • vidore/colpali_train_set:12.7 万
  • openbmb/VisRAG-Ret-Train-Synthetic-data:23.9 万
  • openbmb/VisRAG-Ret-Train-In-domain-data:12.3 万
  • llamaindex/vdr-multilingual-train:约 27 万(5 种语言)
  • vidore/tatdqa_train:约 1.3 万(金融领域)
  • Metric-AI/tabfquad_train_set:约 0.15 万(表格数据)

超参数

参数值
LoRA r16
LoRA alpha64(alpha/r = 4.0)
学习率(LR)4.57e-5
调度器cosine
Dropout0.197
预热(Warmup)8%
权重衰减0.02
批大小32
难负例2 个/样本
随机种子42, 123, 456

技术说明

  • PEFT 的 add_weighted_adapter 函数在 ColQwen3.5 上存在问题(DARE-TIES 和线性融合均受影响)。种子融合需使用完整状态字典平均法。
  • 模型融合通过直接状态字典插值结合每层优化权重实现。
  • B200/Blackwell GPU 需要将 Conv3d 猴补丁替换为 F.linear。
  • 在使用难负例进行前向传播前,务必清除 rope_deltas。

透明度

V1、V2 和 V3 版本开发过程中的完整评估记录可在 athrael-soju/colqwen-optimization-trail 查看。其中包括所有中间评估结果,展示了尝试过的候选模型、它们的得分以及被选中进行发布的模型。所有选择决策均基于与最终报告相同的公开 ViDoRe 基准进行评估。

归档版本(V1 和 V2)

V1 和 V2 模型快照已整合到本仓库中,以减少仓库分散并保留溯源信息。之前单独的 colqwen3.5-4.5B-v1 和 colqwen3.5-4.5B-v2 仓库的全部内容可在以下路径获取:

  • v1/ — 完整的 V1 快照(权重、模型卡片、分词器、配置文件)
  • v2/ — 完整的 V2 快照(权重、模型卡片、分词器、配置文件)

每个子文件夹均包含完整的原始文件集(model.safetensors、README.md、config.json、chat_template.jinja、processor_config.json、tokenizer.json、tokenizer_config.json)。

加载归档版本的方法:

from colpali_engine.models import ColQwen3_5, ColQwen3_5Processor
# V1
model = ColQwen3_5.from_pretrained("athrael-soju/colqwen3.5-4.5B-v3", subfolder="v1", ...)
processor = ColQwen3_5Processor.from_pretrained("athrael-soju/colqwen3.5-4.5B-v3", subfolder="v1")
# V2
model = ColQwen3_5.from_pretrained("athrael-soju/colqwen3.5-4.5B-v3", subfolder="v2", ...)

顶层文件仍是 V3 模型——生产环境推荐使用的版本。

引用

@misc{colqwen35v3,
  title={ColQwen3.5-v3: Visual Document Retrieval with Evolutionary Model Soups},
  author={athrael-soju},
  year={2026},
  url={https://huggingface.co/athrael-soju/colqwen3.5-4.5B-v3}
}

许可证

Apache 2.0