Qdrant 的 FastEmbed
FastEmbed 来自 Qdrant 是一个轻量级、快速、为嵌入生成而构建的 Python 库。
- 量化模型权重
- ONNX Runtime,没有 PyTorch 依赖项
- CPU优先设计
- 用于对大型数据集进行编码的数据并行性。
依赖项
要在 LangChain 中使用 FastEmbed,请安装 fastembed
Python 包。
%pip install --upgrade --quiet fastembed
导入
from langchain_community.embeddings.fastembed import FastEmbedEmbeddings
API 参考:FastEmbedEmbeddings
实例化 FastEmbed
参数
model_name: str
(默认值:“BAAI/bge-small-en-v1.5”)要使用的 FastEmbedding 模型的名称。您可以在此处找到受支持模型的列表。
max_length: int
(默认值:512)令牌的最大数量。对于大于 512 的值,行为未知。
cache_dir: Optional[str]
(默认值:None)缓存目录的路径。默认为父目录中的
local_cache
。threads: Optional[int]
(默认值:None)单个 onnxruntime 会话可以使用的线程数。
doc_embed_type: Literal["default", "passage"]
(默认值:“default”)“default”:使用 FastEmbed 的默认嵌入方法。
“passage”:在嵌入之前以“passage”为前缀添加文本。
batch_size: int
(默认值:256)编码的批次大小。较高的值将使用更多内存,但速度更快。
parallel: Optional[int]
(默认值:None)如果
>1
,则将使用数据并行编码,建议用于大型数据集的离线编码。如果0
,则使用所有可用内核。如果None
,则不使用数据并行处理,而是使用默认的 onnxruntime 线程。
embeddings = FastEmbedEmbeddings()
用法
生成文档嵌入
document_embeddings = embeddings.embed_documents(
["This is a document", "This is some other document"]
)
生成查询嵌入
query_embeddings = embeddings.embed_query("This is a query")