Linux环境下使用CPU替代GPU部署大语言模型

为什么深度学习和神经网络需要使用GPU

GPU即图形处理器, 更适合进行并行计算, 并行计算是一种特殊计算方式, 将特定计算分解成同时进行的独立较小计算, 在完成分解计算之后, 重新组合或者同步计算结果. 一个较大的计算, 一个较大的计算能够被分解成多少个较小的计算取决与硬件上的内核数量, CPU通常最多只有数十个, 而GPU可能有上千个, 所以GPU天然更适合并行计算. 深度学习和神经网络使用到了大量的并行计算, 所以使用GPU更加合适.

CPU代替GPU

在没有高配显卡的情况下, 可以考虑使用CPU替代GPU, 一样可以部署大语言模型, 当然, 性能会收到影响.
GGML格式的大语言模型, 在计算时, 会使用CPU替代GPU, 部署流程如下:

  1. 检查CPU是否支持

    Linux环境下执行cat /proc/cpuinfo | grep avx*.
    如果显示的信息中包含avx2, 或者avx-512xxx, 表示CPU满足基本条件.
    avx2核avx512指令集是在avx指令集的基础上进一步扩展, 支持更到向量操作已经复杂数学运算, 512系列的指令主要面向深度学习的卷积神经网络.

  2. 升级gcc到版本>=9.4

  3. 编译安装python, 版本>=3.9

  4. 安装python库xinference

    pip3 install "xinference[ggml]", xinference支持多种格式的模型, 这里我仅安装了CPU计算的GGML格式.

  5. 启动 xinference -H 0.0.0.0 -p 端口号

    浏览器中输入ip端口号即可访问部署的大语言模型了, xinference内置了多种模型, 推荐清华大学的模型chatglm, 对中文支持更好.