OpenVINO
OpenVINO™ 是一个用于优化和部署AI推理的开源工具包。OpenVINO™ 运行时支持多种硬件设备,包括x86和ARM CPU,以及Intel GPU。它可以帮助提升计算机视觉、自动语音识别、自然语言处理和其他常见任务中的深度学习性能。
Hugging Face 嵌入模型可以通过 OpenVINOEmbeddings
类得到 OpenVINO 的支持。如果你有 Intel GPU,你可以指定 model_kwargs={"device": "GPU"}
来在其上运行推理。
%pip install --upgrade-strategy eager "optimum[openvino,nncf]" --quiet
Note: you may need to restart the kernel to use updated packages.
from langchain_community.embeddings import OpenVINOEmbeddings
API Reference:OpenVINOEmbeddings
model_name = "sentence-transformers/all-mpnet-base-v2"
model_kwargs = {"device": "CPU"}
encode_kwargs = {"mean_pooling": True, "normalize_embeddings": True}
ov_embeddings = OpenVINOEmbeddings(
model_name_or_path=model_name,
model_kwargs=model_kwargs,
encode_kwargs=encode_kwargs,
)
text = "This is a test document."
query_result = ov_embeddings.embed_query(text)
query_result[:3]
[-0.048951778560876846, -0.03986183926463127, -0.02156277745962143]
doc_result = ov_embeddings.embed_documents([text])
导出IR模型
可以使用OVModelForFeatureExtraction
将您的嵌入模型导出为OpenVINO IR格式,并从本地文件夹加载模型。
from pathlib import Path
ov_model_dir = "all-mpnet-base-v2-ov"
if not Path(ov_model_dir).exists():
ov_embeddings.save_model(ov_model_dir)
ov_embeddings = OpenVINOEmbeddings(
model_name_or_path=ov_model_dir,
model_kwargs=model_kwargs,
encode_kwargs=encode_kwargs,
)
Compiling the model to CPU ...
BGE 与 OpenVINO
我们也可以通过OpenVINO使用OpenVINOBgeEmbeddings
类访问BGE嵌入模型。
from langchain_community.embeddings import OpenVINOBgeEmbeddings
model_name = "BAAI/bge-small-en"
model_kwargs = {"device": "CPU"}
encode_kwargs = {"normalize_embeddings": True}
ov_embeddings = OpenVINOBgeEmbeddings(
model_name_or_path=model_name,
model_kwargs=model_kwargs,
encode_kwargs=encode_kwargs,
)
API Reference:OpenVINOBgeEmbeddings
embedding = ov_embeddings.embed_query("hi this is harrison")
len(embedding)
384
更多信息请参考: