Skip to content

Latest commit

 

History

History
338 lines (311 loc) · 37.1 KB

README.zh-CN.md

File metadata and controls

338 lines (311 loc) · 37.1 KB

Important

bigdl-llm 现已更名为 ipex-llm (请参阅此处的迁移指南); 你可以在此处找到原始的 BigDL 项目。


Intel® LLM Library for PyTorch*

< English | 中文 >

ipex-llm 是一个将大语言模型高效地运行于 Intel GPU (如搭载集成显卡的个人电脑,Arc 独立显卡、Flex 及 Max 数据中心 GPU 等)NPU 和 CPU 上的大模型 XPU 加速库1

Note

项目更新
  • [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.cppollama 运行 Llama 3 ,详情参考快速入门指南
  • [2024/04] ipex-llm 现在在Intel GPUCPU 上都支持 Llama 3 了。
  • [2024/04] ipex-llm 现在提供 C++ 推理, 在 Intel GPU 上它可以用作运行 llama.cppollama 的加速后端。
  • [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 GPUCPU 上为 FP16 和 BF16 推理带来 ~30% 加速
  • [2024/02] ipex-llm 现在支持在 Intel GPU 上进行各种 LLM 微调(包括 LoRA, QLoRA, DPO, QA-LoRAReLoRA)。
  • [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 GPUCPU 上均支持 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] 初步支持直接将 GGUFAWQGPTQ 模型加载到 ipex-llm 中。
  • [2023/11] ipex-llm 现在在 Intel GPUCPU 上都支持 vLLM continuous batching
  • [2023/10] ipex-llm 现在在 Intel GPUCPU 上均支持 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 Demo

以下分别是使用 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)

ipex-llm 性能

下图展示了在 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

ipex-llm 快速入门

Docker

  • GPU Inference in C++: 在 Intel GPU 上使用 ipex-llm 运行 llama.cpp, ollama
  • GPU Inference in Python : 在 Intel GPU 上使用 ipex-llm 运行 HuggingFace transformers, 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: 使用 WindowsLinux 在 Intel GPU 上运行 PyTorchHuggingFaceLangChainLlamaIndex 等 (使用 ipex-llm 的 Python 接口)
  • vLLM: 在 Intel GPUCPU 上使用 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: 使用 Axolotlipex-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

安装

代码示例

API 文档

FAQ

模型验证

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
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

官方支持

Footnotes

  1. 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