Hugging Face 8 月 26 日放出一篇 Sentence Transformers 的训练长文,作者是 Tom Aarsen。v6.0 加了第四种模型类型 MultiVectorEncoder,用来做 ColBERT 那一路的后期交互检索,配套的还有 MultiVectorEncoderTrainer、三个多向量损失函数、若干评估器和分层 token 池化。
文章顺带训了个模型 multi-vector-encoder/mLateOn-medical,从 lightonai/mLateOn-unsupervised 出发,在 100 万对医疗问答上跑了一轮,单张 RTX 3090 训了 14.5 小时,显存峰值 17.5 GB。在 1000 条查询、20 万段落的评测里拿到 0.9139 NDCG@10、0.849 的 acc@1,对比零样本最强的 mLateOn 的 0.8520 高出 0.062,排第一的比例从 75.8% 提到 84.9%。同一批测试里 Qwen3-Embedding-8B 是 0.7747,BM25 是 0.7501。
多向量的代价在存储。20 万段落平均每段 878 个向量,fp16 存下来大约 45 GB,同样的语料用稠密向量不到 1 GB。文章给了几条压缩路线。token pooling 砍掉一半向量只掉 0.0033 NDCG@10。fast-plaid 的 1 比特残差量化配上 42% 的向量,索引降到 1.45 GB、分数 0.8642,比 Qwen3-Embedding-8B 的 1.64 GB fp16 索引还小,分数高 0.0895。
有一条反直觉的结论。起点模型选无监督版本比选已经微调好的版本更好,mLateOn-unsupervised 微调后涨 0.0311,直接拿 mLateOn 只涨 0.0042,拿 GTE-ModernColBERT-v1 反而掉 0.0191。另外多向量损失的默认缩放系数是 1.0,稠密那边惯用的 20.0 在这里不适用。