在CentOS 7上部署vLLM Qwen3-30B-A3B-Instruct-2507-GGUF是一个高难度但可行的任务。结合你无GPUVMware虚拟机的环境这需要从源码编译且需要处理Qwen3 MoE模型的特定兼容性问题。 vLLM 版本选择推荐使用v0.28.0或更新版本。核心原因vLLM 对 Qwen3 MoE GGUF 的支持是近期才完善的。关键修复PR #22785已于2025年8月合并而另一个解决输出乱码问题的关键补丁PR #30118则在2025年12月才合并。选择 v0.28.0 能确保你获得这些必要的修复。安装方式由于 vLLM 官方未提供 CentOS 7 的预编译 CPU 包必须从源码编译。你可以参考 vLLM 官方发布页获取指定版本的源码。第一步CentOS 7 系统环境准备CentOS 7 默认的 GCC 版本4.8.5和 Python 版本2.7远低于 vLLM 的编译要求必须先行升级。1. 启用必要仓库并安装基础工具# 覆盖 CentOS-SCLo-scl.repo sudo tee /etc/yum.repos.d/CentOS-SCLo-scl.repo /dev/null EOF [centos-sclo-sclo] nameCentOS-7 - SCLo sclo baseurlhttps://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/ gpgcheck0 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo EOF # 覆盖 CentOS-SCLo-scl-rh.repo sudo tee /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /dev/null EOF [centos-sclo-rh] nameCentOS-7 - SCLo rh baseurlhttps://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ gpgcheck0 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo EOF清理并重建缓存sudo yum clean all sudo yum makecache --disablepluginfastestmirror sudo yum repolist# 1. 备份当前的基础源配置 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 2. 下载阿里云官方推荐的基础源配置 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo sudo tee /etc/yum.repos.d/oracle-sclo.repo /dev/null EOF [ol7_software_collections] nameOracle Linux 7 Software Collections baseurlhttps://yum.oracle.com/repo/OracleLinux/OL7/SoftwareCollections/$basearch/ gpgcheck0 enabled1 EOF # 3. 清理并重建缓存 sudo yum clean all sudo yum makecache --disablepluginfastestmirror # 1. 安装 COPR 源所需的工具 sudo yum install -y epel-release yum-plugin-copr # 2. 添加包含 devtoolset-12 的 COPR 源 sudo yum copr enable -y mlampe/devtoolset-12 # 3. 清理缓存然后安装 devtoolset-12 sudo yum clean all sudo yum makecache --disablepluginfastestmirror sudo yum install -y devtoolset-12 --setopttimeout300 # 激活 GCC 环境以 devtoolset-12 为例 scl enable devtoolset-12 bash # 验证版本 gcc --version g --versionGCC 12.2.1 已经就绪这是编译 vLLM CPU 后端最关键的一步。接下来需要处理Python 3.10因为 vLLM 要求 Python 版本在3.10 到 3.13之间。 第一步安装 Python 3.10CentOS 7 默认的 Python 2.7 无法使用需要从源码编译安装 Python 3.10。这里有一个关键坑CentOS 7 自带的 OpenSSL 版本过低会导致 Python 的_ssl模块缺失进而影响 pip 联网。建议先升级 OpenSSL。1. 安装编译依赖# 1. 标记要安装的组 sudo yum groups mark install Development Tools # 2. 转换组信息为对象格式 sudo yum groups mark convert Development Tools # 3. 再次尝试安装 sudo yum groupinstall -y Development Toolssudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel gdbm-devel xz-devel2. 编译安装 Python 3.10.12mkdir pythoncd python/wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgzopenssl versionOpenSSL 1.0.2k-fips 26 Jan 2017sudo yum install -y epel-releasesudo yum install -y openssl11 openssl11-devel openssl11-libsvim ~/.bashrcexport LD_LIBRARY_PATH/usr/lib64/openssl11/:$LD_LIBRARY_PATH export CFLAGS-I/usr/include/openssl11 export LDFLAGS-L/usr/lib64/openssl11source ~/.bashrcopenssl11 versionOpenSSL 1.1.1k FIPS 25 Mar 2021tar -xf Python-3.10.12.tgzcd Python-3.10.12cd /home/dockerinstall/python/Python-3.10.121. 创建openssl11.pc文件sudo tee /usr/lib64/pkgconfig/openssl11.pc /dev/null EOF prefix/usr exec_prefix${prefix} libdir/usr/lib64/openssl11 includedir/usr/include/openssl11 Name: OpenSSL Description: Secure Sockets Layer and cryptography libraries and tools Version: 1.1.1k Requires: Libs: -L${libdir} -lssl -lcrypto Cflags: -I${includedir} EOF2. 验证pkg-config能否识别export PKG_CONFIG_PATH/usr/lib64/pkgconfig:$PKG_CONFIG_PATH pkg-config --modversion openssl11如果输出1.1.1k说明文件创建成功。make distcleansed -i s/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g configure配置编译参数关键# 确保环境变量正确如果你已写入 ~/.bashrc 并 source 过这步可跳过 export CFLAGS-I/usr/include/openssl11 export LDFLAGS-L/usr/lib64/openssl11 cd /home/dockerinstall/python/Python-3.10.12 # 确保环境变量正确如果你已写入 ~/.bashrc 并 source 过这步可跳过 export CFLAGS-I/usr/include/openssl11 export LDFLAGS-L/usr/lib64/openssl11 # 重新配置可以不再需要 --with-openssl 参数 ./configure --prefix/usr/local/python3.10 \ --with-openssl-rpathauto \ --enable-optimizations \ --with-ensurepipinstall make -j$(nproc) sudo make altinstall--with-openssl/usr/include/openssl11指定 OpenSSL 1.1.1 头文件路径。--with-openssl-rpathauto自动设置运行时库路径避免_ssl模块找不到库。--enable-optimizations开启优化编译时间较长但性能更好。若报错可去掉此参数。最终验证/usr/local/python3.10/bin/python3.10 -c import ssl; print(ssl.OPENSSL_VERSION)把 Python 3.10 加入 PATHecho export PATH/usr/local/python3.10/bin:$PATH ~/.bashrc source ~/.bashrc python3.10 --version pip3.10 --version第四步创建虚拟环境cd /home/dockerinstall/vllm/usr/local/python3.10/bin/python3.10 -m venv vllm-cpu-envsource vllm-cpu-env/bin/activate激活后继续# 升级 pip 并安装编译依赖 pip install --upgrade pip pip install cmake3.26 wheel packaging ninja setuptools-scm8 numpy-------------------------------------------------------------------------------------------------------------------接下来编译 vLLM无法安装确认当前 shell 已激活 GCC 12source /home/dockerinstall/vllm/vllm-cpu-env/bin/activate(vllm-cpu-env) [rootbigData08 vllm]# scl enable devtoolset-12 bash[rootbigData08 vllm]# source /home/dockerinstall/vllm/vllm-cpu-env/bin/activate(vllm-cpu-env) [rootbigData08 vllm]#(vllm-cpu-env) [rootbigData08 vllm]#(vllm-cpu-env) [rootbigData08 vllm]# which python/home/dockerinstall/vllm/vllm-cpu-env/bin/python(vllm-cpu-env) [rootbigData08 vllm]# python --versionPython 3.10.12(vllm-cpu-env) [rootbigData08 vllm]# gcc --versiongcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)Copyright (C) 2022 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.二步克隆 vLLM 源码cd /home/dockerinstall/vllmgit clone https://gitee.com/mirrors/vllm.gitcd /home/dockerinstall/vllm/vllmgit tag -l结合你的场景CentOS 7 纯 CPU Qwen3 MoE GGUF我建议选择v0.28.0版本。 为什么选择 v0.28.0这个版本是目前兼顾Qwen3 MoE GGUF 支持和稳定性的最佳选择Qwen3 MoE 支持完善vLLM 对 Qwen3 MoE GGUF 的关键修复PR #30116、#30118已在 v0.28.0 之前的版本中合并。其中 PR #30118 专门解决了norm_topk_prob参数不一致的问题不加这个修复模型输出会变成乱码。GGUF 插件架构成熟v0.28.0 处于 GGUF 支持从内置迁移到独立插件vllm-gguf-plugin的过渡期。该插件为 vLLM ≥0.25 设计与 v0.28.0 兼容性良好。版本足够新且稳定v0.28.0 是 2026 年 8 月发布的稳定版本包含 584 个提交相比更新的rc版本更适合生产环境。CPU 后端支持vLLM 的 CPU 后端需要从源码编译v0.28.0 满足 GCC 12 的编译要求# 确保在 vllm 仓库目录下 cd /home/dockerinstall/vllm/vllm # 查看当前分支 git status # 切换到 v0.28.0 标签 git checkout v0.28.0 # 确认切换成功 git describe --tags后续编译安装流程切换版本后继续执行以下步骤1. 安装 CPU 版 PyTorch 和依赖export RUSTUP_DIST_SERVERhttps://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOThttps://mirrors.ustc.edu.cn/rust-static/rustup mkdir -p ~/.cargo ##用下面的内容覆盖 ~/.cargo/config.toml [source.crates-io] replace-with ustc [source.ustc] registry sparsehttps://mirrors.ustc.edu.cn/crates.io-index/ [net] retry 2 git-fetch-with-cli true cargo clean 2/dev/null || true pip install -v -r requirements/cpu.txt \ --extra-index-url https://mirrors.aliyun.com/pytorch-wheels/cpu \ -i https://pypi.tuna.tsinghua.edu.cn/simple2. 编译 vLLM CPU 后端确保 GCC 12 环境已激活vllm各种报错 已放弃-----------------------------------------------------------------------------------------------------改为使用ik_llama.cpp# 1. 新开一个终端激活 GCC 12关键 scl enable devtoolset-12 bash # 2. 进入你创建的目录 cd /home/dockerinstall/llama_cpp # 3. 克隆 ik_llama.cpp git clone https://gitcode.com/GitHub_Trending/ik/ik_llama.cpp.git cd ik_llama.cpp # 4. 检查 CMake 版本需要 3.14 cmake --version# 5. 配置并编译纯 CPU 优化 cmake -B build -DGGML_NATIVEON cmake --build build --config Release -j$(nproc)编译完成后可执行文件在 /home/dockerinstall/llama_cpp/ik_llama.cpp/build/bin/llama-server运行模型/home/dockerinstall/llama_cpp/ik_llama.cpp/build/bin/llama-server \ -m /home/dockerinstall/models/Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf \ --host 0.0.0.0 --port 11434 \ -c 4096 --threads 6 \ -b 1024 --ubatch-size 512 \ --jinja #成功 /home/dockerinstall/llama_cpp/ik_llama.cpp/build/bin/llama-server \ -m /home/dockerinstall/models/Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf \ --host 0.0.0.0 --port 11434 \ -c 2048 --threads 8 \ -b 512 --ubatch-size 256 \ --jinja #final /home/dockerinstall/llama_cpp/ik_llama.cpp/build/bin/llama-server \ -m /home/dockerinstall/models/Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf \ --host 0.0.0.0 --port 11434 \ -c 16384 --threads 8 \ -b 1024 --ubatch-size 512 \ --jinjawatch -n 1 free -g; echo ---; ps -o pid,%cpu,%mem,rss,cmd -C llama-server启动脚本/home/dockerinstall/llama_cpp/llama.sh#!/bin/bash BIN/home/dockerinstall/llama_cpp/ik_llama.cpp/build/bin/llama-server MODEL/home/dockerinstall/models/Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf LOG/home/dockerinstall/llama_cpp/llama-server.log case $1 in start) if pgrep -f llama-server.*11434 /dev/null; then echo 已在运行: $(pgrep -f llama-server.*11434); exit 0 fi nohup $BIN \ -m $MODEL \ --host 0.0.0.0 --port 11434 \ -c 16384 --threads 8 \ -b 1024 --ubatch-size 512 \ --jinja $LOG 21 echo 已启动 PID: $! ;; stop) pkill -f llama-server.*11434 echo 已停止 || echo 没在运行 ;; status) pgrep -af llama-server.*11434 || echo 没在运行 ;; log) tail -f $LOG ;; *) echo 用法: $0 {start|stop|status|log} ;; esacchmod x /home/dockerinstall/llama_cpp/llama.sh/home/dockerinstall/llama_cpp/llama.sh start------------------------------------------------------------------------------------------------------------------你提供的这个 ModelScope 链接是有效的文件来自unsloth仓库Q4_K_M 量化版大小约17.3 GB很适合你 32GB 内存的 CPU 环境。1. 安装 ModelScopesource /home/dockerinstall/vllm/vllm-cpu-env/bin/activate(vllm-cpu-env) [rootbigData08 models]# which pip/home/dockerinstall/vllm/vllm-cpu-env/bin/pip然后安装 modelscope 并下载pip install modelscope cd /home/dockerinstall/models modelscope download \ --model unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF \ Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf \ --local_dir /home/dockerinstall/modelsscreen是一个终端复用工具核心作用是在后台保持一个会话SSH 断开后里面的任务继续跑。对你的 17GB 下载场景非常合适。sudo yum install -y screen screen --version screen -S download第三步在会话里执行下载命令source /home/dockerinstall/vllm/vllm-cpu-env/bin/activate modelscope download \ --model unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF \ Qwen3-30B-A3B-Instruct-2507-Q4_K_M.gguf \ --local_dir /home/dockerinstall/models按CtrlA D脱离然后这个 SSH 终端就可以关掉了。screen -lsscreen -r download 或者screen -r 12345退出会话exit
企业数字化 ERP 产品动态
相关推荐
基于LSTM算法的景区评论情感分析及应用系统-附源码 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台… · 2026/9/24 17:39:34
【C语言数据结构】线性表:链表、栈、队列 1. 数据结构数据结构是计算机存储、组织数据的方式,它研究的是数据元素之间的逻辑关系、物理存储结构以及在此基础上定义的相关操作。简单来说,数据结构就是“数据 关系 操作”三者的统一体。数据结构通常分为逻辑结构和物理结构两大类:逻辑… · 2026/9/24 17:39:34
# MISRA C 速学指南 MISRA C 是什么(30 秒版) MISRA(Motor Industry Software Reliability Association)是汽车行业发起的协作组织,为安全/安保关键系统提供 C 与 C++ 的编码准则(Guidelines,官方不用 “Standard” 一词)。 MISRA C 定义的是 C 语言的一个子集——把"容易犯错"的… · 2026/9/24 17:39:34
OPNET OSPF动态路由实验配置验证与排错指南 简介:OSPF 是内部网关协议中广泛应用的链路状态路由协议,而 Riverbed OpNet 是业界常用的网络仿真与性能分析平台。该资源是一份面向网络工程师、运维人员及高校学生的 OSPF 仿真项目包,基于 OpNet 环境搭建了完整的 OSPF 网络模型࿰… · 2026/9/24 18:13:14
递增的三元子序列 题目描述
给你一个整数数组 numsnumsnums,判断这个数组中是否存在长度为 3 的递增子序列。
如果存在这样的三元组下标 (i,j,k)(i, j, k)(i,j,k) 且满足 i<j<ki < j < ki<j<k ,使得 nums[i]<nums[j]<nums[k]nums[i] < nums[… · 2026/9/24 18:13:14
JSP财务管理系统实战全指南:从源码解析到毕业设计避坑 简介:这套基于Jsp的财务管理系统设计与实现交付包,面向计算机相关专业学生及Java Web初学者,适用于课程设计、毕业设计或项目实训等场景,重点是解决财务模块从需求分析到实现交付的完整链路问题。压缩包内包含项目报告、中期报告、… · 2026/9/24 18:13:08
Jsp财务管理系统全解析:从架构设计到部署避坑指南 简介:基于JSP的财务管理系统全套项目资料,面向高校软件技术、财务信息化、管理信息系统等方向的课程设计或毕业设计人群。压缩包采用zip格式,大小约117.43MB,内容覆盖项目报告、中期报告、答辩PPT、完整源代码与数据库文件&#x… · 2026/9/24 18:13:08
C#在线二手交易平台开发详解:从架构设计到避坑指南 简介:基于C#语言开发的在线二手商品交易平台,面向毕业设计、课程设计场景,适合需要完成完整Web项目实践的学生与开发者。项目覆盖软件工程需求分析、系统设计、编码实现、数据库管理及测试部署等关键环节,能够帮助读者将理论知识转… · 2026/9/24 18:13:08
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44