使用ollama运行deepseek r1 满血版教程
1、ollama run deepseek-r1:671b但是只有开始下载的前几分钟快,后续速度变慢,ollama又支持断点下载,所以,直接写个脚本下60s停止再继续。400G的模型半个晚上就下完了。保存后运行ollama create deepseek.r1:12gpu,创建了一个新的模型名称,可以通过ollama list查看,run deepseek.r1:12gpu就能成功了。对于 Dee
1、ollama run deepseek-r1:671b但是只有开始下载的前几分钟快,后续速度变慢,ollama又支持断点下载,所以,直接写个脚本下60s停止再继续。400G的模型半个晚上就下完了。
#!/bin/bash
# 无限循环,直到模型下载完成
while true; do
# 检查模型是否已下载完成
if ollama list | grep -q "deepseek-r1:1.5b"; then
echo "模型已下载完成!"
break
fi
# 启动 ollama 进程并记录进程ID
echo "开始下载模型..."
ollama run deepseek-r1:1.5b &
# 获取 ollama 进程的 PID
pid=$!
# 等待60秒
sleep 60
# 终止正在运行的进程
if ps -p $pid > /dev/null; then
kill -9 $pid
echo "已中断本次下载,准备重新尝试..."
else
echo "进程已结束,无需中断。"
fi
done
2、我的配置是4090*6*24G+700G内存,ollama run deepseek-r1:671b加载模型过程中会报错,内容为:
Error: llama runner process has terminated: error loading model: unable to allocate CUDA1 buffer llama_load_model_from_file: failed to load model使用ollama run
搜了教程支持在 GPU 已满时在 CPU 上加载并发模型 ·问题 #6950 ·OLLAMA/OLLAMA
总结来说方案如下
添加环境变量
export OLLAMA_GPU_OVERHEAD=536870912 # 为 GPU 分配额外的内存缓冲区(例如,512MB)
export OLLAMA_FLASH_ATTENTION=1 # 启用闪存注意力机制,可能减少内存占用
export GGML_CUDA_ENABLE_UNIFIED_MEMORY=1 # 启用统一内存,允许 GPU 使用系统内存
还是不行,继续,提取现有模型配置,
ollama show --modelfile deepseek-r1:671b | sed -e 's/^FROM.*/FROM deepseek-r1:671b/' > Modelfile
修改num_gpu:加载至 GPU 的模型层数。DeepSeek R1 模型共有 61 层,我的经验是:
对于 DeepSeek-R1-Q4_K_M,每卡仅可加载 2 层,六卡共 12 层。
所以编辑 Modelfile 文件,添加一行
PARAMETER num_gpu 12
保存后运行ollama create deepseek.r1:12gpu,创建了一个新的模型名称,可以通过ollama list查看,run deepseek.r1:12gpu就能成功了。!!
更多推荐



所有评论(0)