一、硬件配置
官方建议:
1.58 位量化应适合 160GB 的 VRAM 以进行快速推理(2x H100 80GB),吞吐量约为每秒 140 个令牌,单用户推理为每秒 14 个令牌。您不需要 VRAM (GPU) 来运行 1.58 位 R1,只需 20GB 的 RAM (CPU) 就可以工作,但可能会很慢。为了获得最佳性能,我们建议 VRAM + RAM 的总和至少为 80GB+。
本次部署配置:
CPU:16核
RAM:64G
VRAM:8G
二、动态量化各版本的对比
| MoE | DISK | Type | Quality | Link | Down_proj |
| 1.58-bit | 131GB | IQ1_S | 公平 | 下载链接 | 2.06/1.56bit |
| 1.73-bit | 158GB | IQ1_M | 好 | 下载链接 | 2.06bit |
| 2.22-bit | 183GB | IQ2_XXS | 更好 | 下载链接 | 2.5/2.06bit |
| 2.51-bit | 212GB | Q2_K_XL | 最好 | 下载链接 | 3.5/2.5bit |
层数
| Quant | File Size | 24GB GPU | 80GB GPU | 2x80GB GPU |
| 1.58bit | 131GB | 7 | 33 | 61 |
| 1.73bit | 158GB | 5 | 26 | 57 |
| 2.22bit | 183GB | 4 | 22 | 49 |
| 2.51bit | 212GB | 2 | 19 | 22 |
也可以搭配GRPO和Unsloth蒸馏版本进行训练自己的推理模型 GRPO+Unsloth
三、下载模型文件
1.下载并安装XDM下载器
https://xtremedownloadmanager.com
2.选择File>Add URL

3.打开模型链接依次单个文件复制到XDM下载器中,https://huggingface.co/unsloth/DeepSeek-R1-GGUF


如果国内网络不通的情况下可以修改下解析:
#vi /etc/hosts
13.35.202.34 huggingface.co
四、合并模型文件
将下载的 3 个 GGUF 拆分文件合并为 1 个(根据自己下载的进行修改命令,下方提供三个模板)
# /usr/local/Cellar/llama.cpp/4743/bin/llama-gguf-split --merge DeepSeek-R1-UD-IQ1_M-00001-of-00004.gguf DeepSeek-R1-UD-IQ1_M.gguf
# /usr/local/Cellar/llama.cpp/4743/bin/llama-gguf-split --merge DeepSeek-R1-Q4_K_M-00001-of-00009.gguf DeepSeek-R1-Q4_K_M.gguf
# /usr/local/Cellar/llama.cpp/4743/bin/llama-gguf-split --merge DeepSeek-R1-GGUF/DeepSeek-R1-UD-IQ1_S/DeepSeek-R1-UD-IQ1_S-00001-of-00003.gguf DeepSeek-R1-UD-IQ1_S.gguf

五、使用llama安装部署(llama和ollama任一即可)
MAC安装llama(mac 如果是amd显卡目前没法用,只能用cpu)
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" #mac安装Brew
# brew install llama.cpp

# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" #mac安装Brew
# brew install llama.cpp

