句子转换器库最近引入了一些新功能,这些功能易于支持且低成本。
- Embedding quantization - 通过
precision
参数在推理过程中使用:https://www.sbert.net/docs/package_reference/sentence_transformer/SentenceTransformer.html#sentence_transformers.SentenceTransformer.encode - 对于使用 Matryoshka Representation Learning 训练的模型截断嵌入 - 通过
truncate_dim
初始化参数:https://sbert.net/docs/package_reference/sentence_transformer/SentenceTransformer.html#id1
7条答案
按热度按时间mw3dktmi1#
你好@anakin87,我能处理这个问题吗?
xfyts7mz2#
@nickprock 那太好了。
我会将工作分成两个不同的PR
如果有任何不清楚的地方,请在这里讨论(例如关于嵌入式后端)。
vulvrdjw3#
你好@anakin87,我从第二点开始。
你是否希望truncate_dim进入Sentence transformers后端并成为backend_id的一部分?或者将其从后端中移除,仅作为两个嵌入器(文本和文档)的参数插入?
j2qf4p5b4#
由于
truncate_dim
是__init__
类的一部分,我将其放在组件的__init__
中,同时也放在后端。(@sjrl,你可能对这个对话感兴趣)
tyg4sfes5#
如果你也愿意暴露SentenceTransformers类的所有可能的初始化参数,那将非常棒!我在这个问题#8055中讨论了这一点,其中其他初始化参数也会有所帮助。
6qqygrtg6#
总的来说,我同意添加尽可能多有用的参数。但说实话,我更希望在另一个PR中解决#8055问题,因为它似乎涉及到特定的序列化方面(例如,与
torch_dtype
中的model_kwargs
相关)。7gyucuyw7#
@anakin87 我们已经为模型kwargs解决了序列化问题,在一些组件中,如Transformers Ranker组件中,所以我们可以重用它。