在Intel GPU上使用IPEX-LLM进行本地BGE嵌入的实用指南

227 阅读2分钟

在Intel GPU上使用IPEX-LLM进行本地BGE嵌入的实用指南

引言

在现代人工智能应用中,进行高效的嵌入任务是实现功能如问答系统、检索生成(RAG)等的基础。Intel的IPEX-LLM提供了一种在Intel CPU和GPU上运行大语言模型(LLM)的工具,具有极低的延迟。这篇文章将详解如何利用IPEX-LLM在Intel GPU上优化LangChain中的嵌入任务,为开发人员提供切实可行的指导。

主要内容

1. 环境准备

要充分利用Intel GPU上的IPEX-LLM优化,需要完成工具的安装和环境的设置。根据操作系统的不同,步骤略有不同:

  • Windows用户:如果您拥有Intel Arc A系列GPU,请参照Windows安装指南更新GPU驱动并安装Conda。
  • Linux用户:请参考Linux安装指南安装GPU驱动、Intel® oneAPI Base Toolkit 2024.0和Conda。
# Windows用户使用以下命令
conda create -n intel_gpu_env python=3.9
conda activate intel_gpu_env
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

2. 运行时配置

根据设备类型设置环境变量以获得最佳性能:

import os

# Windows用户的集成显卡配置
os.environ["SYCL_CACHE_PERSISTENT"] = "1"
os.environ["BIGDL_LLM_XMX_DISABLED"] = "1"

# Windows用户的Intel Arc A系列GPU配置
os.environ["SYCL_CACHE_PERSISTENT"] = "1"

3. 基本用法

通过在model_kwargs中将设备设置为"xpu",可以在Intel GPU上加载embedding模型,并从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 (e.g., local PC with iGPU, discrete GPU such as Arc, Flex and Max) 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或低端Arc A系列GPU上,首次运行可能需要几分钟来编译模型。建议耐心等待,只需一次即可。
  • 网络限制:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问的稳定性。

总结和进一步学习资源

通过本文介绍的方法,您可以有效地在Intel GPU上进行嵌入任务。如果您希望进一步深入理解嵌入模型的概念和使用方法,可以参考以下资源:

参考资料

  1. Intel IPEX-LLM安装指南
  2. LangChain文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---