10 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
LlamaGPT
一款自托管、离线运行的类 ChatGPT 聊天机器人,由 Llama 2 驱动。100% 私密,数据不会离开你的设备。
新特性:支持 Code Llama 模型和 Nvidia GPU。
umbrel.com(我们正在招聘)»
目录
演示
https://github.com/getumbrel/llama-gpt/assets/10330103/5d1a76b8-ed03-4a51-90bd-12ebfaf1e6cd
支持的模型
目前,LlamaGPT 支持以下模型。运行自定义模型的支持已在路线图中。
| 模型名称 | 模型规模 | 模型下载大小 | 所需内存 |
|---|---|---|---|
| Nous Hermes Llama 2 7B Chat (GGML q4_0) | 7B | 3.79GB | 6.29GB |
| Nous Hermes Llama 2 13B Chat (GGML q4_0) | 13B | 7.32GB | 9.82GB |
| Nous Hermes Llama 2 70B Chat (GGML q4_0) | 70B | 38.87GB | 41.37GB |
| Code Llama 7B Chat (GGUF Q4_K_M) | 7B | 4.24GB | 6.74GB |
| Code Llama 13B Chat (GGUF Q4_K_M) | 13B | 8.06GB | 10.56GB |
| Phind Code Llama 34B Chat (GGUF Q4_K_M) | 34B | 20.22GB | 22.72GB |
如何安装
在 umbrelOS 家庭服务器上安装 LlamaGPT
在 umbrelOS 家庭服务器上运行 LlamaGPT 只需一键。直接从 Umbrel App Store. 安装即可。
在 M1/M2 Mac 上安装 LlamaGPT
请确保已安装 Docker 和 Xcode。
然后,克隆本仓库并 cd 进入目录:
git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt
使用以下命令运行 LlamaGPT:
./run-mac.sh --model 7b
你可以在 http://localhost:3000. 访问 LlamaGPT
若要运行 13B 或 70B 聊天模型,请分别将
7b替换为13b或70b。 若要运行 7B、13B 或 34B 的 Code Llama 模型,请分别将7b替换为code-7b、code-13b或code-34b。
若要停止 LlamaGPT,请在终端中执行 Ctrl + C。
在其他任意环境使用 Docker 安装 LlamaGPT
你可以在任何 x86 或 arm64 系统上运行 LlamaGPT。请确保已安装 Docker。
然后,克隆本仓库并 cd 进入目录:
git clone https://github.com/getumbrel/llama-gpt.git
cd llama-gpt
使用以下命令运行 LlamaGPT:
./run.sh --model 7b
如果你拥有 Nvidia GPU,可以使用 --with-cuda 标志以 CUDA 支持运行 LlamaGPT,例如:
./run.sh --model 7b --with-cuda
你可以在 http://localhost:3000 访问 LlamaGPT。
若要运行 13B 或 70B 聊天模型,请分别将
7b替换为13b或70b。 若要运行 Code Llama 7B、13B 或 34B 模型,请分别将7b替换为code-7b、code-13b或code-34b。
若要停止 LlamaGPT,请在终端中执行 Ctrl + C。
注意:首次运行时,模型下载到
/models目录可能需要一些时间。你还可能在几分钟内看到大量类似如下的输出,这是正常现象:llama-gpt-llama-gpt-ui-1 | [INFO wait] Host [llama-gpt-api-13b:8000] not yet available...模型自动下载并加载完成、API 服务器运行后,你会看到类似如下的输出:
llama-gpt-ui_1 | ready - started server on 0.0.0.0:3000, url: http://localhost:3000随后你可以在 http://localhost:3000. 访问 LlamaGPT
使用 Kubernetes 安装 LlamaGPT
首先,请确保你有一个正在运行的 Kubernetes 集群,且已配置 kubectl 与其交互。
然后,克隆本仓库并 cd 进入目录。
若要部署到 Kubernetes,请先创建命名空间:
kubectl create ns llama
然后使用以下命令应用 /deploy/kubernetes 目录下的清单:
kubectl apply -k deploy/kubernetes/. -n llama
按你通常的方式暴露服务即可。
OpenAI 兼容 API
得益于 llama-cpp-python,可在 http://localhost:3001 使用 OpenAI API 的直接替代方案。打开 http://localhost:3001/docs 查看 API 文档。
基准测试
我们在以下硬件上使用默认系统提示词和用户提示词 "How does the universe expand?"、温度设为 0(以保证结果确定性)对 LlamaGPT 模型进行了测试。生成速度取前 10 次生成的平均值。
欢迎通过提交 pull request 将你自己的基准测试数据添加到本表中。
Nous Hermes Llama 2 7B Chat (GGML q4_0)
| 设备 | 生成速度 |
|---|---|
| M1 Max MacBook Pro (64GB RAM) | 54 tokens/sec |
| GCP c2-standard-16 vCPU (64 GB RAM) | 16.7 tokens/sec |
| Ryzen 5700G 4.4GHz 4c (16 GB RAM) | 11.50 tokens/sec |
| GCP c2-standard-4 vCPU (16 GB RAM) | 4.3 tokens/sec |
| Umbrel Home (16GB RAM) | 2.7 tokens/sec |
| Raspberry Pi 4 (8GB RAM) | 0.9 tokens/sec |
Nous Hermes Llama 2 13B Chat (GGML q4_0)
| 设备 | 生成速度 |
|---|---|
| M1 Max MacBook Pro (64GB RAM) | 20 tokens/sec |
| GCP c2-standard-16 vCPU (64 GB RAM) | 8.6 tokens/sec |
| GCP c2-standard-4 vCPU (16 GB RAM) | 2.2 tokens/sec |
| Umbrel Home (16GB RAM) | 1.5 tokens/sec |
Nous Hermes Llama 2 70B Chat (GGML q4_0)
| 设备 | 生成速度 |
|---|---|
| M1 Max MacBook Pro (64GB RAM) | 4.8 tokens/sec |
| GCP e2-standard-16 vCPU (64 GB RAM) | 1.75 tokens/sec |
| GCP c2-standard-16 vCPU (64 GB RAM) | 1.62 tokens/sec |
Code Llama 7B Chat (GGUF Q4_K_M)
| 设备 | 生成速度 |
|---|---|
| M1 Max MacBook Pro (64GB RAM) | 41 tokens/sec |
Code Llama 13B Chat (GGUF Q4_K_M)
| 设备 | 生成速度 |
|---|---|
| M1 Max MacBook Pro (64GB RAM) | 25 tokens/sec |
Phind Code Llama 34B Chat (GGUF Q4_K_M)
| 设备 | 生成速度 |
|---|---|
| M1 Max MacBook Pro (64GB RAM) | 10.26 tokens/sec |
路线图与贡献
我们计划为 LlamaGPT 添加更多功能。你可以在此处. 查看路线图。当前最高优先级为:
- 将模型从 Docker 镜像中移出,放入独立的卷(volume)。
- 为 M1/M2 Mac 添加 Metal 支持。
- 添加对 Code Llama 模型的支持。
- 为 NVIDIA GPU 添加 CUDA 支持。
- 添加加载自定义模型的能力。
- 允许用户在模型之间切换。
如果你是愿意协助完成以上任一项的开发者,请开一个 issue 讨论应对该挑战的最佳方式。如果你想帮忙但不确定从何处入手,请查看这些 issue,它们已专门标记为对新手贡献者友好。
致谢
衷心感谢以下开发者和团队,让 LlamaGPT 成为可能:
- Mckay Wrigley,感谢其构建 Chatbot UI.
- Georgi Gerganov,感谢其实现了 llama.cpp.
- Andrei,感谢其构建了 Python bindings for llama.cpp.
- NousResearch,感谢其微调 Llama 2 7B 和 13B 模型.
- Phind,感谢其微调 Code Llama 34B 模型.
- Tom Jobbins,感谢其量化 Llama 2 模型.
- Meta,感谢其在宽松许可证下发布 Llama 2 和 Code Llama。