< English | 中文 >
ipex-llm
是一个将大语言模型高效地运行于 Intel GPU (如搭载集成显卡的个人电脑,Arc 独立显卡、Flex 及 Max 数据中心 GPU 等)、NPU 和 CPU 上的大模型 XPU 加速库1。
Note
- 它构建在
llama.cpp
,transformers
,bitsandbytes
,vLLM
,qlora
,AutoGPTQ
,AutoAWQ
等优秀工作之上。 - 它可以与 llama.cpp, Ollama, HuggingFace transformers, LangChain, LlamaIndex, vLLM, Text-Generation-WebUI, DeepSpeed-AutoTP, FastChat, Axolotl, HuggingFace PEFT, HuggingFace TRL, AutoGen, ModeScope 等无缝衔接。
- 70+ 模型已经在
ipex-llm
上得到优化和验证(如 Llama, Phi, Mistral, Mixtral, Whisper, Qwen, MiniCPM, Qwen-VL, MiniCPM-V 等), 以获得先进的 大模型算法优化, XPU 加速 以及 低比特(FP8FP8/FP6/FP4/INT4) 支持;更多模型信息请参阅这里。
- [2024/12] 新增在 Intel GPU 上运行 Ollama 0.4.6 的支持。
- [2024/12] 增加了对 Intel Core Ultra NPU(包括 100H,200V 和 200K 系列)的 Python 和 C++ 支持。
- [2024/11] 新增在 Intel Arc GPUs 上运行 vLLM 0.6.2 的支持。
更多更新
- [2024/07] 新增 Microsoft GraphRAG 的支持(使用运行在本地 Intel GPU 上的 LLM),详情参考快速入门指南。
- [2024/07] 全面增强了对多模态大模型的支持,包括 StableDiffusion, Phi-3-Vision, Qwen-VL,更多详情请点击这里。
- [2024/07] 新增 Intel GPU 上 FP6 的支持,详情参考更多数据类型样例。
- [2024/06] 新增对 Intel Core Ultra 处理器中 NPU 的实验性支持,详情参考相关示例。
- [2024/06] 增加了对流水线并行推理的全面支持,使得用两块或更多 Intel GPU(如 Arc)上运行 LLM 变得更容易。
- [2024/06] 新增在 Intel GPU 上运行 RAGFlow 的支持,详情参考快速入门指南。
- [2024/05] 新增 Axolotl 的支持,可以在 Intel GPU 上进行LLM微调,详情参考快速入门指南。
- [2024/05] 你可以使用 Docker images 很容易地运行
ipex-llm
推理、服务和微调。 - [2024/05] 你能够在 Windows 上仅使用 "one command" 来安装
ipex-llm
。 - [2024/04] 你现在可以在 Intel GPU 上使用
ipex-llm
运行 Open WebUI ,详情参考快速入门指南。 - [2024/04] 你现在可以在 Intel GPU 上使用
ipex-llm
以及llama.cpp
和ollama
运行 Llama 3 ,详情参考快速入门指南。 - [2024/04]
ipex-llm
现在在Intel GPU 和 CPU 上都支持 Llama 3 了。 - [2024/04]
ipex-llm
现在提供 C++ 推理, 在 Intel GPU 上它可以用作运行 llama.cpp 和 ollama 的加速后端。 - [2024/03]
bigdl-llm
现已更名为ipex-llm
(请参阅此处的迁移指南),你可以在这里找到原始BigDL项目。 - [2024/02]
ipex-llm
现在支持直接从 ModelScope (魔搭) loading 模型。 - [2024/02]
ipex-llm
增加 INT2 的支持 (基于 llama.cpp IQ2 机制), 这使得在具有 16GB VRAM 的 Intel GPU 上运行大型 LLM(例如 Mixtral-8x7B)成为可能。 - [2024/02] 用户现在可以通过 Text-Generation-WebUI GUI 使用
ipex-llm
。 - [2024/02]
ipex-llm
现在支持 Self-Speculative Decoding,这使得在 Intel GPU 和 CPU 上为 FP16 和 BF16 推理带来 ~30% 加速 。 - [2024/02]
ipex-llm
现在支持在 Intel GPU 上进行各种 LLM 微调(包括 LoRA, QLoRA, DPO, QA-LoRA 和 ReLoRA)。 - [2024/01] 使用
ipex-llm
QLoRA,我们成功地在 8 个 Intel Max 1550 GPU 上使用 Standford-Alpaca 数据集分别对 LLaMA2-7B(21 分钟内)和 LLaMA2-70B(3.14 小时内)进行了微调,具体详情参阅博客。 - [2023/12]
ipex-llm
现在支持 ReLoRA (具体内容请参阅 "ReLoRA: High-Rank Training Through Low-Rank Updates"). - [2023/12]
ipex-llm
现在在 Intel GPU 和 CPU 上均支持 Mixtral-8x7B。 - [2023/12]
ipex-llm
现在支持 QA-LoRA (具体内容请参阅 "QA-LoRA: Quantization-Aware Low-Rank Adaptation of Large Language Models"). - [2023/12]
ipex-llm
现在在 Intel GPU 上支持 FP8 and FP4 inference。 - [2023/11] 初步支持直接将 GGUF,AWQ 和 GPTQ 模型加载到
ipex-llm
中。 - [2023/11]
ipex-llm
现在在 Intel GPU 和 CPU 上都支持 vLLM continuous batching 。 - [2023/10]
ipex-llm
现在在 Intel GPU 和 CPU 上均支持 QLoRA finetuning 。 - [2023/10]
ipex-llm
现在在 Intel GPU 和 CPU 上都支持 FastChat serving 。 - [2023/09]
ipex-llm
现在支持 Intel GPU (包括 iGPU, Arc, Flex 和 MAX)。 - [2023/09]
ipex-llm
教程 已发布。
以下分别是使用 ipex-llm
在英特尔酷睿Ultra iGPU、酷睿Ultra NPU、单卡 Arc GPU 或双卡 Arc GPU 上运行本地 LLM 的 DEMO 演示,
Intel Core Ultra (Series 1) iGPU | Intel Core Ultra (Series 2) NPU | Intel Arc dGPU | 2-Card Intel Arc dGPUs |
Ollama (Mistral-7B Q4_K) |
HuggingFace (Llama3.2-3B SYM_INT4) |
TextGeneration-WebUI (Llama3-8B FP8) |
FastChat (QWen1.5-32B FP6) |
下图展示了在 Intel Core Ultra 和 Intel Arc GPU 上的 Token 生成速度1(更多详情可点击 [2][3][4])。
如果需要自己进行 ipex-llm
性能基准测试,可参考基准测试指南。
部分模型的 Perplexity 结果如下所示(使用 Wikitext 数据集和此处的脚本进行测试)。
Perplexity | sym_int4 | q4_k | fp6 | fp8_e5m2 | fp8_e4m3 | fp16 |
---|---|---|---|---|---|---|
Llama-2-7B-chat-hf | 6.364 | 6.218 | 6.092 | 6.180 | 6.098 | 6.096 |
Mistral-7B-Instruct-v0.2 | 5.365 | 5.320 | 5.270 | 5.273 | 5.246 | 5.244 |
Baichuan2-7B-chat | 6.734 | 6.727 | 6.527 | 6.539 | 6.488 | 6.508 |
Qwen1.5-7B-chat | 8.865 | 8.816 | 8.557 | 8.846 | 8.530 | 8.607 |
Llama-3.1-8B-Instruct | 6.705 | 6.566 | 6.338 | 6.383 | 6.325 | 6.267 |
gemma-2-9b-it | 7.541 | 7.412 | 7.269 | 7.380 | 7.268 | 7.270 |
Baichuan2-13B-Chat | 6.313 | 6.160 | 6.070 | 6.145 | 6.086 | 6.031 |
Llama-2-13b-chat-hf | 5.449 | 5.422 | 5.341 | 5.384 | 5.332 | 5.329 |
Qwen1.5-14B-Chat | 7.529 | 7.520 | 7.367 | 7.504 | 7.297 | 7.334 |
- GPU Inference in C++: 在 Intel GPU 上使用
ipex-llm
运行llama.cpp
,ollama
等 - GPU Inference in Python : 在 Intel GPU 上使用
ipex-llm
运行 HuggingFacetransformers
,LangChain
,LlamaIndex
,ModelScope
,等 - vLLM on GPU: 在 Intel GPU 上使用
ipex-llm
运行vLLM
推理服务 - vLLM on CPU: 在 Intel CPU 上使用
ipex-llm
运行vLLM
推理服务 - FastChat on GPU: 在 Intel GPU 上使用
ipex-llm
运行FastChat
推理服务 - VSCode on GPU: 在 Intel GPU 上使用 VSCode 开发并运行基于 Python 的
ipex-llm
应用
- NPU: 在 Intel NPU 上运行
ipex-llm
(支持 Python 和 C++) - llama.cpp: 在 Intel GPU 上运行 llama.cpp (使用
ipex-llm
的 C++ 接口) - Ollama: 在 Intel GPU 上运行 ollama (使用
ipex-llm
的 C++ 接口) - PyTorch/HuggingFace: 使用 Windows 和 Linux 在 Intel GPU 上运行 PyTorch、HuggingFace、LangChain、LlamaIndex 等 (使用
ipex-llm
的 Python 接口) - vLLM: 在 Intel GPU 和 CPU 上使用
ipex-llm
运行 vLLM - FastChat: 在 Intel GPU 和 CPU 上使用
ipex-llm
运行 FastChat 服务 - Serving on multiple Intel GPUs: 利用 DeepSpeed AutoTP 和 FastAPI 在 多个 Intel GPU 上运行
ipex-llm
推理服务 - Text-Generation-WebUI: 使用
ipex-llm
运行oobabooga
WebUI - Axolotl: 使用 Axolotl 和
ipex-llm
进行 LLM 微调 - Benchmarking: 在 Intel GPU 和 CPU 上运行性能基准测试(延迟和吞吐量)
- GraphRAG: 基于
ipex-llm
使用本地 LLM 运行 Microsoft 的GraphRAG
- RAGFlow: 基于
ipex-llm
运行RAGFlow
(一个开源的 RAG 引擎) - LangChain-Chatchat: 基于
ipex-llm
运行LangChain-Chatchat
(使用 RAG pipline 的知识问答库) - Coding copilot: 基于
ipex-llm
运行Continue
(VSCode 里的编码智能助手) - Open WebUI: 基于
ipex-llm
运行Open WebUI
- PrivateGPT: 基于
ipex-llm
运行PrivateGPT
与文档进行交互 - Dify platform: 在
Dify
(一款开源的大语言模型应用开发平台) 里接入ipex-llm
加速本地 LLM
- Windows GPU: 在带有 Intel GPU 的 Windows 系统上安装
ipex-llm
- Linux GPU: 在带有 Intel GPU 的Linux系统上安装
ipex-llm
- 更多内容, 请参考完整安装指南
-
- INT4 inference: 在 Intel GPU 和 CPU 上进行 INT4 LLM 推理
- FP8/FP6/FP4 inference: 在 Intel GPU 上进行 FP8,FP6 和 FP4 LLM 推理
- INT8 inference: 在 Intel GPU 和 CPU 上进行 INT8 LLM 推理
- INT2 inference: 在 Intel GPU 上进行 INT2 LLM 推理 (基于 llama.cpp IQ2 机制)
-
- 在 Intel GPU 上进行 FP16 LLM 推理(并使用 self-speculative decoding 优化)
- 在 Intel CPU 上进行 BF16 LLM 推理(并使用 self-speculative decoding 优化)
-
- Low-bit models: 保存和加载
ipex-llm
低比特模型 (INT4/FP4/FP6/INT8/FP8/FP16/etc.) - GGUF: 直接将 GGUF 模型加载到
ipex-llm
中 - AWQ: 直接将 AWQ 模型加载到
ipex-llm
中 - GPTQ: 直接将 GPTQ 模型加载到
ipex-llm
中
- Low-bit models: 保存和加载
- 教程
50+ 模型已经在 ipex-llm
上得到优化和验证,包括 LLaMA/LLaMA2, Mistral, Mixtral, Gemma, LLaVA, Whisper, ChatGLM2/ChatGLM3, Baichuan/Baichuan2, Qwen/Qwen-1.5, InternLM, 更多模型请参看下表,
模型 | CPU 示例 | GPU 示例 | NPU 示例 |
---|---|---|---|
LLaMA | link1, link2 | link | |
LLaMA 2 | link1, link2 | link | Python link, C++ link |
LLaMA 3 | link | link | Python link, C++ link |
LLaMA 3.1 | link | link | |
LLaMA 3.2 | link | Python link, C++ link | |
LLaMA 3.2-Vision | link | ||
ChatGLM | link | ||
ChatGLM2 | link | link | |
ChatGLM3 | link | link | |
GLM-4 | link | link | |
GLM-4V | link | link | |
GLM-Edge | link | Python link | |
GLM-Edge-V | link | ||
Mistral | link | link | |
Mixtral | link | link | |
Falcon | link | link | |
MPT | link | link | |
Dolly-v1 | link | link | |
Dolly-v2 | link | link | |
Replit Code | link | link | |
RedPajama | link1, link2 | ||
Phoenix | link1, link2 | ||
StarCoder | link1, link2 | link | |
Baichuan | link | link | |
Baichuan2 | link | link | Python link |
InternLM | link | link | |
InternVL2 | link | ||
Qwen | link | link | |
Qwen1.5 | link | link | |
Qwen2 | link | link | Python link, C++ link |
Qwen2.5 | link | Python link, C++ link | |
Qwen-VL | link | link | |
Qwen2-VL | link | ||
Qwen2-Audio | link | ||
Aquila | link | link | |
Aquila2 | link | link | |
MOSS | link | ||
Whisper | link | link | |
Phi-1_5 | link | link | |
Flan-t5 | link | link | |
LLaVA | link | link | |
CodeLlama | link | link | |
Skywork | link | ||
InternLM-XComposer | link | ||
WizardCoder-Python | link | ||
CodeShell | link | ||
Fuyu | link | ||
Distil-Whisper | link | link | |
Yi | link | link | |
BlueLM | link | link | |
Mamba | link | link | |
SOLAR | link | link | |
Phixtral | link | link | |
InternLM2 | link | link | |
RWKV4 | link | ||
RWKV5 | link | ||
Bark | link | link | |
SpeechT5 | link | ||
DeepSeek-MoE | link | ||
Ziya-Coding-34B-v1.0 | link | ||
Phi-2 | link | link | |
Phi-3 | link | link | |
Phi-3-vision | link | link | |
Yuan2 | link | link | |
Gemma | link | link | |
Gemma2 | link | ||
DeciLM-7B | link | link | |
Deepseek | link | link | |
StableLM | link | link | |
CodeGemma | link | link | |
Command-R/cohere | link | link | |
CodeGeeX2 | link | link | |
MiniCPM | link | link | Python link, C++ link |
MiniCPM3 | link | ||
MiniCPM-V | link | ||
MiniCPM-V-2 | link | link | |
MiniCPM-Llama3-V-2_5 | link | Python link | |
MiniCPM-V-2_6 | link | link | Python link |
StableDiffusion | link | ||
Bce-Embedding-Base-V1 | Python link | ||
Speech_Paraformer-Large | Python link |
- 如果遇到问题,或者请求新功能支持,请提交 Github Issue 告诉我们
- 如果发现漏洞,请在 GitHub Security Advisory 提交漏洞报告
Footnotes
-
Performance varies by use, configuration and other factors.
ipex-llm
may not optimize to the same degree for non-Intel products. Learn more at www.Intel.com/PerformanceIndex ↩ ↩2