1 背景
1.1 大模型算力需求
大模型因其参数规模庞大、结构复杂,通常需要强大的计算资源来支持其推理过程,这使得算力成为大模型应用的核心要素。随着DeepSeek-R1模型的问世,各行各业纷纷展开了关于如何接入大模型能力的广泛调研与探索,市场对大模型推理算力的需求呈现出爆发式增长的趋势。例如在医疗、金融、零售等领域,企业迫切希望通过接入DeepSeek大模型来提升决策效率和业务能力,从而推动行业的创新发展。在这一背景下,算力的供给和优化成为推动大模型落地应用的重要因素。
近年来,CPU制程和架构的提升以及英特尔® 高级矩阵扩展AMX(Advanced Matrix Extensions)加速器的面世带来了算力的快速提升。英特尔对大模型推理等多个AI领域持续深入研究,提供全方位的AI软件支持,兼容主流AI软件且提供多种软件方式提升CPU的AI性能。目前,已有充分的数据显示CPU完全可以用于大模型推理场景。
1.2 CPU算力用于大模型推理的适用场景
CPU适用于以下大模型推理场景:
场景1: 大模型推理需要的内存超过了单块GPU的显存容量,需要多块或更高配GPU卡,采用CPU方案,可以降低成本;
场景2: 应用请求量小,GPU利用率低,采用CPU推理,资源划分的粒度更小,可有效降低起建成本;
场景3: GPU资源紧缺,CPU更容易获取,且可以胜任大模型推理。
2 天翼云EMR实例DeepSeek-R1-Distill-Qwen-7B蒸馏模型部署实践
本节内容主要介绍如何在天翼云EMR实例上,基于Intel® xFasterTransformer加速库和vllm推理引擎完成模型部署,并展示相关性能指标。
2.1 服务部署
为了方便用户使用,天翼云联合英特尔制作了一键部署的云主机镜像,内置DeepSeek-R1-Distill-Qwen-7B模型、vLLM推理框架、xFT加速库以及open-webui前端可视环境。您可在天翼云控制台选择下列资源池和镜像,开通云主机进行体验。
类型 | 可用资源 |
---|---|
可用资源池 | 华东-华东1-az2、华东-华东1-az3 |
可用规格 | c8e系列(最低内存需求32G) |
可用镜像 | DeepSeek-vLLM-英特尔AMX推理加速(CPU)![]() |
完成云主机开通后,推理服务会在5分钟内自动启动,您无需进行任何其他操作。
注意如需在云主机外访问服务,您需要绑定弹性IP,并在安全组内放行22/3000/8000端口。
2.2 模型使用
2.2.1 open-webui前端使用
镜像已内置open-webui,并已完成和vllm的连接配置,可直接通过以下地址进行访问:
http://[弹性IP]:3000/
注意1.首次打开页面时,您需要先完成管理员注册,以进行后续的用户管理。注册数据均保存在云实例的/root/volume/open-webui目录下。
2.如果首次打开对话页面时没有模型可供选择,请您稍等几分钟让模型完成加载即可。
2.2.2 vllm api调用
镜像内置vllm服务可直接通过如下地址访问:
# 根路径
http://[弹性IP]:8000/
# 查询现有模型
http://[弹性IP]:8000/v1/models
# 其他api接口参阅vllm文档
注意vllm服务配置有API_KEY,您可在云实例的/root/recreate_container.sh文件开头查看到当前值,并可进行修改以确保服务安全。
2.3 性能指标
借助于英特尔AMX的加速能力,本推理服务能够取得显著的性能提升,天翼云完成测试并给出参考指标如下:
基本参数
● vcpu数:24(物理核12)
● 内存:64GB
● 硬盘:60G 通用型SSD
● 模型:DeepSeek-R1-Distill-Qwen-7B(bf16)
● batch size:1
● 输入token个数:30-60
● 输出token个数:256
性能数据
平均token生成速率:
首token时延:
在天翼云c8e系列24vcpu云主机上,启用AMX加速能力后,DeepSeek 7B蒸馏模型(BF16)推理速度能够超越9token/s,满足日常使用需求。
3 基于英特尔®至强®6处理器部署满血版DeepSeek-R1 671B实践
3.1 性能指标
DeepSeek R1 671B 满血版模型以其卓越的性能,为用户带来了极致的效果体验,不过其部署成本也不容小觑。若采用传统的 GPU 部署方式,需要 8 - 16 张 GPU 才能提供足够的支持,这无疑大幅增加了硬件购置、能耗以及维护等方面的成本。
在这样的背景下,天翼云基于英特尔®提供的至强®6处理器服务器进行了DeepSeek R1 671B满血版Q4_K_M模型的部署尝试,测试结果如下:
- 1-instance 1-socket:
平均吞吐性能9.7~10 token/s
- 2-instance 1-socket:
平均7.32 token/s和7.38token/s, 共14.7token/s
从上面测试数据可以看到,采用单实例单socket部署下,DeepSeek R1 671B满血版模型可达到平均9.7~10 token/s的吞吐量,而在双实例部署模式中,总体吞吐量提升至14.7 token/s。单颗CPU系统的吞吐性能可以达到普通用户正常使用的需要。
3.2 英特尔®至强®6处理器简介
英特尔®至强®CPU 为 DeepSeek R1 671B 模型的部署提供了一个极具竞争力的方案。英特尔®至强®CPU 具备支持 T 级超大内存的能力,这使得它在权重存储与加载方面表现高效。对于像 DeepSeek R1 671B 这样的超大模型,其所需的显存容量在多卡 GPU 配置下才能满足,而英特尔®至强®CPU 能够凭借其强大的内存支持能力,为该模型提供良好的运行环境。
此外,DeepSeek R1 模型采用的 MOE(Mixture of Experts)结构,通过参数稀疏化的方式,使得在单 token 推理时仅需激活少量专家参数。这种特性显著降低了推理过程中的算力要求,与 CPU 的计算特点相契合,使得模型在 CPU 系统上的运行更加高效。这意味着在英特尔 ® 至强 ®CPU 上部署 DeepSeek R1 671B 模型,不仅能够充分发挥模型的性能优势,还能有效降低部署成本,避免了对大量 GPU 的依赖。
如需复现以上性能测试结果,请参看附录2
总结
通过本次实践,无论是在天翼云EMR云实例上结合xFasterTransformer部署DS R1 distill Qwen-7B蒸馏模型,还是基于英特尔® 至强® 6处理器部署满血版DeepSeek-R1 671B模型,均验证了CPU系统在DeepSeek大模型推理上的可行性和符合业界普遍要求的性能表现。CPU系统不仅能够灵活应对不同规模的模型需求,无论是轻量化蒸馏模型还是全功能满血模型,都能高效满足用户场景需求,提供了一种低成本、经济高效的解决方案。
附录1 英特尔® 至强® 可扩展处理器与AI加速技术
最新英特尔® 至强® 可扩展处理器产品
英特尔第五代® 至强® 可扩展处理器(代号 Emerald Rapids)——为AI加速而生
第五代英特尔® 至强® 处理器以专为AI工作负载量身定制的设计理念,实现了核心架构和内存系统的双重飞跃。其64核心设计搭配高达320MB的三级缓存(每核心由1.875MB提升至5MB),相较上代缓存容量实现近三倍增长,为大规模并行AI推理提供充裕的本地数据存储空间。与此同时,处理器支持DDR5-5600高速内存,单路最大4TB的容量保证了大数据处理时的带宽和延迟优势。基于这些硬件提升,Emerald Rapids整体性能较上一代提升21%,AI推理性能平均提升42%,在大语言模型推理场景中可实现最高1.5倍的性能加速,同时大幅降低总拥有成本达77%。
英特尔® 至强®6处理器(代号 GNR Granite Rapids)——引领CPU AI算力革新
全新GNR处理器专为应对人工智能、数据分析及科学计算等计算密集型任务而设计。该产品在内核数量、内存带宽及专用AI加速器方面均实现重大突破:
- 核心与性能:每CPU配备多达128个性能核心,单路核心数较上一代翻倍,同时平均单核性能提升达1.2倍、每瓦性能提升1.6倍,进一步强化了CPU在大模型推理中的独立处理能力;
- AI加速功能:内置英特尔® 高级矩阵扩展(AMX)新增对FP16数据类型的支持,使得生成式AI和传统深度学习推理任务均能获得显著加速;
- 内存与I/O突破:支持DDR5-6400内存及英特尔首款引入的Multiplexed Rank DIMM (MRDIMM) 技术,有效将内存带宽提升至上一代的2.3倍;同时,高达504MB的三级缓存和低延迟设计确保数据能够更快加载,为复杂模型训练和推理缩短响应时间。
英特尔® 至强® 6处理器不仅通过更多的核心和更高的单线程性能提升了AI大模型推理能力,同时也能够作为机头CPU为GPU和其他加速器提供高速数据供给,进一步缩短整体模型训练时间。在满足混合工作负载需求的同时,其TCO平均降低30%,大模型推理加速最高可达2.4倍。
无论是第五代至强还是全新的至强6处理器,英特尔均通过在核心架构、缓存系统、内存技术和专用AI加速器方面的全面革新,提供了业界领先的AI计算支持。这两款产品为数据中心和高性能计算平台在AI推理、训练以及多样化工作负载下提供了强大而高效的算力保障
英特尔全方位的AI软件生态支持
英特尔及其合作伙伴凭借多年AI积累,围绕至强®可扩展处理器打造了完善的软件生态:广泛支持主流开源框架,通过插件优化及多样化开源工具链,使用户在x86平台上能够轻松开发、部署通用AI应用,无需手动调整,同时确保从终端到云的全程安全保护。
此外,至强®处理器内置多种AI加速指令(如AVX-512、AMX),使得任何兼容软件均可直接调用加速功能。开发者可免费下载英特尔分发版工具、库及开发环境,充分利用这些内置加速器应对各类AI管线需求。结合多样化硬件优势与开放生态,英特尔通过经济、可扩展的方案,将AI能力无缝延伸至云端与边缘。
其中,xFasterTransformer(xFT)是英特尔官方开源的AI推理框架,专为大语言模型在至强®平台上深度优化。xFT不仅支持多种数据精度(FP16、BF16、INT8、INT4),还能利用多CPU节点实现分布式部署,显著提升推理性能并降低成本。其简单的安装和与主流Serving框架(如vLLM、FastChat、MLServer、MindSpore Transformer、PaddlePaddle)的兼容性,帮助用户快速加速大模型应用。在3.1节中基于天翼云EMR云主机和xFasterTransformer加速引擎实现了对与DeepSeek R1蒸馏模型的高效推理部署。
附录2 CPU环境下部署DeepSeek-R1 671B模型实践
环境配置
硬件配置
● CPU:Intel® Xeon® 6980P Processor, 128core 2.00 GHz
● 内存 24*64GB DDR5-6400
● 存储 1TB NVMe SSD
软件环境
● OS: Ubuntu 22.04.5 LTS
● Kernel: 5.15.0-131-generic
● llama.cpp: github bd6e55b
● cmake: 3.22.0
● gcc/g++: 11.4.0
● Python: 3.12.8
● git: 2.34.1
BIOS⾥关闭sub NUMA相关配置。
注意版本是指本测试中服务器上安装的版本,并⾮要求的最低版本。
部署步骤
1. 安装llama.cpp
参考llama.cpp官⽹的安装说明,我们的步骤如下。
# 下载llama.cpp推理框架源码
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
# 预先准备intel oneapi库
source /opt/intel/oneapi/setvars.sh
# 基于oneapi库对llama.cpp进行编译
cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Intel10_64lp -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_NATIVE=ON
cmake --build build --config Release -j$nproc
2. 下载模型⽂件
我们直接使用了社区制作的DeepSeek 671B满血模型的Q4量化版,您也可以下载DeepSeek官方BF16版本,并通过 llama.cpp 提供的脚本转换为 GGUF 格式。
社区提供了从 1bit 到 8bit 不同版本的量化选项,具体区别可以参考社区网页。我们选择了使用最受欢迎的 Q4_K_M 版本。如果追求最佳效果,建议使用 Q8_0 版本。
# 下载unsloth制作的社区版量化模型(hf-mirror和modelscpoe源都可)
git clone --no-checkout https://hf-mirror.com/unsloth/DeepSeek-R1-GGUF
cd DeepSeek-R1-GGUF/
# 建议nohup执行, 预计至少需要半天时间, 同时确保磁盘容量足够400G.
git lfs pull --include="DeepSeek-R1-Q4_K_M/*"
Q4_K_M 版本的文件大小为 404.43GB,下载过程可能会比较耗时。下载完成后,您可以在 DeepSeek-R1-Q4_K_M 目录下找到一系列 .gguf 文件,例如 DeepSeek-R1-Q4_K_M-00001-of-00009.gguf。
3. 模型加载和运⾏
使用 llama-cli,指定模型文件路径并启用交互模式,DeepSeek R1 满血版就可以在 CPU 上顺利运行了。
build/bin/llama-cli -m /tmp/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00001-of- 00009.gguf -i
下面用几个示例展现DeepSeek-R1 671B满血版强大的的reasoning推理能力:
测试模型自我认知:
验证推理能⼒的经典“草莓”问题:
“等灯等灯”的意思:
4.性能及优化
那么CPU运⾏满⾎版R1的性能怎么样呢︖我们做了相关性能测试。对于Q4_K_M模型,使⽤如下命令进行:
export MODEL_PATH=/tmp/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf
numactl -C 0-127 -m 0 ./build/bin/llama-cli -m $MODEL_PATH -t 128 --temp 0.6 -s 42 -no-cnv --no-kv-offload -ctk q4_0 -c 8192 -n 128 -p "<|User|>以孤独的夜行者为题写一篇750字的散文,描绘一个人在城市中夜晚漫无目的行走的心情与所见所感,以及夜的寂静给予的独特感悟。<|Assistant|>"
这⾥使⽤numactl来指定使⽤单路CPU (0-127, 6980P有128核),以及这⼀路CPU的内存节点(numa0),避免跨numa传输以获取最佳性能。
llama.cpp是本地编译的,编译的时候使⽤Intel oneAPI可以有效提升它的性能。英特尔尝试⽤了oneAPI⾥的Intel C++编译器和数学加速库MKL,结合jemalloc内存管理优化,推理速度可以达到每秒9.7~10词元(TPS, tokens per second)。
上⾯的实验是在单路CPU上进⾏的,我们⼜在两路CPU上各⾃独⽴启动1个模型实例,总速度可以达到14.7TPS (7.32TPS+7.38TPS)。
再进⼀步,英特尔观察到基于现有的llama.cpp软件⽅案,在CPU平台没有实现⾼效的专家并⾏和张量并⾏等优化,CPU核⼼利⽤率和带宽资源没有充分发挥出来,6980P的128核⼼运⾏1个模型还有不少性能储备。预计可以继续增加实例数来获得更好的总TPS。
另外,通常情况下,CPU的SNC (Sub-NUMA Clustering)设置可以获得更⾼的带宽,但是受限于软件并未优化实现良好匹配,此次实验关闭了SNC测试。
以下⽅式的系统配置也有助于提升性能:
● BIOS⾥关闭AMP prefetcher
● ⽤cpupower打开CPU的pstate性能模式
● 提⾼CPU的uncore频率
● 关闭超线程(Hyper-Threading)
注意为了加快试验进度,我们限制了词元输出⻓度(-n 128)。经过验证,增加输出⻓度(例如-n 512)对于生成性能指标的影响不大。
返回DeepSeek专区导航。