量化者:bartowski
流水线标签:文本生成
基础模型:nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1
许可证名称:nvidia-open-model-license
语言:
- 英语
数据集:
- nvidia/Llama-Nemotron-Post-Training-Dataset
标签:
- nvidia
- llama-3
许可证:其他
许可证链接:https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/
基础模型关系:量化
NVIDIA Llama-3.1-Nemotron-Nano-4B-v1.1 的 Llamacpp imatrix 量化版本
使用 llama.cpp 版本 b5432 进行量化。
原始模型:https://huggingface.co/nvidia/Llama-3.1-Nemotron-Nano-4B-v1.1
所有量化均使用 imatrix 选项,数据集来自 此处。
可在 LM Studio 中运行。
也可直接使用 llama.cpp 或任何基于 llama.cpp 的项目运行。
提示格式
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{系统提示}<|eot_id|><|start_header_id|>user<|end_header_id|>
{提示}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
从下方下载单个文件(非整个分支):
嵌入/输出权重
部分量化(如 Q3_K_XL、Q4_K_L 等)为标准量化方法,但嵌入和输出权重被量化为 Q8_0,而非默认值。
使用 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 ./
可以指定新的本地目录(nvidia_Llama-3.1-Nemotron-Nano-4B-v1.1-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)。加载时间可能更长,但会带来整体速度提升。
点击查看 Q4_0_X_X 信息(已弃用)
保留此部分以展示使用 Q4_0 在线重打包的潜在性能提升。
点击查看 AVX2 系统(EPYC7702)上的基准测试
模型 |
大小 |
参数 |
后端 |
线程数 |
测试 |
t/s |
% (vs Q4_0) |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp512 |
204.03 ± 1.03 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp1024 |
282.92 ± 0.19 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp2048 |
259.49 ± 0.44 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg128 |
39.12 ± 0.27 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg256 |
39.31 ± 0.69 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg512 |
40.52 ± 0.03 |
100% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp512 |
301.02 ± 1.74 |
147% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp1024 |
287.23 ± 0.20 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp2048 |
262.77 ± 1.81 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg128 |
18.80 ± 0.99 |
48% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg256 |
24.46 ± 3.04 |
83% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg512 |
36.32 ± 3.59 |
90% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp512 |
271.71 ± 3.53 |
133% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp1024 |
279.86 ± 45.63 |
100% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp2048 |
320.77 ± 5.00 |
124% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg128 |
43.51 ± 0.05 |
111% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg256 |
43.35 ± 0.09 |
110% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg512 |
42.60 ± 0.31 |
105% |
Q4_0_8_8 在提示处理方面表现更佳,文本生成也有小幅提升。
应该选择哪个文件?
点击查看详情
Artefact2 提供了一份详细的性能图表说明,见 此处。
首先,确定您可以运行的模型大小。为此,需要了解您的 RAM 和/或 VRAM 容量。
如果您希望模型运行尽可能快,需要将整个模型放入 GPU 的 VRAM 中。选择一个文件大小比 GPU 总 VRAM 小 1-2GB 的量化版本。
如果您追求绝对最高质量,将系统 RAM 和 GPU VRAM 相加,然后选择一个文件大小比总和小 1-2GB 的量化版本。
接下来,决定是否使用“I-quant”或“K-quant”。
如果不想过多思考,选择 K-quant。格式为“QX_K_X”,例如 Q5_K_M。
如果想深入了解,可以查看这份非常有用的特性图表:
llama.cpp 特性矩阵
简而言之,如果目标是低于 Q4,并且运行 cuBLAS(Nvidia)或 rocBLAS(AMD),则应选择 I-quant。格式为 IQX_X,例如 IQ3_M。这些是较新的量化方法,在相同大小下性能更优。
I-quant 也可用于 CPU,但速度会比对应的 K-quant 慢,因此需要在速度与性能之间权衡。
致谢
感谢 kalomaze 和 Dampf 协助创建 imatrix 校准数据集。
感谢 ZeroWw 启发我尝试嵌入/输出权重实验。
感谢 LM Studio 赞助我的工作。
想支持我的工作?访问我的 ko-fi 页面:https://ko-fi.com/bartowski