原贴链接

嗨,r/LocalLLaMA!我成功地将完整的DeepSeek R1 671B MoE以GGUF格式动态量化到1.58位。诀窍是不要量化所有层,而是仅将MoE层量化到1.5位,将注意力和其他层保留为4位或6位。以下是不同量化配置的对比:|MoE Bits|Type|Disk Size|Accuracy|HF Link| |-|-|-|-|-| |1.58bit|IQ1_S|131GB|Fair|[Link](https://huggingface.co/unsloth/DeepSeek - R1 - GGUF/tree/main/DeepSeek - R1 - UD - IQ1_S)| |1.73bit|IQ1_M|158GB|Good|[Link](https://huggingface.co/unsloth/DeepSeek - R1 - GGUF/tree/main/DeepSeek - R1 - UD - IQ1_M)| |2.22bit|IQ2_XXS|183GB|Better|[Link](https://huggingface.co/unsloth/DeepSeek - R1 - GGUF/tree/main/DeepSeek - R1 - UD - IQ2_XXS)| |2.51bit|Q2_K_XL|212GB|Best|[Link](https://huggingface.co/unsloth/DeepSeek - R1 - GGUF/tree/main/DeepSeek - R1 - UD - Q2_K_XL)| 在2个80GB的H100 GPU上卸载所有层时,每秒可得到140个标记。像RTX 4090这样的24GB GPU应该至少能每秒得到1 - 3个标记。如果天真地将所有层量化到1.5位(-1, 0, 1),模型将会严重失败,因为它会产生乱码和无限重复。我有选择地将所有注意力层保留为4/6位,并将前3个Transformer密集层保留为4/6位。MoE层占据了所有空间的88%,所以可以将它们保留为1.5位,这样总共得到1.58位的加权和。我让1.58位的模型根据10个条件(如随机颜色、最佳分数等)创建《飞扬的小鸟》(Flappy Bird)游戏,它做得相当不错!使用非动态量化的通用模型将会惨败 - 根本不会有输出!1.58位R1制作的《飞扬的小鸟》游戏 更多细节在博客:[https://unsloth.ai/blog/deepseekr1 - dynamic](https://unsloth.ai/blog/deepseekr1 - dynamic) 1.58位GGUF的链接在这里:[https://huggingface.co/unsloth/DeepSeek - R1 - GGUF/tree/main/DeepSeek - R1 - UD - IQ1_S](https://huggingface.co/unsloth/DeepSeek - R1 - GGUF/tree/main/DeepSeek - R1 - UD - IQ1_S) 如果您喜欢的推理工具支持i矩阵量化,应该就能运行它。不需要重新更新llama.cpp。提醒一下DeepSeek的聊天模板(对于蒸馏版本也是如此) - 它会自动添加一个BOS - 不要手动添加!<|begin▁of▁sentence|><|User|>What is 1+1?<|Assistant|>It's 2.<|end▁of▁sentence|><|User|>Explain more!<|Assistant|> 关于要卸载到GPU的层数,我大致计算如下:|Quant|File Size|24GB GPU|80GB GPU|2x80GB GPU| |-|-|-|-|-| |1.58bit|131GB|7|33|All layers 61| |1.73bit|158GB|5|26|57| |2.22bit|183GB|4|22|49| |2.51bit|212GB|2|19|32| 所有其他R1的GGUF在这里:[https://huggingface.co/unsloth/DeepSeek - R1 - GGUF](https://huggingface.co/unsloth/DeepSeek - R1 - GGUF) 在[https://huggingface.co/collections/unsloth/deepseek - r1 - all - versions - 678e1c48f5d2fce87892ace5](https://huggingface.co/collections/unsloth/deepseek - r1 - all - versions - 678e1c48f5d2fce87892ace5)还有所有其他蒸馏版本(Qwen、Llama等)的GGUF和动态4位bitsandbytes量化等。

讨论总结

原帖介绍了将DeepSeek R1 671B MoE动态量化到1.58bits的GGUF格式的成果,包括不同量化方式下的磁盘大小、准确性等。评论者们大多对这一成果表示惊叹与认可,如称赞原帖作者是“GOAT”(史上最佳)等。同时也提出了很多疑问,像量化操作对模型性能和智能的影响、不同版本模型的量化比较等,还分享了自己在不同硬件配置下测试该模型的结果。在技术探讨方面,涉及到不应量化所有层、将MoE层折叠为密集层等内容,也有很多对原帖作者表示感谢的评论,并且部分人对模型在特定设备或场景下的运行表示期待。

主要观点

  1. 👍 将DeepSeek R1模型量化到1.58位且效果不错是很了不起的成果
    • 支持理由:1.58位量化的MoE能写出Flappy Bird程序且错误少,很多评论者对这一成果的规模和意义表示赞叹。
    • 反对声音:无。
  2. 🔥 部分量化(仅量化MoE层为1.5位,其他层保留较高精度)是正确的策略
    • 正方观点:原帖成果表明这种量化方式可行,且与BitNet论文思路相符。
    • 反方观点:无。
  3. 💡 不同硬件配置影响模型的推理速度
    • 不同硬件如4个3090显卡、不同显存内存大小等会对模型运行速度产生不同影响,还讨论了在不同量化方式下硬件与速度的关系。
  4. 💡 期待看到更多基准测试结果
    • 虽然初步认可成果,但很多评论者希望看到更多如量化模型与

详细内容:

《关于动态量化模型DeepSeek R1的热门讨论》

在Reddit的LocalLLaMA板块,一则关于将DeepSeek R1 671B MoE动态量化至1.58bits的帖子引起了广泛关注。该帖作者成功将模型以GGUF格式进行量化,通过选择性地对不同层采用不同的量化位数,实现了模型大小的大幅压缩。

该帖子获得了众多点赞和大量评论,引发了激烈的讨论。讨论的主要方向包括模型的性能表现、运行所需的硬件配置、与其他量化方法的比较等。

在讨论焦点与观点分析方面: 有人称赞这种量化方法令人震惊,比如SomeOddCodeGuy表示1bit量化的MoE能写出Flappy Bird代码且没有大量错误,工作出色。Zeikos则认为CoT可能在问题出现前就解决了很多,并好奇不同规模的零临时比较。 也有人对编码人员是否需要担忧提出思考,还有人认为R1对编码人员有帮助。

有观点认为这种动态量化并非BitNet首创,原作者保留了部分层的高精度。也有人对模型在不同量化下的性能表现表示好奇,比如danielhanchen提到不同量化位和模型大小对性能的影响。

一些用户分享了自己的个人经历和案例,如有人在特定硬件配置下测试模型并获得了一定的速度和效果。

总之,关于这个动态量化的DeepSeek R1模型,大家既有对其创新性的肯定,也有对其性能和应用的深入探讨,同时还有各种实际测试和使用的经验分享。但目前仍缺乏更广泛和深入的基准测试,对于其在不同场景下的表现还有待进一步观察和研究。