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:

  1. 一般而言,CPU都有AVX2但是很少有AVX512,具体可以使用CPU-Z查看指令集
  2. 如果是英伟达的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模型下载

13B模型下载

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即可。
1.jpg

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)的两倍,

标签: llama2, llama.cpp

已有 2 条评论

  1. Lee Lee

    能接着训练吗~训练对配置要求是不是更高

    1. 可以使用LoRA继续微调和训练,但是想顺畅的进行,大概需要4张A100显卡。

添加新评论