本文主要是介绍使用IPEX-LLM加速大语音模型LLM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
IPEX-LLM是一个用于在英特尔CPU和GPU(如本地PC的iGPU、独立显卡如Arc、Flex和Max)上加速本地LLM推理和微调的PyTorch库。
- IPEX-LLM是BigDL-LLM的升级版。
- IPEX-LLM基于英特尔PyTorch扩展库(IPEX)以及llama.cpp、bitsandbytes、vLLM、qlora、AutoGPTQ、AutoAWQ等优秀工 作的成果。
- IPEX-LLM提供了与llama.cpp、ollama、Text-Generation-WebUI、Hugging Face transformers、Hugging Face PEFT、LangChain、LlamaIndex、DeepSpeed-AutoTP、vLLM、FastChat、Hugging Face TRL、AutoGen、ModeScope等库的无缝集成。
- IPEX-LLM目前已有50多个模型在ipex-llm上进行了优化/验证,包括LLaMA2、Mistral、Mixtral、Gemma、LLaVA、Whisper、ChatGLM、Baichuan、Qwen、RWKV等。
环境准备
- 安装“ Visual Studio 2022 Community”并选择“使用 C++ 进行桌面开发”工作负载。
- 安装或更新到最新的 GPU 驱动程序
- 安装 Miniconda。
创建并激活conda环境
conda create -n llm python=3.11 libuv
conda activate llm
安装Intel oneAPI Base Toolkit 2024.0
pip install dpcpp-cpp-rt==2024.0.2 mkl-dpcpp==2024.0.0 onednn==2024.0.0
安装ipex-llm
pip install --pre --upgrade ipex-llm[xpu] --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/
根据设备类型设置以下环境变量
Intel iGPU
set SYCL_CACHE_PERSISTENT=1
set BIGDL_LLM_XMX_DISABLED=1
Intel Arc™ A-Series Graphics
set SYCL_CACHE_PERSISTENT=1
调用示例
import torch
import timefrom transformers import AutoModelForCausalLM, AutoTokenizer
from ipex_llm import optimize_modelmodel_path = "C:\\Baichuan2\\Baichuan2-7B-Chat"def test(prompt):# Load modeltokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)model = AutoModelForCausalLM.from_pretrained(model_path,trust_remote_code=True,torch_dtype='auto',low_cpu_mem_usage=True)model = optimize_model(model)model = model.to('xpu')messages = [{"role": "user","content": prompt}]for i in range(3):st = time.time()response = model.chat(tokenizer, messages)end = time.time()print(response)print(f'Inference time: {end-st} s')test("介绍一下北京")
这篇关于使用IPEX-LLM加速大语音模型LLM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!