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应用商店安装它。
在M1/M2 Mac上安装LlamaGPT
确保您已安装Docker和Xcode。
然后,克隆此仓库并进入目录:
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。
然后,克隆此仓库并进入目录:
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
。 要运行7B、13B或34B Code Llama模型,将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
已配置好与其交互。
然后,克隆此仓库并进入其目录。
要部署到 Kubernetes,请首先创建一个命名空间:
kubectl create ns llama
然后使用以下命令应用 /deploy/kubernetes
目录下的清单:
kubectl apply -k deploy/kubernetes/. -n llama
根据您的习惯方式公开服务。
兼容 OpenAI 的 API
由于 llama-cpp-python 的存在,OpenAI API 的替代品可以在 http://localhost:3001
处使用。打开 http://localhost:3001/docs 查看 API 文档。
基准测试
我们在以下硬件上使用默认系统提示和用户提示 "How does the universe expand?" 在温度设定为0的情况下对 LlamaGPT 模型进行了测试,以确保生成结果是确定性的。生成速度取平均值为前10次生成的结果。
欢迎通过提交拉取请求将您的基准测试添加到此表中。
Nous Hermes Llama 2 7B Chat (GGML q4_0)
设备 | 生成速度 |
---|---|
M1 Max MacBook Pro (64GB RAM) | 54 令牌/秒 |
GCP c2-standard-16 vCPU (64 GB RAM) | 16.7 令牌/秒 |
Ryzen 5700G 4.4GHz 4c (16 GB RAM) | 11.50 令牌/秒 |
GCP c2-standard-4 vCPU (16 GB RAM) | 4.3 令牌/秒 |
Umbrel Home (16GB RAM) | 2.7 令牌/秒 |
Raspberry Pi 4 (8GB RAM) | 0.9 令牌/秒 |
Nous Hermes Llama 2 13B Chat (GGML q4_0)
设备 | 生成速度 |
---|---|
M1 Max MacBook Pro (64GB RAM) | 20 令牌/秒 |
GCP c2-standard-16 vCPU (64 GB RAM) | 8.6 令牌/秒 |
GCP c2-standard-4 vCPU (16 GB RAM) | 2.2 令牌/秒 |
Umbrel Home (16GB RAM) | 1.5 令牌/秒 |
Nous Hermes Llama 2 70B Chat (GGML q4_0)
设备 | 生成速度 |
---|---|
M1 Max MacBook Pro (64GB RAM) | 4.8 令牌/秒 |
GCP e2-standard-16 vCPU (64 GB RAM) | 1.75 令牌/秒 |
GCP c2-standard-16 vCPU (64 GB RAM) | 1.62 令牌/秒 |
Code Llama 7B Chat (GGUF Q4_K_M)
设备 | 生成速度 |
---|---|
M1 Max MacBook Pro (64GB RAM) | 41 令牌/秒 |
Code Llama 13B Chat (GGUF Q4_K_M)
设备 | 生成速度 |
---|---|
M1 Max MacBook Pro (64GB RAM) | 25 令牌/秒 |
Phind Code Llama 34B Chat (GGUF Q4_K_M)
设备 | 生成速度 |
---|---|
M1 Max MacBook Pro (64GB RAM) | 10.26 令牌/秒 |
路线图和贡献
我们正在为 LlamaGPT 添加更多功能。您可以在这里查看路线图。最高优先级包括:
- 将模型从 Docker 镜像中移出,并放入单独的卷中。
- 为 M1/M2 Mac 添加 Metal 支持。
- 添加对 Code Llama 模型的支持。
- 添加对 NVIDIA GPU 的 CUDA 支持。
- 添加加载自定义模型的功能。
- 允许用户在模型之间切换。
如果您是希望帮助解决这些问题的开发者,请提出 issue 以讨论最佳解决方案。如果您希望贡献但不确定从哪里开始,请查看这些问题,这些问题特别标记为对新贡献者友好。
致谢
衷心感谢以下开发人员和团队使 LlamaGPT 成为可能:
- Mckay Wrigley 为构建 Chatbot UI。
- Georgi Gerganov 为实现 llama.cpp。
- Andrei 为构建 llama.cpp 的 Python 绑定。
- NousResearch 为微调 Llama 2 7B 和 13B 模型。
- Phind 为微调 Code Llama 34B 模型。
- Tom Jobbins 为量化 Llama 2 模型。
- Meta 为在宽松许可下发布 Llama 2 和 Code Llama。