进阶 unsloth.ai 2026-10-07 22:27:00 · 6 阅读

第32章 本地运行 DeepSeek-V3-0324:Unsloth 动态量化 GGUF 实践指南

unsloth 下载 ☰ 下载 博客 运行 DeepSeek-V3-0324 2025年3月25日 • 作者 Daniel & Michael 2025年3月25日•作者 Daniel & Michael DeepSeek 推出的新款 V3-0324 模型在多项基准测试中,性能可与 OpenAI 的 GPT-4.5 及 Claude 3.7 Sonnet 媲美。现在,你可以通过 Unsloth 的 Dynamic GGUF 在常用的推理框架上运行该模型。 阅读我们的指南,获取在本地运行 DeepSeek-V3-0324 的详细步骤及示例。 为了在精度与体积间取得最佳平衡,我们不对所有层进行量化,而是有选择地对 MoE 层进行低比特量化,并将注意力层及其他层保留在 4 或 6 比特。 在此处获取我们的 Unsloth Dynamic DeepSeek-V3-0324 GGUFs 七边形对比测试 我们使用七边形谜题来测试动态量化版本。该测试要求模型构建一个基础物理引擎,以模拟球体在移动封闭式七边形内的旋转。结果显示,我们的 2.71 比特版本产出的结果与完整的 fp8 几乎完全一致,而标准的 3 比特版本则无法生成可运行的代码或遵循提示指令。在 Flappy Bird 游戏测试中也观察到类似现象:动态 2.71 比特版本执行的代码与完整 8 比特版本几乎相同,而标准的 2 比特和 3 比特版本均失败。 我们发现,非推理模型在量化过程中受到的影响更大。因此,为获得最佳运行效果,请使用 2.71 比特动态版本,并确保 VRAM 与 RAM 的总和至少为 160GB 以上。你完全可以不依赖 GPU 来运行该模型,但除非你使用的是 Apple 的统一内存,否则尽量避免这么做。 针对 1.78bit 量化版本,在使用双张 H100 80GB GPU 并将所有层卸载至显存时,吞吐量可达 140 tokens/s,单用户推理速度为 14 tokens/s。像 RTX 4090 这样的 24GB GPU 至少能跑出 1 到 3 tokens/s。🐋如何运行 DeepSeek-V3-0324 我们提供了 5 种动态量化版本。前两种利用重要性矩阵(通过 llama.cpp 的 imatrix)校准量化过程,从而支持更低位的表示。后三种采用标准量化,未进行校准。本次还新增了 3.5 + 4.5-bit 动态量化版本。MoE Bits 磁盘大小 类型 质量 链接 Down_proj 1.71-bit 151GB IQ1_S Ok 链接 2.06/1.71bit 1.93-bit 178GB IQ1_M Fair 链接 2.06/1.93bit 2.42-bit 203GB IQ2_XXS Better 链接 2.5/2.42bit 2.71-bit 232GB Q2_K_XL Good 链接 3.5/2.71bit 3.5-bit 320GB Q3_K_XL Great 链接 4.5/3.5bit 4.5-bit 406GB Q4_K_XL Best 链接 5.5/4.5bit 🦙 如何使用 llama.cpp 运行 V3: 在 GitHub 此处获取最新版本的 llama.cpp。也可以遵循下方的构建说明。如果没有 GPU 或仅想使用 CPU 推理,请将 -DGGML_CUDA=ON 改为 -DGGML_CUDA=OFF。apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/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 安装 pip install huggingface_hub hf_transfer 后,通过以下方式下载模型。你可以选择 UD-IQ1_S(动态 1.58bit 量化)或其他量化版本(如 Q4_K_M)。# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
repo_id = "unsloth/DeepSeek-V3-0324-GGUF",
local_dir = "unsloth/DeepSeek-V3-0324-GGUF",
allow_patterns = ["*UD-Q2_K_XL*"], # 动态 2.7bit (230GB),若要使用动态 1.78bit (151GB) 请改用 "*UD-IQ_S*"
) 按照我们在 DeepSeek R1 1.58bit 动态量化中的描述,运行 Unsloth 的 Flappy Bird 测试。通过 --threads 32 设置 CPU 线程数,--ctx-size 16384 设置上下文长度,--n-gpu-layers 2 设置 GPU 卸载层数。如果 GPU 显存不足,请尝试调整该数值。如果是纯 CPU 推理,请移除该参数。../llama.cpp/llama-cli \
--model unsloth/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL/DeepSeek-V3-0324-UD-Q2_K_XL-00001-of-00006.gguf \
--cache-type-k q8_0 \
--threads 20 \
--n-gpu-layers 2 \
-no-cnv \
--prio 3 \
--temp 0.3 \
--min_p 0.01 \
--ctx-size 4096 \
--seed 3407 \
--prompt "<|User|>Create a Flappy Bird game in Python. You must include these things:\n1. You must use pygame.\n2. The background color should be randomly chosen and is a light shade. Start with a light blue color.\n3. Pressing SPACE multiple times will accelerate the bird.\n4. The bird's shape should be randomly chosen as a square, circle or triangle. The color should be randomly chosen as a dark color.\n5. Place on the bottom some land colored as dark brown or yellow chosen randomly.\n6. Make a score shown on the top right side. Increment if you pass pipes and don't hit them.\n7. Make randomly spaced pipes with enough space. Color them randomly as dark green or light brown or a dark gray shade.\n8. When you lose, show the best score. Make the text inside the screen. Pressing q or Esc will quit the game. Restarting is pressing SPACE again.\nThe final game should be inside a markdown section in Python. Check your code for errors and fix them before the final markdown section.<|Assistant|>"我们还会通过 Heptagon 测试来检验动态量化模型,这个测试让模型创建一个基础物理引擎,模拟小球在一个移动的封闭七边形内旋转。/llama.cpp/llama-cli \
--model unsloth/DeepSeek-V3-0324-GGUF/UD-Q2_K_XL/DeepSeek-V3-0324-UD-Q2_K_XL-00001-of-00006.gguf \
--cache-type-k q8_0 \
--threads 20 \
--n-gpu-layers 2 \
-no-cnv \
--prio 3 \
--temp 0.3 \
--min_p 0.01 \
--ctx-size 4096 \
--seed 3407 \
--prompt "<|User|>编写一个 Python 程序,展示 20 个球在一个旋转的正七边形内弹跳:\n- 所有球的半径相同。\n- 每个球上标有 1 到 20 的数字。\n- 启动时,所有球从正七边形的中心落下。\n- 颜色如下:#f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35\n- 球受重力和摩擦力影响,必须能够真实地反弹 off 旋转的墙壁。球与球之间也要发生碰撞。\n- 所有球的材质特性决定了它们的弹跳高度不会超过正七边形的半径,但会高于球本身的半径。\n- 所有球随摩擦旋转,球上的数字可用于指示球的自旋状态。\n- 正七边形绕其中心旋转,旋转速度为每 5 秒 360 度。\n- 正七边形的尺寸应足够大,以容纳所有球。\n- 不要使用 pygame 库;请自行实现碰撞检测算法和碰撞响应等逻辑。允许使用的 Python 库包括:tkinter, math, numpy, dataclasses, typing, sys。\n- 所有代码应包含在一个单一的 Python 文件中。<|Assistant|>"🛠️ 额外信息:并非必须使用 GPU。你确实可以在没有 GPU 的情况下运行该模型,但除非你使用的是 Apple 的统一内存,否则不建议这样做。为了确保约 2 tokens/s 的速度,建议总显存(VRAM)和内存(RAM)至少为 180GB,否则模型运行会过于缓慢。

虽然最低配置要求是 60GB 内存的 CPU,但性能会非常慢。在最低硬件配置下,预期速度低于 1.5 tokens/秒——但这并不妨碍你进行实验!使用 GPU 将显著提升推理速度。💕 感谢! 一如既往,非常感谢大家使用并分享 Unsloth - 我们对此深表感激。 🙏

照例,请务必加入我们的 Reddit 页面和 Discord 服务器,寻求帮助或表达支持!你也可以在 Twitter 和新闻通讯上关注我们。感谢阅读!Daniel & Michael Han 🦥
2025年3月25日微调视觉模型现已开放!免费注册开始

评论 (0)