Linux安装llama
apt-get update
apt-get install build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggerganov/llama.cpp
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
更改安装目录
sudo systemctl edit ollama
并在第二行后添加以下行(即在 “” 和 “”) 之间### Anything between here and the comment below will become the contents of the drop-in file### Edits below this comment will be discarded
[Service]
Environment="OLLAMA_MODELS=/path/to/your/directory"
然后重新启动 ollama 服务
sudo systemctl restart ollama
CUDA编译:
已安装CUDA toolkit (驱动固件)
cmake -B build -DGGML_MUSA=ON \
-DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON
cmake --build build --config Release
CANN编译:
已安装CANN Toolkit(驱动固件)
cmake -B build -DGGML_CANN=on -DCMAKE_BUILD_TYPE=release
cmake --build build --config release
测试:./build/bin/llama-cli -m PATH_TO_MODEL -p "Building a website can be done in 10 steps:" -ngl 32
HIP编译:
已安装ROCm
HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \
cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \
&& cmake --build build --config Release -- -j 16
在 Linux 上,还可以使用统一内存架构 (UMA) 在 CPU 和集成 GPU 之间共享主内存,方法是将 . 但是,这会损害非集成 GPU 的性能(但允许使用集成 GPU)。-DGGML_HIP_UMA=ON
安装ROCm
#brew install cmake llvm libfabric rocm-device-libs hipify clang-format hcc hip rocminfo rocprim rocrand rocsolver rocblas rocprim
#brew install cmake llvm libfabric clang-format
Metal编译:
在 MacOS 上,Metal 默认处于启用状态。使用 Metal 使计算在 GPU 上运行。 要在编译时禁用 Metal 构建,请使用 cmake 选项。-DGGML_METAL=OFF使用 Metal 支持构建时,您可以使用命令行参数显式禁用 GPU 推理。--n-gpu-layers 0
apt-get update
apt-get install build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggerganov/llama.cpp
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
更改安装目录
sudo systemctl edit ollama
并在第二行后添加以下行(即在 “” 和 “”) 之间### Anything between here and the comment below will become the contents of the drop-in file### Edits below this comment will be discarded
[Service]
Environment="OLLAMA_MODELS=/path/to/your/directory"
然后重新启动 ollama 服务
sudo systemctl restart ollama
CUDA编译:
已安装CUDA toolkit (驱动固件)
cmake -B build -DGGML_MUSA=ON \
-DBUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON
cmake --build build --config Release
CANN编译:
已安装CANN Toolkit(驱动固件)
cmake -B build -DGGML_CANN=on -DCMAKE_BUILD_TYPE=release
cmake --build build --config release
测试:./build/bin/llama-cli -m PATH_TO_MODEL -p "Building a website can be done in 10 steps:" -ngl 32
HIP编译:
已安装ROCm
HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \
cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \
&& cmake --build build --config Release -- -j 16
在 Linux 上,还可以使用统一内存架构 (UMA) 在 CPU 和集成 GPU 之间共享主内存,方法是将 . 但是,这会损害非集成 GPU 的性能(但允许使用集成 GPU)。-DGGML_HIP_UMA=ON
安装ROCm
#brew install cmake llvm libfabric rocm-device-libs hipify clang-format hcc hip rocminfo rocprim rocrand rocsolver rocblas rocprim
#brew install cmake llvm libfabric clang-format
Metal编译:
在 MacOS 上,Metal 默认处于启用状态。使用 Metal 使计算在 GPU 上运行。 要在编译时禁用 Metal 构建,请使用 cmake 选项。-DGGML_METAL=OFF使用 Metal 支持构建时,您可以使用命令行参数显式禁用 GPU 推理。--n-gpu-layers 0使用llama运行模型
在MAC上运行(例子对于 Apple Metal 设备,请注意 --n-gpu-layers。如果您发现计算机内存不足,请减少内存。对于 128GB 的统一内存计算机,您应该能够卸载 59 层左右。)
./llama.cpp/llama-cli \
--model DeepSeek-R1-GGUF/DeepSeek-R1-UD-IQ1_S/DeepSeek-R1-UD-IQ1_S-00001-of-00003.gguf \
--cache-type-k q4_0 \
--threads 16 \
--prio 2 \
--temp 0.6 \
--ctx-size 8192 \
--seed 3407 \
--n-gpu-layers 59 \
-no-cnv \
--prompt "<|User|>Create a Flappy Bird game in Python.<|Assistant|>"
--threads == 你有多少个 CPU 内核
--ctx-size == 输出的上下文长度
--n-gpu-layers == 要卸载到你的 GPU 的层数(从层数表中获取)
--prompt 提问

