getumbrel--llama-gpt
258 行
10 KiB
Markdown
258 行
10 KiB
Markdown
<!-- WEHUB_ZH_README -->
|
||
> [!NOTE]
|
||
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
|
||
> [English](./README.en.md) · [原始项目](https://github.com/getumbrel/llama-gpt) · [上游 README](https://github.com/getumbrel/llama-gpt/blob/HEAD/README.md)
|
||
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
|
||
|
||
<p align="center">
|
||
<a href="https://apps.umbrel.com/app/llama-gpt">
|
||
<img width="150" height="150" src="https://i.imgur.com/LI59cui.png" alt="LlamaGPT" width="200" />
|
||
</a>
|
||
</p>
|
||
<p align="center">
|
||
<h1 align="center">LlamaGPT</h1>
|
||
<p align="center">
|
||
一款自托管、离线运行的类 ChatGPT 聊天机器人,由 Llama 2 驱动。100% 私密,数据不会离开你的设备。
|
||
<br/>
|
||
<strong>新特性:支持 Code Llama 模型和 Nvidia GPU。</strong>
|
||
<br />
|
||
<br />
|
||
<a href="https://umbrel.com"><strong>umbrel.com(我们正在招聘)»</strong></a>
|
||
<br />
|
||
<br />
|
||
<a href="https://twitter.com/umbrel">
|
||
<img src="https://img.shields.io/twitter/follow/umbrel?style=social" />
|
||
</a>
|
||
<a href="https://t.me/getumbrel">
|
||
<img src="https://img.shields.io/badge/community-chat-%235351FB">
|
||
</a>
|
||
<a href="https://reddit.com/r/getumbrel">
|
||
<img src="https://img.shields.io/reddit/subreddit-subscribers/getumbrel?style=social">
|
||
</a>
|
||
<a href="https://community.umbrel.com">
|
||
<img src="https://img.shields.io/badge/community-forum-%235351FB">
|
||
</a>
|
||
</p>
|
||
</p>
|
||
<p align="center">
|
||
<a href="https://umbrel.com/#start">
|
||
<img src="https://i.imgur.com/sj5vqEG.jpg" width="100%" />
|
||
</a>
|
||
</p>
|
||
|
||
## 目录
|
||
|
||
1. [演示](#demo)
|
||
2. [支持的模型](#supported-models)
|
||
3. [如何安装](#how-to-install)
|
||
- [在 umbrelOS 家庭服务器上](#install-llamagpt-on-your-umbrelos-home-server)
|
||
- [在 M1/M2 Mac 上](#install-llamagpt-on-m1m2-mac)
|
||
- [在其他任意环境使用 Docker](#install-llamagpt-anywhere-else-with-docker)
|
||
- [Kubernetes](#install-llamagpt-with-kubernetes)
|
||
4. [OpenAI 兼容 API](#openai-compatible-api)
|
||
5. [基准测试](#benchmarks)
|
||
6. [路线图与贡献](#roadmap-and-contributing)
|
||
7. [致谢](#acknowledgements)
|
||
|
||
## 演示
|
||
|
||
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](https://umbrel.com) 家庭服务器上运行 LlamaGPT 只需一键。直接从 [Umbrel App Store](https://apps.umbrel.com/app/llama-gpt). 安装即可。
|
||
|
||
[](https://apps.umbrel.com/app/llama-gpt)
|
||
|
||
### 在 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,请先创建命名空间:
|
||
|
||
```bash
|
||
kubectl create ns llama
|
||
```
|
||
|
||
然后使用以下命令应用 `/deploy/kubernetes` 目录下的清单:
|
||
|
||
```bash
|
||
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 添加更多功能。你可以在[此处](https://github.com/getumbrel/llama-gpt/issues/8#issuecomment-1681321145). 查看路线图。当前最高优先级为:
|
||
|
||
- [x] 将模型从 Docker 镜像中移出,放入独立的卷(volume)。
|
||
- [x] 为 M1/M2 Mac 添加 Metal 支持。
|
||
- [x] 添加对 Code Llama 模型的支持。
|
||
- [x] 为 NVIDIA GPU 添加 CUDA 支持。
|
||
- [ ] 添加加载自定义模型的能力。
|
||
- [ ] 允许用户在模型之间切换。
|
||
|
||
如果你是愿意协助完成以上任一项的开发者,请开一个 issue 讨论应对该挑战的最佳方式。如果你想帮忙但不确定从何处入手,请查看[这些 issue](https://github.com/getumbrel/llama-gpt/labels/good%20first%20issue),它们已专门标记为对新手贡献者友好。
|
||
|
||
## 致谢
|
||
|
||
衷心感谢以下开发者和团队,让 LlamaGPT 成为可能:
|
||
|
||
- [Mckay Wrigley](https://github.com/mckaywrigley),感谢其构建 [Chatbot UI](https://github.com/mckaywrigley).
|
||
- [Georgi Gerganov](https://github.com/ggerganov),感谢其实现了 [llama.cpp](https://github.com/ggerganov/llama.cpp).
|
||
- [Andrei](https://github.com/abetlen),感谢其构建了 [Python bindings for llama.cpp](https://github.com/abetlen/llama-cpp-python).
|
||
- [NousResearch](https://nousresearch.com),感谢其[微调 Llama 2 7B 和 13B 模型](https://huggingface.co/NousResearch).
|
||
- [Phind](https://www.phind.com/),感谢其[微调 Code Llama 34B 模型](https://www.phind.com/blog/code-llama-beats-gpt4).
|
||
- [Tom Jobbins](https://huggingface.co/TheBloke),感谢其[量化 Llama 2 模型](https://huggingface.co/TheBloke/Nous-Hermes-Llama-2-7B-GGML).
|
||
- [Meta](https://ai.meta.com/llama),感谢其在宽松许可证下发布 Llama 2 和 Code Llama。
|
||
|
||
---
|
||
|
||
[](https://github.com/getumbrel/llama-gpt/blob/master/LICENSE.md)
|
||
|
||
[umbrel.com](https://umbrel.com)
|