diff --git a/README.md b/README.md index 51dea3aeeb9268807fd3d99344d2399e0ec507cb..bec7d7a659f91dd996ca91bec43bc9c4b41a4f28 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,81 @@ # llama.cpp #### 介绍 -Port of English lagre model LLaMA implemented based on C/C++ +llama.cpp是基于C/C++实现的Llama英文大模型接口,可以支持在消费者级别的CPU机器上完成开源大模型的部署和使用。 +llama.cpp支持多个英文开源大模型的部署。 #### 软件架构 -软件架构说明 +llama.cpp核心架构分为两层 +- 模型量化接口:将开源模型量化成ggml格式 +- 模型启动接口:将量化后的模型启动 + +特性: +- 无需任何额外依赖,相比 Python 代码对 PyTorch 等库的要求,C/C++ 直接编译出可执行文件,跳过不同硬件的繁杂准备; +- 支持 x86 平台以 AVX2 加速推理; +- 具有 F16 和 F32 的混合精度; +- 支持 4-bit 量化; +- 无需 GPU,可只用 CPU 运行; #### 安装教程 -1. xxxx -2. xxxx -3. xxxx + **软硬件要求** + **最低硬件要求** +处理器架构:支持AArch64和x86_64处理器架构。 +内存/磁盘要求: + +| 模型名称 | 原始大小 | 量化后大小 (4-bit) | +|-------|---------------|------------------------| +| 7B | 13 GB | 3.9 GB | +| 13B | 24 GB | 7.8 GB | +| 30B | 60 GB | 19.5 GB | +| 65B | 120 GB | 38.5 GB | + + + **软件要求** +操作系统:openEuler 23.09 + + +**安装组件** +使用llama.cpp部署大模型,需要安装llama.cpp。安装前,请确保已经配置了openEuler yum源。 +1. 安装:yum install llama.cpp +2. 查看是否安装成功:/usr/bin/llama_cpp_main -h,若成功显示help信息则安装成功。 #### 使用说明 -1. xxxx -2. xxxx -3. xxxx +1. 需要下载开源大模型,如LLaMa、LLaMa2、Vicuna、GPT4All等。(注:可以直接下载ggml量化后的模型,也可以下载原始模型后通过/usr/bin/convert.py再进行量化) +2. 启动模型: +/usr/bin/llama_cpp_main -m models/${MODEL} \ + --color \ + --ctx_size 2048 \ + -n -1 \ + -ins -b 256 \ + --top_k 10000 \ + --temp 0.2 \ + --repeat_penalty 1.1 \ + -t 8 +其中${MODEL}为模型存放路径。 + +可通过/usr/bin/llama_cpp_main -h查看命令行选项用法。 + + +#### other -#### 参与贡献 +1. 规格说明: +本项目可支持在CPU级别的机器上进行大模型的部署和推理,但是推理速度对硬件仍有一定的要求,硬件配置过低可能会导致推理速度过慢,造成不好的体验感。 +(下表为不同大小模型量化后的性能体现,仅供参考!) +| Model | Measure | F16 | Q4_0 | Q4_1 | Q5_0 | Q5_1 | Q8_0 | +|-------|--------------|--------|--------|--------|--------|--------|--------| +| 7B | perplexity | 5.9066 | 6.1565 | 6.0912 | 5.9862 | 5.9481 | 5.9070 | +| 7B | file size | 13.0G | 3.5G | 3.9G | 4.3G | 4.7G | 6.7G | +| 7B | ms/tok @ 4th | 127 | 55 | 54 | 76 | 83 | 72 | +| 7B | ms/tok @ 8th | 122 | 43 | 45 | 52 | 56 | 67 | +| 13B | perplexity | 5.2543 | 5.3860 | 5.3608 | 5.2856 | 5.2706 | 5.2548 | +| 13B | file size | 25.0G | 6.8G | 7.6G | 8.3G | 9.1G | 13G | +| 13B | ms/tok @ 4th | - | 103 | 105 | 148 | 160 | 131 | +| 13B | ms/tok @ 8th | - | 73 | 82 | 98 | 105 | 128 | -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +一般来说,100ms/tok以上的推理速度,体验感会较好。 -#### 特技 -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)