论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
人工智能
›
人工智能
›
【后知后觉】llama.cpp-cpu-跑deepseek:671b
【后知后觉】llama.cpp-cpu-跑deepseek:671b
风雨同行
金牌会员
|
2025-3-24 21:12:52
|
显示全部楼层
|
阅读模式
楼主
主题
939
|
帖子
939
|
积分
2817
摘要:只是想试试,cpu跑deepseek:671b。
1.编译llama.cpp
参考资料:DeepSeek R1 671b 满血版摆设笔记。
原味摘抄:“假如是纯 CPU 推理,考虑到我希望有 -march=native 来达到最大运算速率采用了本地编译,这里 llama.cpp 会帮我们加上 -mrach=native。”
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build && cd build
#确认是否安装
sudo apt install -y cmake gcc g++ libcurl4-openssl-dev
#编译
cmake .. -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=ON -DCMAKE_INSTALL_PREFIX=~/LLAMA
make all -j install
复制代码
必须将LLAMA/lib 加入系统征采库,不然无法运行
vim ~/.bashrc
export LD_LIBRARY_PATH=~/LLAMA/lib:$LD_LIBRARY_PATH
export PATH=$PATH:~/LLAMA/bin
#保存退出后,执行
source ~/.bashrc
复制代码
2.利用huggingface-cli 下载模子
2.1安装huggingface-cli
安装python3、pip不在叙述,请自行安装
pip install huggingface_hub
#在~/.bashrc加入bin路径
vim ~/.bashrc
export PATH=$PATH:~/.local/bin
#执行
source ~/.bashrc
复制代码
2.2 huggingface-cli命令解释
仅对利用到的参数做出说明,原始说明进入该网站查看:https://huggingface.co/docs/huggingface_hub/main/en/guides/cli
2.2.1下载多个文件
您还可以利用单个命令从存储库下载文件的子集。这可以通过两种方式完成。假如您已经有要下载的文件的精确列表,则只需按顺序提供它们即可:
huggingface-cli download gpt2 config.json model.safetensors
复制代码
另一种方法是提供模式来过滤要利用 和 下载的文件。例如,假如要从
stabilityai/stable-diffusion-xl-base-1.0
下载所有 safetensors 文件,但 FP16 精度的文件除外:--include--exclude
huggingface-cli download stabilityai/stable-diffusion-xl-base-1.0 --include "*.safetensors" --exclude "*.fp16.*"*
复制代码
2.2.2下载到本地文件夹
从 Hub 下载文件的推荐(也是默认)方法是利用 cache-system。但是,在某些环境下,您希望下载文件并将它们移动到特定文件夹。这对于使工作流程更接近 git 命令提供的内容很有效。您可以利用选项来执行此作。--local-dir
将在本地目录的根目录下创建一个文件夹,其中包罗有关已下载文件的元数据。假如文件已经是最新的,则可以防止重新下载文件。假如元数据已更改,则会下载新的文件版本。这使得 针对仅提取最新更改进行了优化。.cache/huggingface/local-dir
huggingface-cli download adept/fuyu-8b model-00001-of-00002.safetensors --local-dir fuyu
复制代码
2.3官网下载
起首在官网创建access Tokens
在shell中,登录和下载
huggingface-cli login
#输入创建的access Tokens
#理论命令,但是allow-patterns会报错,不加这个又不知道怎么指定模型
huggingface-cli download unsloth/deepseek-r1-gguf --local-dir "本地路径" --repo-type model --allow-patterns "*r1-q4_k_m*"
复制代码
2.4镜像下载
从官网险些不可能下载下来。
注:从镜像源下载,不需要登录也不需要access token。
从上述官网或者镜像网站找到要下载的版本,取红字内里的表示文字。
整个下载模子,以DeepSeek-R1:671b 1.25bit量化版本为例
#指定镜像网站入口
export HF_ENDPOINT=https://hf-mirror.com
#使用要下载的版本,替换下述粗体部分即可
huggingface-cli download unsloth/DeepSeek-R1-GGUF --include "*IQ1_M*" --local-dir ~/deepseek/unsloth
复制代码
指定单个文件下载,以DeepSeek-R1:671b 4bit量化版本为例
huggingface-cli download unsloth/DeepSeek-R1-GGUF DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00008-of-00009.gguf --local-dir /home/hank8s/deepseek/unsloth
复制代码
大火的Qwen_QwQ-32B
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download bartowski/Qwen_QwQ-32B-GGUF Qwen_QwQ-32B-Q4_0.gguf --local-dir /home/hank8s/deepseek/bartowski
复制代码
3.加载模子
GGUF 分片文件的定名需遵照固定格式:模子名-分片编号.gguf(如 DeepSeek-R1-Q4_K_M-00001-of-00009.gguf)。所有分片文件必须位于同一目录,且文件名中的编号需连续、完整。
直接指定主模子路径
在 llama.cpp 中,只需指定
恣意一个分片文件路径
或
底子模子名
(不带编号的部门),程序会主动加载所有分片。例如:
3.2利用llama-cli交互运行
#加载Q4量化版本
llama-cli -t 48 -m unsloth/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf -c 4096
#--no-mmap 的话会直接把模型拉到内存里
#-t 48 使用 48 个线程
#-c 4096 context 设置为 4k
#通过 --n-gpu-layers 参数限制 GPU 加速层数(若支持 GPU)
复制代码
备用
#加载Q1量化版本
llama-cli -t 48 -m unsloth/DeepSeek-R1-UD-IQ1_M/DeepSeek-R1-UD-IQ1_M-00001-of-00004.gguf -c 4096 --no-mmap
#加载Q8量化本本
llama-cli -t 48 -m /nfsdata/deepseek/unsloth/DeepSeek-R1-Q8_0/DeepSeek-R1.Q8_0-00001-of-00015.gguf -c 4096 --no-mmap
复制代码
备用
#加载QwQ模型
llama-cli -t 48 -m ~/deepseek/bartowski/Qwen_QwQ-32B-Q8_0.gguf -c 4096 --no-mmap
llama-cli -t 12 -m Qwen_QwQ-32B-Q8_0.gguf -c 4096 --no-mmap --n-gpu-layers 10
复制代码
3.3利用llama-server运行模子
llama-server -t 48 -m ./DeepSeek-R1-Q8_0/DeepSeek-R1.Q8_0-00001-of-00015.gguf \
-c 4096 --no-mmap \
--host 0.0.0.0 --port 9090
复制代码
3.4评测模子速率
指令
#Q4量化
llama-bench --model unsloth/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf --n-gen 128 --batch-size 2048
#Q8量化
llama-bench --model /nfsdata/deepseek/unsloth/DeepSeek-R1-Q8_0/DeepSeek-R1.Q8_0-00001-of-00015.gguf --n-gen 128 --batch-size 2048
#Q1.25量化
llama-bench --model unsloth/DeepSeek-R1-UD-IQ1_M/DeepSeek-R1-UD-IQ1_M-00001-of-00004.gguf --n-gen 128 --batch-size 2048
#Qwen_QwQ-32B
llama-bench --model ~/deepseek/bartowski/Qwen_QwQ-32B-Q4_0.gguf --n-gen 128 --batch-size 2048
复制代码
备用测试指令
llama-bench --model ~/deepseek/bartowski/Qwen_QwQ-32B-Q4_0.gguf \
--n-gen 128 --batch-size 512 --ubatch-size 128 --threads 48 --numa isolate --mmap 1 --cpu-strict 1
复制代码
参数
CPU严酷模式
: 启用 (--cpu-strict 1)
批处理大小 (batch size)
: 512
子批处理大小 (ubatch size)
: 128
NUMA 隔离
: 启用 (--numa isolate)
内存映射 (mmap)
: 启用 (--mmap 1)
3.4.1 DeepSeek-R1:671b-Q4量化
对比分析 (与 Qwen2 32B Q4_0 模子)
模子推理性能 (pp512)生成性能 (tg128)
Qwen2 32B Q4_0
71.26 tokens/s
13.98 tokens/s
DeepSeek2 671B Q4_K
31.85 tokens/s
9.08 tokens/s
结果
备注:利用--n-gen 128 --batch-size 2048测试,生成性能为8点多
tokens/s。
3.4.2 DeepSeek-R1:671b-Q1.25量化
测试结果与 Q4利用--n-gen 128 --batch-size 2048测试,生成性能为8点多
tokens/s。
这个ai解释说是由于cpu浮点-整数性能以及整数不同bit的性能是差不多的,所以结果是接近的,乃至
Q1.25还不如Q4。
3.4.3Qwen_QwQ-32B-Q4
测试结果
测试场景吞吐量 (tokens/s)
pp512
(推理性能)
71.26 ± 0.08
tg128
(生成性能)
13.98 ± 0.01
4.后记
4.1后记1-Ollama跑deepseek:671b
题目:回答第二个题目,肯定瓦解,希望Ollama好好优化下。
4.2后记2
windows下利用LM Studio运行即可,由于上述下载的是gguf模子,与LM Studio运要求的模子格式划一。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
风雨同行
金牌会员
这个人很懒什么都没写!
楼主热帖
深入Python网络编程:从基础到实践 ...
MySQL锁(乐观锁、悲观锁、多粒度锁) ...
中职网络安全技能大赛SSH弱口令渗透测 ...
阿里云体验有奖:如何将 PolarDB-X 与 ...
HTML+CSS+JS——动漫风二次元论坛(2页) ...
超融合和传统 “VMware + FC SAN& ...
四、MySQL之数据查询语言(二) ...
转载自ChatGPT:Python关键字 asynico ...
损失函数-pytorch
01.初识Python
标签云
运维
CIO
存储
服务器
浏览过的版块
.Net
SAP
边缘计算
数据仓库与分析
Mysql
容器及微服务
软件定义存储SDS
运维.售后
快速回复
返回顶部
返回列表