环境要求
- 操作系统:Linux
- 编译器:gcc/g++ >= 12.3.0(可选,推荐)
- 指令集架构(ISA)要求:AVX512(可选,推荐)
源码构建
- 首先,安装推荐的编译器。运行以下命令安装gcc/g++:
sudo yum update -y
sudo yum install -y gcc gcc-c++ numactl-devel
- 其次,安装用于构建vLLM CPU后端的Python包:
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install --upgrade pip
pip install wheel packaging ninja "setuptools>=49.4.0" numpy
pip install -v -r requirements-cpu.txt --extra-index-url https://download.pytorch.org/whl/cpu
- 最后,构建并安装vLLM CPU后端:
VLLM_TARGET_DEVICE=cpu python setup.py install
性能优化
- 强烈推荐使用TCMalloc以获得高性能的内存分配和更好的缓存局部性。运行以下命令:
sudo yum update
sudo yum install gperftools # 安装gperftools库(Ubuntu系统请安装TCMalloc库)
find / -name *libtcmalloc* # 查找动态链接库路径
export LD_PRELOAD=/usr/lib64/libtcmalloc_minimal.so.4:$LD_PRELOAD # 将库添加到LD_PRELOAD
下载模型
- 从ModelScope魔搭社区下载:
pip install modelscope
# 模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/glm-4-9b-chat', cache_dir='/data/models/') # cache_dir设置为自己想保存模型文件的路径
兼容OpenAI的服务
- 在使用在线服务时,建议为服务框架保留1-2个CPU核心以避免CPU过度占用。例如,在具有32个物理CPU核心的平台上,保留CPU 30和31给框架,并使用CPU 0-29给OpenMP。
VLLM_CPU_KVCACHE_SPACE为KV cache储存空间大小,默认4G,可根据自己情况设置;VLLM_CPU_OMP_THREADS_BIND设置使用哪些CPU,可根据自己情况设置:
export VLLM_CPU_KVCACHE_SPACE=12
export VLLM_CPU_OMP_THREADS_BIND=0-6
- 运行以下命令启动vLLM服务:
# 我们也可以在启动时设置环境变量
VLLM_CPU_KVCACHE_SPACE=12 VLLM_CPU_OMP_THREADS_BIND=0-6 \
vllm serve '/data/models/ZhipuAI/chatglm3-6b' \
--dtype bfloat16 \
--port 8000 \
--load-format 'auto' \
--device cpu \
--served-model-name chatglm3 \
--trust-remote-code \
--chat-template '/data/template_chatglm3.jinja'
启动代码助手
- 安装依赖包
pip install -r requirements.txt
- 启动Web应用
python code_assistant.py
- 输入代码相关的问题。
代码生成示例:
代码解释示例:
代码改进示例: