Skip to content

向量

以下涵盖了可用的向量模型配置选项。

路径

path: string

设置向量模型的路径。当使用transformers/sentence-transformers模型时,这可以是Hugging Face Hub上的任何模型或本地文件路径。否则,它必须是本地文件路径到词嵌入模型。

默认值

defaults: boolean

启用时使用默认向量模型路径(默认设置为True),并且未提供path。示例请参见此链接

方法

method: transformers|sentence-transformers|llama.cpp|litellm|external|words

要使用的嵌入方法。如果未提供方法,则使用path推断。

sentence-transformersllama.cpplitellmwords需要安装vectors额外包。

transformers

使用transformers模型构建嵌入。虽然这可以是任何transformers模型,但它最适合用于构建嵌入的训练模型

支持meancls池化,并从模型自动推断。可以通过将方法从transformers分别更改为meanpoolingclspooling来覆盖池化方法。

maxlength设置为True会启用将输入截断为max_seq_length。将maxlength设置为整数将输入截断为该值。省略时(默认),maxlength将设置为模型或分词器的最大长度。

sentence-transformers

与transformers相同,但使用sentence-transformers库加载模型。

llama.cpp

使用llama.cpp模型构建嵌入。支持HF Hub上的本地和远程GGUF路径。

litellm

使用LiteLLM模型构建嵌入。有关LiteLLM模型的可用选项,请参见LiteLLM文档

words

使用词嵌入模型构建嵌入。在大多数情况下,transformers模型是首选的向量后端。未来可能会弃用词嵌入模型。

storevectors

storevectors: boolean

启用时,将路径中设置的向量模型复制到嵌入模型输出目录中保存。此选项启用完全封装的索引,无需外部文件依赖。

pca

pca: int

从生成的嵌入中移除_n_个主成分。启用时,构建TruncatedSVD模型以帮助降维。在向量池化创建单个嵌入后,应用此方法。

external

通过外部模型或API创建嵌入。需要设置transform参数以将数据转换为嵌入。

transform

transform: function

当方法为external时,此函数将输入内容转换为嵌入。此函数的输入是数据列表。此方法必须返回numpy数组或numpy数组列表。

gpu

gpu: boolean|int|string|device

设置目标设备。支持true/false、设备ID、设备字符串和torch设备实例。如果省略,则自动推断。

batch

batch: int

设置转换批量大小。此参数控制输入流的块化和向量化。

encodebatch

encodebatch: int

设置编码批量大小。此参数控制底层向量模型的批量大小。这通常对应于GPU批量大小,控制GPU内存使用。

dimensionality

dimensionality: int

启用向量截断为此维度。这对于在早期维度中存储更重要信息的模型(如Matryoshka Representation Learning (MRL))非常有用。

quantize

quantize: int|boolean

启用指定精度的标量向量量化。支持1位到8位的量化。标量量化将连续浮点值转换为离散无符号整数。只有faissnumpytorch ANN后端支持存储这些向量。

此参数支持布尔值以实现向后兼容。当设置为true/false时,此标志设置faiss.quantize

除了向量级量化外,一些ANN后端还能够在存储层量化向量。更多信息请参见ANN配置选项。

instructions

instructions:
    query: 查询的前缀
    data: 索引的前缀

基于指令的模型使用前缀来修改嵌入的计算方式。这对于非对称搜索特别有用,即查询和索引数据长度差异很大时。换句话说,短查询与长文档。 E5-base is an example of a model that accepts instructions. It takes query: and passage: prefixes and uses those to generate embeddings that work well for asymmetric search.

models

models: dict

Loads and stores vector models in this cache. This is primarily used with subindexes but can be set on any embeddings instance. This prevents the same model from being loaded multiple times when working with multiple embeddings instances.

tokenize

tokenize: boolean

Enables string tokenization (defaults to false). This method applies tokenization rules that only work with English language text. It's not recommended for use with recent vector models.

vectors

vectors: dict

Passes these additional parameters to the underlying vector model.