llama.cpp教程:Windows系统上无需编译,直接运行一个自己的LLaMA 2
llama.cpp是一个量化模型并实现在本地CPU上部署的程序,使用c++进行编写。将之前动辄需要几十G显存的部署变成普通家用电脑也可以轻松跑起来的“小程序”。
不久前写过使用CloudFlare Workers 创建自己的AI程序,基于meta llama-2-7b大语言模型,但是 Workers AI 还处于测试阶段,有太多限制。不如自己部署一个,可以无视各种限制,随时使用了。
准备工作
下载预编译好的llama.cpp软件
在llama.cpp的官方发布地址下载已经预编译好的Windows程序 https://github.com/ggerganov/llama.cpp/releases
此处需要确定自己电脑的CPU和GPU:
- 一般而言,CPU都有AVX2但是很少有AVX512,具体可以使用CPU-Z查看指令集
- 如果是英伟达的GPU,可以安装CUDA 11或者12实现GPU加速,如果没有安装,点此下载CUDA12。注意:性能和显存太低的显卡(低于RTX2070 8G),不要用CUDA,适得其反。
具体下载的版本,参考以下内容,其中xxxx是版本号,更新后就会变动。
- 只有AVX2:下载llama-xxxx-bin-win-avx2-x64.zip
- 有AVX512:下载 llama-b1398-bin-win-avx512-x64.zip
- 有CUDA 11:下载llama-b1398-bin-win-cublas-cu11.7.1-x64.zip
- 有CUDA 12:llama-b1398-bin-win-cublas-cu12.2.0-x64.zip
下载完成后,将文件解压即可。
创建prompt文件
从GitHub上下载,点击查看,另存为chat-with-bob.txt
(可以直接ctrl + s保存文件),保存到上述解压的文件夹中即可。
也可以手动在解压的文件夹中中创建一个名为chat-with-bob.txt
的文件,手动写入这些内容。
下载量化的模型
llama2模型本身很大,对性能要求也很高,所以需要使用量化处理的模型,在huggingface
可以直接下载,由用户TheBloke
提供。llama2根据大小,分为7B,13B和70B三种,数值越高,表现越好,但是性能要求越高。
以下根据内存和显存,直接给出量化模型的下载链接,打开页面,找到download
链接,点击即可下载。下载路径依然是上述解压的文件夹,也就是说所有的内容都在同一个文件夹中。
7B模型下载
- llama-2-7b-chat.Q4_K_M 硬盘需要 4.08 GB,内存需要 6.58 GB,表现均衡,尝鲜专用,8G内存电脑专用
- llama-2-7b-chat.Q5_K_M 硬盘需要 4.78 GB,内存需要 7.28 GB,7B版本最佳性能
13B模型下载
- llama-2-13b-chat.Q4_K_M 硬盘需要 7.87 GB,内存需要 10.37 GB,表现均衡,16G内存电脑专用
- llama-2-13b-chat.Q5_K_M 硬盘需要 9.23 GB,内存需要 11.73 GB,13B版本最佳性能
70B模型下载
- llama-2-70b-chat.Q4_K_M 硬盘需要 41.42 GB,内存需要 43.92 GB,表现均衡
- llama-2-70b-chat.Q5_K_M 硬盘需要 48.75 GB,内存需要 51.25 GB,70B版本最佳性能
运行模型
7B模型需要的内存/显存都不大,既可以纯CPU运行,也可以纯GPU运行。13B模型想要纯GPU运行,就得RTX 4060 Ti 16G甚至RTX 3090了。70B模型需要更大的内存/显存,普通GPU已经很难满足了。有钱的话,可以买块H100来跑
仅CPU工作模式
在上述解压的文件夹中,右键选择在终端中打开
,也可以手动cd
到上述解压的文件夹中。
运行以下命令:
.\main.exe -m .\llama-2-7b-chat.Q4_K_M.gguf -n -1 --repeat_penalty 1.0 --color -i -r "User:" -f .\chat-with-bob.txt
随后程序将会开始自检,并出现问答示例,之后等待用户输入。首次启动的时候,以为高占用,需要等待一会再输入内容。下图中,绿色的文字是我的提问,黄色的文字是系统自建的问答示例,Bob开头的白色文字是AI的回答。不想使用了,直接ctrl + c
即可。
GPU工作模式
llama.cpp的GPU工作,可以完全让GPU接管,可以一部分让GPU运行,另外一部分让CPU运行。推荐纯GPU模式,不然既占用内存和CPU也占用显存和GPU,加速效果还不理想。
在上述解压的文件夹中,右键选择在终端中打开
,也可以手动cd
到上述解压的文件夹中。
运行以下命令:
.\main.exe -m .\llama-2-7b-chat.Q4_K_M.gguf -n -1 --repeat_penalty 1.0 --color -i -r "User:" -f .\chat-with-bob.txt --n-gpu-layers 1
注意此处多了--n-gpu-layers 1
,意思为:前1层的内容让GPU计算,剩下的给CPU计算。先设置成1层,这样在自检信息中将看到1/43
类似的模样(43只是示例,和具体模型相关,注意修改),这时候先ctrl + c
停止运行,然后将命令最末尾的1
改成对应的层数再次运行,就可以纯GPU模式工作了。相对来说,7B模型,RTX 2070 8G的速度(5.5 token/s)大约是intel i5 8600速度(3.1 token/s)的两倍,
能接着训练吗~训练对配置要求是不是更高
可以使用LoRA继续微调和训练,但是想顺畅的进行,大概需要4张A100显卡。