在Linux上运行(例如,在具有 24GB VRAM/内存的 RTX 4090 GPU 上,我们这样做:)
./llama.cpp/llama-cli \
--model DeepSeek-R1-GGUF/DeepSeek-R1-UD-IQ1_S/DeepSeek-R1-UD-IQ1_S-00001-of-00003.gguf \
--cache-type-k q4_0 \
--threads 16 \
--prio 2 \
--temp 0.6 \
--ctx-size 8192 \
--seed 3407 \
--n-gpu-layers 7 \
-no-cnv \
--prompt "<|User|>Create a Flappy Bird game in Python.<|Assistant|>"
--threads == 你有多少个 CPU 内核
--ctx-size == 输出的上下文长度
--n-gpu-layers == 要卸载到你的 GPU 的层数(从层数表中获取)
六、使用ollama安装部署(llama和ollama任一即可)
1.linux安装ollama
# curl -fsSL https://ollama.com/install.sh | sh
2.mac安装ollama
https://ollama.com/download
下载后直接图形化安装
2.创建一个指导ollama创建模型的模型文件
这个DeepSeekQ1_Modelfile 使用的是 DeepSeek-R1-UD-IQ1_M
FROM /home/snowkylin/DeepSeek-R1-UD-IQ1_M.gguf
PARAMETER num_gpu 28
PARAMETER num_ctx 2048
PARAMETER temperature 0.6
TEMPLATE "<|User|>{{ .System }} {{ .Prompt }}<|Assistant|>"
这个DeepSeekQ4_Modelfile 使用的是 DeepSeek-R1-Q4_K_M
FROM /home/snowkylin/DeepSeek-R1-Q4_K_M.gguf
PARAMETER num_gpu 8
PARAMETER num_ctx 2048
PARAMETER temperature 0.6
TEMPLATE "<|User|>{{ .System }} {{ .Prompt }}<|Assistant|>"
#num_gpu要卸载到你的 GPU 的层数(从层数表中获取)
#num_ctx 上下文长度 可以在开始时保持较小值,以便模型适合内存,然后您可以逐渐增加它,直到发生 OOM。
# vim DeepSeekIQ1_Modelfile
FROM /home/test/DeepSeek-R1-UD-IQ1_S.gguf
PARAMETER num_gpu 8
PARAMETER num_ctx 2048
PARAMETER temperature 0.6
TEMPLATE "<|User|>{{ .System }} {{ .Prompt }}<|Assistant|>"

3.在ollama创建模型
ollama create DeepSeek-R1-UD-IQ1_S -f DeepSeekQ1_Modelfile

4.在ollama运行模型
ollama run DeepSeek-R1-UD-IQ1_S --verbose
如果在初始化模型或生成模型时仍然出现 OOM/CUDA 错误,您也可以尝试以下操作
- 增加系统的交换空间以扩大可用的 RAM。(最好不要依赖这个,这会大大减慢生成速度。当 ollama 错误地高估了内存需求并且不允许您运行模型时,请使用它)
- 在模型文件中设置参数,告诉LLM允许生成的最大代币数量,然后重新创建并重新运行模型。
num_predict
如何指定上下文窗口大小?
默认情况下,Ollama 使用的上下文窗口大小为 2048 个令牌。
要在使用 时更改此设置,请使用 :ollama run/set parameter
/set parameter num_ctx 4096
ollama run DeepSeek-R1-UD-IQ1_S /set parameter num_ctx 4096 --verbose
如何判断我的模型是否已加载到 GPU 上?
使用该命令查看当前加载到内存中的模型。ollama ps
ollama ps
输出:
NAME ID SIZE PROCESSOR UNTIL llama3:70b bcfb190ca3a7 42 GB 100% GPU 4 minutes from now该列将显示模型加载到哪个内存:
Processor
100% GPU表示模型已完全加载到 GPU 中100% CPU表示模型完全加载到系统内存中48%/52% CPU/GPU表示模型已部分加载到 GPU 和系统内存中
运行Ollama在Open WebUI
##后续
Ollama 利用 AMD ROCm 库,该库并不支持所有 AMD GPU。在 在某些情况下,您可以强制系统尝试使用类似的 LLVM 目标,即 关闭。例如:Radeon RX 5400 是(也称为 10.3.4) 但是,ROCm 目前不支持此目标。最接近的支持是 。您可以将环境变量与 syntax 一起使用。因此,例如,要强制系统在 RX 5400 上运行,您需要 将设置为 服务器。如果您有不受支持的 AMD GPU,则可以使用 支持的类型如下。gfx1034gfx1030HSA_OVERRIDE_GFX_VERSIONx.y.zHSA_OVERRIDE_GFX_VERSION="10.3.0"
如果您有多个具有不同 GFX 版本的 GPU,请附加数字设备 number 添加到环境变量中以单独设置它们。例如,和HSA_OVERRIDE_GFX_VERSION_0=10.3.0HSA_OVERRIDE_GFX_VERSION_1=11.0.0
报错:
1. Error: llama runner process has terminated: GGML_ASSERT(hparams.n_expert <= LLAMA_MAX_EXPERTS) failed
版本问题,升级后解决

2.Error: llama runner process has terminated: signal: killed

资源耗尽被系统杀掉进程,扩容硬件或者降低模型配置
export OLLAMA_KEEP_ALIVE=-1 export OLLAMA_SCHED_SPREAD=1
让Ollama运行时尽量占满GPU,然后重新Ollama run 模型
LLAMA github:https://github.com/ggml-org/llama.cpp.git








COMMENTS | NOTHING