基于ollama部署的DeepSeek蒸馏模型,如何使用多GPU能力提升tokens输出性能
【摘要】 对于有多张卡的场景下,ollama下如何利用多卡提高DeepSeek 蒸馏模型的并发性能,均衡使用GPU卡。
对于有多张卡的场景下,ollama下如何利用多卡提高DeepSeek 蒸馏模型的并发性能,均衡使用GPU卡,此处4张24GB显卡部署deepseek-r1:32b蒸馏模型为例:
前提条件:已经通过ollama部署好模型
具体可参考:快速搭建DeepSeek推理系统
步骤1 查看GPU使用:登录虚拟机后,查看GPU使用情况,执行下面命令
watch -n 1 nvidia-smi
执行后,展示如下:
可以看到只有1张卡在运行
步骤2 性能测试:参考《快速搭建EvalScope模型性能评测平台》:https://www.huaweicloud.com/solution/implementations/deploying-evalscope-for-model-performance-evaluation.html 测试32b模型性能,测试命令参考如下 :其中{ip}为你部署大模型的虚拟机IP地址,注意放开大模型所在虚拟机的11434端口安全组设置
evalscope perf --url 'http://{ip}:11434/v1/chat/completions' \
--max-prompt-length 128 \
--parallel 20 \
--model 'deepseek-r1:32b' \
--log-every-n-query 1 \
--read-timeout=1200 \
--name 128-128-1 \
--stream \
--dataset-path '/root/data/open_qa.jsonl' \
-n 20 \
--max-tokens 1024
--api openai \
--stop '<|im_end|>' \
--dataset openqa
测试脚本简介:测试10个并发,20次对话下,模型性能测试结果参考类似如下:
可以看到:平均tokens 大概25.6tokens/s,查看GPU发现只有单GPU在运行
步骤3 设置多GPU均衡运行,提高系统吞吐率:
1、执行如下命令查看配置文件
vim /etc/systemd/system/ollama.service
显示大概如下:
2、增加如下配置项,按下”i”键,插入如下内容:
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3"
Environment="OLLAMA_SCHED_SPREAD=1"
Environment="OLLAMA_KEEP_ALIVE=-1"
参数说明:
- Environment="CUDA_VISIBLE_DEVICES=0,1,2,3" 代表让ollama能识别到第几张显卡,因为4张显卡,从0开始编号,所以为0,1,2,3
- Environment="OLLAMA_SCHED_SPREAD=1" 这几张卡均衡使用
- Environment="OLLAMA_KEEP_ALIVE=-1" 模型一直加载, 不自动卸载
按”Esc”键后,输入wq退出保存修改
步骤4 重启ollama并重新测试性能:执行如下命令,并查看ollama进程是否启动
systemctl daemon-reload
systemctl stop ollama.service
systemctl start ollama.service
ps -ef | grep ollama
1、再次通过步骤2测试性能,对比如下:系统平均tokens达到了35,较无并发均衡配置下的25,提升了40%
2、GPU使用情况监测如下:可以看到4卡均衡使用
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)