haystack Sentence Transformers嵌入器:支持Matryoshka嵌入的嵌入量化和截断,

50pmv0ei  于 4个月前  发布在  其他
关注(0)|答案(7)|浏览(40)

句子转换器库最近引入了一些新功能,这些功能易于支持且低成本。

  1. Embedding quantization - 通过 precision 参数在推理过程中使用:https://www.sbert.net/docs/package_reference/sentence_transformer/SentenceTransformer.html#sentence_transformers.SentenceTransformer.encode
  2. 对于使用 Matryoshka Representation Learning 训练的模型截断嵌入 - 通过 truncate_dim 初始化参数:https://sbert.net/docs/package_reference/sentence_transformer/SentenceTransformer.html#id1
mw3dktmi

mw3dktmi1#

你好@anakin87,我能处理这个问题吗?

xfyts7mz

xfyts7mz2#

@nickprock 那太好了。
我会将工作分成两个不同的PR
如果有任何不清楚的地方,请在这里讨论(例如关于嵌入式后端)。

vulvrdjw

vulvrdjw3#

你好@anakin87,我从第二点开始。
你是否希望truncate_dim进入Sentence transformers后端并成为backend_id的一部分?或者将其从后端中移除,仅作为两个嵌入器(文本和文档)的参数插入?

j2qf4p5b

j2qf4p5b4#

由于truncate_dim__init__类的一部分,我将其放在组件的__init__中,同时也放在后端。
(@sjrl,你可能对这个对话感兴趣)

tyg4sfes

tyg4sfes5#

如果你也愿意暴露SentenceTransformers类的所有可能的初始化参数,那将非常棒!我在这个问题#8055中讨论了这一点,其中其他初始化参数也会有所帮助。

6qqygrtg

6qqygrtg6#

总的来说,我同意添加尽可能多有用的参数。但说实话,我更希望在另一个PR中解决#8055问题,因为它似乎涉及到特定的序列化方面(例如,与torch_dtype中的model_kwargs相关)。

7gyucuyw

7gyucuyw7#

@anakin87 我们已经为模型kwargs解决了序列化问题,在一些组件中,如Transformers Ranker组件中,所以我们可以重用它。

相关问题