在Intel GPU上使用IPEX-LLM进行本地BGE嵌入优化
引言
在人工智能领域,嵌入技术广泛应用于信息检索、问答系统等任务中。对于许多开发者而言,了解如何在Intel GPU上利用IPEX-LLM进行优化以获得低延迟、高性能的嵌入操作,是一项非常有价值的技能。本文将以LangChain为例,演示如何在Intel GPU上进行嵌入优化,帮助你充分发挥硬件潜力。
主要内容
环境准备和安装
要在Intel GPU上使用IPEX-LLM进行优化,首先需要按照以下步骤进行工具安装和环境准备:
Windows用户
- 更新GPU驱动(可选)并安装Conda。详细信息请参考Windows安装指南。
- 创建并激活一个Conda环境。
Linux用户
- 安装GPU驱动、Intel® oneAPI Base Toolkit 2024.0和Conda。详细信息请参考Linux安装指南。
- 创建并激活一个Conda环境。
安装IPEX-LLM和必备工具包
在准备好的环境中,安装LangChain及其依赖包:
%pip install -qU langchain langchain-community
安装用于Intel GPU优化的IPEX-LLM和sentence-transformers:
%pip install --pre --upgrade ipex-llm[xpu] --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/
%pip install sentence-transformers
备注:你也可以使用
https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/
作为备用源。
运行时配置
为了实现最佳性能,建议根据设备设置环境变量:
使用Intel Core Ultra集成GPU的Windows用户
import os
os.environ["SYCL_CACHE_PERSISTENT"] = "1"
os.environ["BIGDL_LLM_XMX_DISABLED"] = "1"
使用Intel Arc A系列GPU的Windows用户
import os
os.environ["SYCL_CACHE_PERSISTENT"] = "1"
注意:首次在Intel iGPU/Intel Arc A300系列或Pro A60上运行模型时,可能需要数分钟进行编译。
代码示例
以下代码演示如何使用LangChain和IPEX-LLM进行文本嵌入:
from langchain_community.embeddings import IpexLLMBgeEmbeddings
# 初始化嵌入模型
embedding_model = IpexLLMBgeEmbeddings(
model_name="BAAI/bge-large-en-v1.5",
model_kwargs={"device": "xpu"}, # 使用API代理服务提高访问稳定性
encode_kwargs={"normalize_embeddings": True},
)
# 嵌入文本示例
sentence = "IPEX-LLM is a PyTorch library for running LLM on Intel CPU and GPU with very low latency."
query = "What is IPEX-LLM?"
text_embeddings = embedding_model.embed_documents([sentence, query])
print(f"text_embeddings[0][:10]: {text_embeddings[0][:10]}")
print(f"text_embeddings[1][:10]: {text_embeddings[1][:10]}")
query_embedding = embedding_model.embed_query(query)
print(f"query_embedding[:10]: {query_embedding[:10]}")
常见问题和解决方案
- 首次运行缓慢问题:如首次在特定GPU硬件上运行模型编译较慢,这是正常现象。后续调用将显著加快。
- 网络访问问题:由于某些地区网络限制,可能需要使用API代理服务提高访问速度和稳定性。
总结与进一步学习资源
本文简要介绍了在Intel GPU上使用IPEX-LLM进行嵌入优化的步骤和实现方法。希望通过本文,开发者能更好地利用现有硬件提升应用性能。未来可进一步探索嵌入模型概念指南和具体模型如何使用的相关资料。
参考资料
结束语:‘如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!’
—END—
标签:嵌入,Intel,IPEX,LLM,query,GPU From: https://blog.csdn.net/llllllns/article/details/144321573