向量
以下介绍了可用的向量模型配置选项。
路径
path: string
设置向量模型的路径。当使用 transformers/sentence-transformers 模型时,这可以是 Hugging Face Hub 上的任何模型或本地文件路径。否则,它必须是指向词嵌入模型的本地文件路径。
默认值
defaults: boolean
启用时(默认设置为 True)且未提供 path
时,使用默认的向量模型路径。有关示例,请参阅 此链接。
方法
method: transformers|sentence-transformers|llama.cpp|litellm|model2vec|external|words
要使用的嵌入方法。如果未提供方法,则根据 path
推断。
sentence-transformers
, llama.cpp
, litellm
, model2vec
和 words
需要安装 vectors 额外包。
transformers
使用 transformers 模型构建嵌入。虽然这可以是任何 transformers 模型,但它最适合用于构建嵌入的训练模型。
支持 mean
和 cls
池化,并自动从模型中推断。可以通过将方法从 transformers
分别更改为 meanpooling
或 clspooling
来覆盖池化方法。
将 maxlength
设置为 True
会将输入截断为 max_seq_length
。将 maxlength
设置为整数会将输入截断为该值。省略时(默认),maxlength
将设置为模型或分词器的最大长度。
sentence-transformers
与 transformers 相同,但使用 sentence-transformers 库加载模型。
llama.cpp
使用 llama.cpp 模型构建嵌入。支持 HF Hub 上的本地和远程 GGUF 路径。
litellm
使用 LiteLLM 模型构建嵌入。有关 LiteLLM 模型可用的选项,请参阅 LiteLLM 文档。
model2vec
使用 Model2Vec 模型构建嵌入。Model2Vec 是具有静态向量的 transformers 模型的知识蒸馏版本。
words
使用词嵌入模型和静态向量构建嵌入。虽然在大多数情况下首选 Transformers 模型,但此方法对于语言数据不多的低资源和历史语言非常有用。
pca
pca: int
从生成的嵌入中移除 n 个主成分。启用时,将构建 TruncatedSVD 模型以帮助降维。向量池化创建单个嵌入后,应用此方法。
external
通过外部模型或 API 创建嵌入。需要将 transform 参数设置为将数据转换为嵌入的函数。
transform
transform: function
当方法为 external
时,此函数将输入内容转换为嵌入。此函数的输入是数据列表。此方法必须返回 numpy 数组或 numpy 数组列表。
gpu
gpu: boolean|int|string|device
设置目标设备。支持 true/false、设备 ID、设备字符串和 torch 设备实例。如果省略,则会自动推导。
sentence-transformers
方法支持使用多个 GPU 进行编码。可以通过将 gpu 参数设置为 all
来启用此功能。
batch
batch: int
设置转换批处理大小。此参数控制输入流如何分块和向量化。
encodebatch
encodebatch: int
设置编码批处理大小。此参数控制底层向量模型的批处理大小。这通常对应于 GPU 批处理大小,用于控制 GPU 内存使用。
dimensionality
dimensionality: int
启用将向量截断到此维度。这仅对将更重要信息存储在早期维度的模型有用,例如 Matryoshka 表示学习 (MRL)。
quantize
quantize: int|boolean
启用指定精度的标量向量量化。支持 1 位到 8 位量化。标量量化将连续浮点值转换为离散无符号整数。faiss
, pgvector
, numpy
和 torch
ANN 后端支持存储这些向量。
此参数支持布尔值以实现向后兼容。设置为 true/false 时,此标志设置 faiss.quantize。
除了向量级量化外,某些 ANN 后端还能够在存储层进行向量量化。有关更多信息,请参阅 ANN 配置选项。
instructions
instructions:
query: prefix for queries
data: prefix for indexing
基于指令的模型使用前缀来修改嵌入的计算方式。这对于非对称搜索特别有用,即查询和索引数据的长度差异很大时。换句话说,短查询与长文档。
E5-base 是接受指令的模型示例。它接受 query:
和 passage:
前缀,并使用它们生成适用于非对称搜索的嵌入。
models
models: dict
在此缓存中加载和存储向量模型。这主要用于子索引,但可以在任何嵌入实例上设置。这可以防止在使用多个嵌入实例时多次加载同一个模型。
tokenize
tokenize: boolean
启用字符串分词(默认为 false)。此方法应用仅适用于英文文本的分词规则。不建议与最新向量模型一起使用。
向量
vectors: dict
将这些附加参数传递给底层向量模型。