使用 CPU 运行 AI 模型
目前人工智能很火,但是手头没有合适的显卡,成了瓶颈和门槛,一直没机会试下。正好知乎上看到一篇文章, CPU 运行中文模型,最近换了台机器。垃圾佬 E5 平台,性能不高,但是任务管理器里面框框多。正好可以测试。
准备过程
代码
git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && make
- 这个过程问题不大。
下载测试中文模型
wget https://huggingface.co/eachadea/ggml-vicuna-13b-1.1/resolve/main/ggml-vic13b-q5_1.bin
模型直接用文章中测试过的,这个问题比较大,无法直接下载,需要🤭。 加上文件 9.1G,挂了差不过一个晚上才下好。中间断了,还要注意重连。
代码编译
代码编译过程中,遇到了几个问题。
指令支持问题:
默认的 Makefile 编译存在问题,报错如下。
文档中说需要支持 Avx2 指令, 需要增加编译参数。要在编译时打开参数 -mafa。在 Makefile中,修改编译设置。
这下编译是成功了,但是启动运行的时候。显示无法加载模型错误。
在官网上找到的原因是说,目前版本升级了,模型的格式需要使用 gguf 格式。
但是下载模型实在太麻烦了,懒得再换,所以在git库中往前翻,找下以前支持 ggml格式的版本。找到了以前的一个版本。
但是编译的时候,还是发生错误。
这个问题解决花了漫长时间,查看源代码,没有问题,但是编译报错。后来怀疑是 gcc 版本的问题,开始是在 Ubuntu 18 下编译的, gcc 版本 7.5,编译报错。
后来使用其他版本 Linux 系统, gcc 版本 9.4, 代码编译通过。
使用测试
一切OK,开始使用测试。这个 E5 垃圾佬便宜量足的特点显示出来了。直接虚拟机设置 20G内存, 24核心,开始测试。
模型启动运行成功。
试下AI写代码
速度比较慢,一个字,一个字,蹦了好几分钟,正确性没测试。后面就可以愉快的玩耍了。