🚀 NVIDIA Llama-3.1-Nemotron-Nano-4B-v1.1的Llamacpp imatrix量化版本
本项目提供了基于llama.cpp
对NVIDIA的Llama-3.1-Nemotron-Nano-4B-v1.1模型进行量化的版本。通过不同的量化类型,用户可以根据自身硬件条件和需求选择合适的模型文件,以在性能和质量之间取得平衡。
基本信息
🚀 快速开始
本项目使用 llama.cpp 的 b5432 版本进行量化。原始模型可从 这里 获取。
所有量化模型均使用 imatrix
选项和 此数据集 生成。你可以在 LM Studio 中运行这些模型,也可以直接使用 llama.cpp 或其他基于 llama.cpp
的项目运行。
✨ 主要特性
- 多种量化类型:提供了丰富的量化类型,如
bf16
、Q8_0
、Q6_K_L
等,满足不同硬件和性能需求。
- 在线重打包:部分量化类型支持在线重打包,可自动优化权重以提高在 ARM 和 AVX 机器上的性能。
- 灵活选择:用户可以根据自身的 RAM、VRAM 以及对性能和质量的要求,选择合适的量化模型。
📦 安装指南
使用huggingface-cli下载
首先,确保你已安装 huggingface-cli
:
pip install -U "huggingface_hub[cli]"
然后,你可以指定要下载的具体文件:
huggingface-cli download bartowski/nvidia_Llama-3.1-Nemotron-Nano-4B-v1.1-GGUF --include "nvidia_Llama-3.1-Nemotron-Nano-4B-v1.1-Q4_K_M.gguf" --local-dir ./
如果模型文件大于 50GB,它会被拆分为多个文件。若要将它们全部下载到本地文件夹,可运行:
huggingface-cli download bartowski/nvidia_Llama-3.1-Nemotron-Nano-4B-v1.1-GGUF --include "nvidia_Llama-3.1-Nemotron-Nano-4B-v1.1-Q8_0/*" --local-dir ./
你可以指定一个新的本地目录,也可以将它们下载到当前目录。
💻 使用示例
提示格式
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|>
{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
📚 详细文档
下载文件列表
嵌入/输出权重
部分量化类型(如 Q3_K_XL
、Q4_K_L
等)采用标准量化方法,将嵌入和输出权重量化为 Q8_0
,而非默认值。
ARM/AVX信息
以前,你会下载 Q4_0_4_4/4_8/8_8
,这些权重会在内存中交错排列,以便在 ARM 和 AVX 机器上通过一次加载更多数据来提高性能。
现在,有了所谓的“在线重打包”权重功能,详情见 此PR。如果你使用 Q4_0
且硬件能从权重重打包中受益,它将自动实时进行重打包。
从 llama.cpp 构建版本 b4282 开始,你将无法运行 Q4_0_X_X
文件,而需要使用 Q4_0
。
此外,如果你想获得略高的质量,可以使用 IQ4_NL
,感谢 此PR,它也会为 ARM 重打包权重,不过目前仅支持 4_4。加载时间可能会更长,但总体速度会提高。
选择哪个文件?
Artefact2 提供了一篇很棒的文章,带有展示各种性能的图表,点击查看。
首先,你需要确定能运行多大的模型。为此,你需要了解自己有多少 RAM 和/或 VRAM。
如果你希望模型运行得尽可能快,你需要将整个模型放入 GPU 的 VRAM 中。选择文件大小比 GPU 总 VRAM 小 1 - 2GB 的量化模型。
如果你追求绝对最高质量,将系统 RAM 和 GPU 的 VRAM 相加,然后选择文件大小比该总和小 1 - 2GB 的量化模型。
接下来,你需要决定是使用“I - 量化”还是“K - 量化”。
如果你不想考虑太多,选择 K - 量化之一。这些格式为 QX_K_X
,如 Q5_K_M
。
如果你想深入了解,可以查看这个非常有用的特性图表:llama.cpp 特性矩阵。
但基本上,如果你目标是低于 Q4,并且你使用的是 cuBLAS(Nvidia)或 rocBLAS(AMD),你应该考虑 I - 量化。这些格式为 IQX_X
,如 IQ3_M
。这些是较新的量化类型,在相同大小下提供更好的性能。
这些 I - 量化也可以在 CPU 上使用,但比相应的 K - 量化慢,因此你需要在速度和性能之间做出权衡。
🔧 技术细节
在线重打包
在线重打包是一种优化权重的技术,可提高模型在 ARM 和 AVX 机器上的性能。通过在运行时自动调整权重的存储方式,使得一次加载更多数据,从而减少内存访问次数,提高计算效率。
量化类型选择
不同的量化类型在性能和质量上存在差异。例如,Q8_0
提供了极高的质量,但文件大小较大;而 IQ3_M
等 I - 量化类型在较小的文件大小下提供了较好的性能。用户可以根据自身的硬件条件和需求,选择合适的量化类型。
📄 许可证
本项目使用 nvidia-open-model-license 许可证。
致谢
感谢 kalomaze 和 Dampf 在创建 imatrix 校准数据集方面提供的帮助。
感谢 ZeroWw 提供的嵌入/输出实验灵感。
感谢 LM Studio 对本项目的赞助。
如果你想支持我的工作,请访问我的 ko-fi 页面:https://ko-fi.com/bartowski