AI评分 一般 (62)AI 中文改写
使用Sentence Transformers训练与微调多向量嵌入模型
2 天前 2 阅读来源:HuggingFace Blog
AI 中文改写
原文为英文,由 AI 改写为中文报道,内容完整。如需参考原文请点击下方链接
Sentence Transformers 库迎来重大更新:v6.0 版本正式引入第四种模型类型 MultiVectorEncoder,专为 ColBERT 风格的延迟交互检索设计,并配套了完整的训练流程。这意味着开发者现在可以用这套工具,在自有数据上微调出超越通用检索模型的多向量模型,甚至从零开始训练出强大的新模型。
多向量模型与传统的稠密向量模型有本质区别。稠密模型将整段文本压缩成一个向量,用一次点积计算相似度;而多向量模型(又称延迟交互或 ColBERT 风格模型)跳过了压缩步骤,为每个 token 保留一个小向量,查询时通过 MaxSim 算子让每个查询 token 找到文档中最匹配的 token 并累加得分。这种 token 级匹配保留了单向量模型不得不平均掉的细粒度信号,通常能带来更强的检索效果,代价是索引体积更大。
为什么要微调多向量模型?因为不同领域的词汇、查询风格和相关性定义差异巨大——网页搜索、法律检索、代码搜索和科学文献综述的需求各不相同。多向量模型按 token 逐一对齐查询和文档,能捕捉到单向量模型容易忽略的领域细节,即使只有少量领域内微调数据,也能获得显著提升。此外,目前大多数已发布的检索模型都是为短文本配置的,经典的 ColBERT 检查点将文档截断在 180 或 300 个 token,这在实际应用中往往不够用。
训练多向量模型涉及多个组件:模型本身、数据集、损失函数、训练参数、评估器和训练器类。作者在博客中逐一拆解了这些组件,并提供了实际微调的完整示例。最令人印象深刻的是,他在单张 RTX 3090 上仅用 14.5 小时就微调出一个名为 multi-vector-encoder/mLateOn-medical 的模型,在医学检索评估中轻松超越了所有能找到的通用检索模型——无论是稠密、稀疏、词法还是多向量类型。
核心变化:Sentence Transformers v6.0 新增 MultiVectorEncoder 模型类型,支持 ColBERT 风格延迟交互检索的完整训练流程。安装命令为 pip install -U "sentence-transformers[train]",即可开始微调。
如果你更关注稠密嵌入模型、稀疏嵌入模型或重排序模型的微调,作者此前也发布了对应的训练教程。这篇博客专注于多向量模型的训练方法,而如何使用多向量模型(从加载、编码到向量数据库索引)则收录在配套的姊妹篇中。
这篇文章对你有帮助吗?
觉得有用?分享给更多人
留言 · 0 条
暂无留言,来说两句吧
