< English | 中文 >
ipex-llm
是一个将大语言模型高效地运行于 Intel CPU 和 GPU(如搭载集成显卡的个人电脑,配有 Arc 独立显卡的台式机等)上的大模型 XPU 加速库1。
Note
- 它构建在
llama.cpp
,transformers
,bitsandbytes
,vLLM
,qlora
,AutoGPTQ
,AutoAWQ
等优秀工作之上。 - 它可以与 llama.cpp, Ollama, Text-Generation-WebUI, HuggingFace transformers, LangChain, LlamaIndex, DeepSpeed-AutoTP, vLLM, FastChat, Axolotl, HuggingFace PEFT, HuggingFace TRL, AutoGen, ModeScope等无缝衔接。
- 50+ 模型已经在
ipex-llm
上得到优化和验证(包括 LLaMA2, Mistral, Mixtral, Gemma, LLaVA, Whisper, ChatGLM, Baichuan, Qwen, RWKV, 等等);更多信息请参阅这里.。
- [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
教程 已发布。
下图展示了在 Intel Core Ultra 和 Intel Arc GPU 上的 Token 生成速度1(更多详情可点击 [2][3][4])。
如果需要自己进行 ipex-llm
性能基准测试,可参考基准测试指南。
以下分别是使用 ipex-llm
在 Intel Iris iGPU,Intel Core Ultra iGPU,单卡 Arc GPU 或双卡 Arc GPU 上运行本地 LLM 的 DEMO 演示,
Intel Iris iGPU | Intel Core Ultra iGPU | Intel Arc dGPU | 双卡 Intel Arc dGPU |
llama.cpp (Phi-3-mini Q4_0) | Ollama (Mistral-7B Q4_K) | TextGeneration-WebUI (Llama3-8B FP8) | FastChat (QWen1.5-32B FP6) |
部分模型的 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
,OpenWebUI
,等 - 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
应用
- llama.cpp: 在 Intel GPU 上运行 llama.cpp (使用
ipex-llm
的 C++ 接口作为llama.cpp
的加速后端) - Ollama: 在 Intel GPU 上运行 ollama (使用
ipex-llm
的 C++ 接口作为ollama
的加速后端) - Llama 3 with
llama.cpp
andollama
: 使用ipex-llm
在 Intel GPU 上运行 Llama 3(通过llama.cpp
和ollama
) - 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 示例 |
---|---|---|
LLaMA (such as Vicuna, Guanaco, Koala, Baize, WizardLM, etc.) | link1, link2 | link |
LLaMA 2 | link1, link2 | link |
LLaMA 3 | link | link |
LLaMA 3.1 | link | link |
ChatGLM | link | |
ChatGLM2 | link | link |
ChatGLM3 | link | link |
GLM-4 | link | link |
GLM-4V | link | 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 |
InternLM | link | link |
InternVL2 | link | |
Qwen | link | link |
Qwen1.5 | link | link |
Qwen2 | link | link |
Qwen2.5 | link | |
Qwen-VL | link | 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 |
MiniCPM3 | link | |
MiniCPM-V | link | |
MiniCPM-V-2 | link | |
MiniCPM-Llama3-V-2_5 | link | |
MiniCPM-V-2_6 | 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