llama2-webui:让Llama 2模型在本地运行的开源UI工具
llama2-webui是一个开源项目,旨在让用户能够在本地GPU或CPU上轻松部署和使用Llama 2大语言模型。这个项目由GitHub用户liltom-eth开发,为Llama 2模型提供了一个友好的Web用户界面,支持多种模型和后端,是一个功能强大而灵活的Llama 2本地部署工具。
主要特性
llama2-webui具有以下主要特性:
-
支持多种Llama 2模型:包括7B、13B、70B等不同规模的模型,以及GPTQ、GGML、GGUF等不同格式的模型。
-
多种后端支持:可以使用transformers、bitsandbytes(8位推理)、AutoGPTQ(4位推理)和llama.cpp等不同的后端。
-
灵活的部署选项:可以在GPU或CPU上运行,支持Linux、Windows和Mac等多种操作系统。
-
友好的Web界面:使用gradio构建的Web UI,操作简单直观。
-
代码补全功能:为Code Llama模型提供了专门的代码补全/填充界面。
-
OpenAI兼容API:提供与OpenAI API兼容的接口,方便与现有工具集成。
-
性能基准测试:内置基准测试脚本,可以测试不同配置下的性能表现。
安装和使用
llama2-webui的安装非常简单,有两种方式:
- 通过PyPI安装:
pip install llama2-wrapper
- 从源码安装:
git clone https://github.com/liltom-eth/llama2-webui.git
cd llama2-webui
pip install -r requirements.txt
安装完成后,可以通过运行app.py
来启动Web UI:
python app.py
默认情况下,它会使用llama.cpp作为后端,运行llama-2-7b-chat.ggmlv3.q4_0.bin模型。你也可以通过修改.env文件来自定义MODEL_PATH、BACKEND_TYPE等配置,以运行不同的Llama 2模型或使用不同的后端。
代码补全功能
llama2-webui还为Code Llama模型提供了专门的代码补全/填充界面。可以通过以下命令启动:
python code_completion.py --model_path ./models/codellama-7b.Q4_0.gguf
这个功能特别适合用于代码填充和代码补全任务。
llama2-wrapper:灵活的后端封装
对于开发者来说,llama2-webui项目还提供了一个名为llama2-wrapper的Python包,可以作为Llama 2的本地后端使用。这个包已经发布到PyPI,可以通过pip安装:
pip install llama2-wrapper
from llama2_wrapper import LLAMA2_WRAPPER, get_prompt
llama2_wrapper = LLAMA2_WRAPPER()
prompt = "Do you know Pytorch"
answer = llama2_wrapper(get_prompt(prompt), temperature=0.9)
llama2-wrapper支持多种后端和模型,为开发者提供了极大的灵活性。
OpenAI兼容API
llama2-webui还提供了一个与OpenAI API兼容的Web服务器。这允许你使用Llama 2模型来替代OpenAI的API,与任何兼容OpenAI的客户端、库或服务进行集成。启动方式如下:
python -m llama2_wrapper.server
默认情况下,它会使用llama.cpp作为后端运行llama-2-7b-chat.ggmlv3.q4_0.bin模型。你可以通过访问http://localhost:8000/docs来查看OpenAPI文档。
性能基准测试
llama2-webui内置了性能基准测试脚本,可以测试不同配置下的性能表现。以下是一些基准测试结果:
模型 | 精度 | 设备 | RAM / GPU VRAM | 速度 (tokens/sec) | 加载时间 (s) |
---|---|---|---|---|---|
Llama-2-7b-chat-hf | 8 bit | NVIDIA RTX 2080 Ti | 7.7 GB VRAM | 3.76 | 641.36 |
Llama-2-7b-Chat-GPTQ | 4 bit | NVIDIA RTX 2080 Ti | 5.8 GB VRAM | 18.85 | 192.91 |
Llama-2-7b-Chat-GPTQ | 4 bit | Google Colab T4 | 5.8 GB VRAM | 18.19 | 37.44 |
llama-2-7b-chat.ggmlv3.q4_0 | 4 bit | Apple M1 Pro CPU | 5.4 GB RAM | 17.90 | 0.18 |
llama-2-7b-chat.ggmlv3.q4_0 | 4 bit | Apple M2 CPU | 5.4 GB RAM | 13.70 | 0.13 |
llama-2-7b-chat.ggmlv3.q4_0 | 4 bit | Apple M2 Metal | 5.4 GB RAM | 12.60 | 0.10 |
这些数据可以帮助用户了解在不同硬件和配置下的性能表现,从而选择最适合自己需求的设置。
模型下载
llama2-webui支持多种Llama 2模型,包括原始的Llama 2模型以及经过量化的GPTQ和GGML模型。以下是一些常用模型的下载链接:
- Llama-2-7b-chat-hf
- Llama-2-13b-chat-hf
- Llama-2-70b-chat-hf
- Llama-2-7b-Chat-GPTQ
- Llama-2-7b-Chat-GGUF
注意,下载原始的Llama 2模型需要在Meta AI的网站申请访问权限。而GPTQ和GGML等量化模型则可以直接下载使用。
运行技巧
-
在Nvidia GPU上运行:
- Llama-2-7b需要约14GB的GPU VRAM
- Llama-2-13b需要约28GB的GPU VRAM
- 如果GPU显存不足,可以尝试8位量化或4位量化模型
-
8位量化: 在.env文件中设置
LOAD_IN_8BIT=True
可以将内存使用减少约一半,但模型质量会略有下降。 -
4位GPTQ: 使用Llama-2-7b-Chat-GPTQ等4位模型,只需要6GB显存即可运行。
-
CPU运行: 使用llama.cpp后端可以在CPU上运行Llama 2模型,4位量化的llama-2-7b-chat.ggmlv3.q4_0.bin模型只需要6GB内存。
-
Mac上的Metal加速: Mac用户可以设置Metal加速来提升性能。
开源贡献
llama2-webui是一个开源项目,欢迎社区贡献。项目使用MIT许可证,允许用户自由地修改和使用。如果你对项目感兴趣,可以查看贡献指南了解如何参与开发。
总结
llama2-webui为Llama 2模型提供了一个功能强大、易于使用的本地部署解决方案。无论是个人用户还是开发者,都可以通过这个工具轻松地在本地运行和使用Llama 2模型。它支持多种模型和后端,提供了友好的Web界面和灵活的API,是探索和应用Llama 2模型的理想工具。
随着大语言模型技术的快速发展,像llama2-webui这样的开源项目为更多人提供了接触和使用先进AI模型的机会。它不仅降低了使用门槛,也为AI技术的民主化和普及做出了重要贡献。相信随着社区的不断贡献和改进,llama2-webui会变得更加强大和易用,为AI领域的发展注入新的活力。