让模块声明额外的输出类型(例如,从一个模型中获取多向量 + 稀疏数据)

作者: davidmyriel创建于 2026年8月18日更新于 2026年9月4日

总结

MultiVectorEncoder 已经可以通过后门传递第二种输出类型: 一个自定义管道最终模块写入了额外的特征键,而encode(..., output_value=None) 则根据输入返回它(在 multi_vector_encoder/model.py:868-891 中,任何批量第一个张量都会被拆分,且没有键白名单;test_encode_output_value_none_returns_feature_dicts 文档中指出,"自定义模块的额外键通过这种方式变得可用于用户使用")。我已经构建并验证了基于此的一个工作模型。它可以正常工作,但额外的输出对除传递 output_value=None 的调用者之外的任何人都是看不见的。已对 e7594f0 (6.1.0.dev0)、torch 2.13 进行验证。

内容来源: huggingface/sentence-transformers