模型简介
模型特点
模型能力
使用案例
🚀 Salesforce/Llama-xLAM-2-8b-fc-r的实验性逐层量化
本项目聚焦于Salesforce/Llama-xLAM-2-8b-fc-r模型的实验性逐层量化,旨在优化大语言模型(LLM)在资源受限环境中的推理性能。通过特定的量化方法,在保证模型性能的同时,有效减小模型体积,提升运行效率。
✨ 主要特性
- 实验性量化:采用逐层量化方法,对Salesforce/Llama-xLAM-2-8b-fc-r模型进行实验性量化,以提高其在资源受限环境中的推理性能。
- 多指标评估:使用多种指标(如困惑度、KL散度、ARC、HellaSwag、MMLU、Truthful QA和WinoGrande分数等)对量化后的模型进行全面评估。
- 数据驱动:基于校准数据集生成重要性矩阵(imatrix),指导张量选择和量化过程。
📦 安装指南
文档未提及安装步骤,故跳过该章节。
💻 使用示例
文档未提供代码示例,故跳过该章节。
📚 详细文档
基础信息
属性 | 详情 |
---|---|
基础模型 | Salesforce/Llama-xLAM-2-8b-fc-r |
数据集 | eaddario/imatrix-calibration |
语言 | 英文 |
许可证 | cc-by-nc-4.0 |
任务类型 | 文本生成 |
标签 | gguf、quant、experimental |
量化过程
使用 LLaMA C++ 发布版 b5180 进行量化。具体步骤如下:
- 将原始模型的张量转换为 GGUF F16。
- 使用 wikitext-2-raw-v1 数据集估计F16模型的困惑度分数(基线),并保存 logits。
- 从选定的校准数据集生成 imatrix。
- 使用修改后的
llama-imatrix
确定张量和层的重要性得分贡献。 - 为每个张量选择合适的量化级别,并使用
llama-quantize
对模型进行量化。 - 计算每个量化模型的困惑度、KL散度、ARC、HellaSwag、MMLU、Truthful QA和WinoGrande分数。
- 保留得分最佳的版本。
- 重复上述步骤,直到创建所有所需的量化模型。
模型信息
模型大小
模型 | 原始大小 (GB) | 仓库大小 (GB) | 压缩率 |
---|---|---|---|
Llama-xLAM-2-8b-fc-r-IQ3_M | 3.78 | 3.69 | 2.4% |
Llama-xLAM-2-8b-fc-r-IQ3_S | 3.68 | 3.43 | 6.8% |
Llama-xLAM-2-8b-fc-r-IQ4_NL | 4.71 | 4.39 | 6.2% |
Llama-xLAM-2-8b-fc-r-Q3_K_L | 4.32 | 3.76 | 13.0% |
Llama-xLAM-2-8b-fc-r-Q3_K_M | 4.02 | 3.56 | 11.4% |
Llama-xLAM-2-8b-fc-r-Q3_K_S | 3.66 | 3.31 | 9.6% |
Llama-xLAM-2-8b-fc-r-Q4_K_M | 4.92 | 4.41 | 10.4% |
Llama-xLAM-2-8b-fc-r-Q4_K_S | 4.69 | 4.28 | 8.7% |
Llama-xLAM-2-8b-fc-r-Q5_K_M | 5.73 | 5.38 | 6.1% |
Llama-xLAM-2-8b-fc-r-Q5_K_S | 5.60 | 5.24 | 6.4% |
Llama-xLAM-2-8b-fc-r-Q6_K | 6.60 | 6.57 | 0.5% |
Llama-xLAM-2-8b-fc-r-Q8_0 | 8.54 | 7.73 | 9.5% |
困惑度和KL散度分数
模型 | 平均困惑度 | 相对困惑度 | 平均KL散度 | RMS误差 |
---|---|---|---|---|
Llama-xLAM-2-8b-fc-r-IQ3_M | 8.471225 ±0.059374 | 98.14% | 0.096730 ±0.000436 | 9.339 ±0.048 |
Llama-xLAM-2-8b-fc-r-IQ3_S | 8.675839 ±0.060418 | 97.37% | 0.137925 ±0.000554 | 11.245 ±0.051 |
Llama-xLAM-2-8b-fc-r-IQ4_NL | 8.337503 ±0.060156 | 99.09% | 0.047455 ±0.000243 | 6.280 ±0.039 |
Llama-xLAM-2-8b-fc-r-Q3_K_L | 8.894129 ±0.063417 | 97.22% | 0.136754 ±0.000659 | 11.276 ±0.057 |
Llama-xLAM-2-8b-fc-r-Q3_K_M | 8.991141 ±0.063906 | 96.89% | 0.152094 ±0.000706 | 11.870 ±0.058 |
Llama-xLAM-2-8b-fc-r-Q3_K_S | 9.352260 ±0.066573 | 95.91% | 0.198689 ±0.000870 | 13.526 ±0.061 |
Llama-xLAM-2-8b-fc-r-Q4_K_M | 8.230419 ±0.058263 | 99.18% | 0.041808 ±0.000219 | 5.988 ±0.037 |
Llama-xLAM-2-8b-fc-r-Q4_K_M (naive) | 8.072811 ±0.057158 | 99.60% | 0.019868 ±0.000110 | 4.044 ±0.029 |
Llama-xLAM-2-8b-fc-r-Q4_K_S | 8.239495 ±0.058176 | 99.10% | 0.045691 ±0.000240 | 6.262 ±0.039 |
Llama-xLAM-2-8b-fc-r-Q5_K_M | 8.062572 ±0.057549 | 99.77% | 0.011576 ±0.000073 | 3.136 ±0.025 |
Llama-xLAM-2-8b-fc-r-Q5_K_S | 8.057947 ±0.057474 | 99.75% | 0.012330 ±0.000075 | 3.210 ±0.026 |
Llama-xLAM-2-8b-fc-r-Q6_K | 7.983587 ±0.056711 | 99.91% | 0.004239 ±0.000034 | 1.912 ±0.018 |
Llama-xLAM-2-8b-fc-r-Q8_0 | 7.982215 ±0.056796 | 99.94% | 0.002365 ±0.000026 | 1.449 ±0.019 |
Llama-xLAM-2-8b-fc-r-F16 | 7.968796 ±0.056714 | 100% | N/A | N/A |
ARC、HellaSwag、MMLU、Truthful QA和WinoGrande分数
模型 | ARC | HellaSwag | MMLU | Truthful QA | WinoGrande | 平均分数 |
---|---|---|---|---|---|---|
Llama-xLAM-2-8b-fc-r-IQ3_M | 64.6667 ±1.7466 | 76.67 | 38.5333 ±1.7783 | 29.6000 ±1.6680 | 74.5333 ±1.5919 | 56.80 |
Llama-xLAM-2-8b-fc-r-IQ3_S | 60.8000 ±1.7838 | 72.40 | 38.0000 ±1.7736 | 30.9333 ±1.6889 | 72.5333 ±1.6309 | 54.93 |
Llama-xLAM-2-8b-fc-r-IQ4_NL | 66.0000 ±1.7309 | 77.73 | 39.0667 ±1.7827 | 30.8000 ±1.6869 | 73.7333 ±1.6080 | 57.47 |
Llama-xLAM-2-8b-fc-r-Q3_K_L | 65.0667 ±1.7420 | 76.67 | 38.6667 ±1.7794 | 29.6000 ±1.6680 | 71.6000 ±1.6477 | 56.32 |
Llama-xLAM-2-8b-fc-r-Q3_K_M | 64.4000 ±1.7496 | 76.93 | 37.4667 ±1.7686 | 30.0000 ±1.6744 | 71.8667 ±1.6430 | 56.13 |
Llama-xLAM-2-8b-fc-r-Q3_K_S | 61.6000 ±1.7771 | 75.73 | 38.4000 ±1.7771 | 30.2667 ±1.6787 | 72.4000 ±1.6334 | 55.68 |
Llama-xLAM-2-8b-fc-r-Q4_K_M | 65.6000 ±1.7358 | 77.33 | 39.0667 ±1.7827 | 30.4000 ±1.6807 | 73.8667 ±1.6054 | 57.25 |
Llama-xLAM-2-8b-fc-r-Q4_K_M (naive) | 66.2667 ±1.7276 | 77.47 | 39.6000 ±1.7870 | 31.2000 ±1.6929 | 72.5333 ±1.6309 | 57.41 |
Llama-xLAM-2-8b-fc-r-Q4_K_S | 65.7333 ±1.7342 | 77.07 | 39.3333 ±1.7849 | 30.6667 ±1.6849 | 73.6000 ±1.6106 | 57.28 |
Llama-xLAM-2-8b-fc-r-Q5_K_M | 66.4000 ±1.7259 | 78.80 | 39.8667 ±1.7890 | 32.0000 ±1.7045 | 74.0000 ±1.6027 | 58.21 |
Llama-xLAM-2-8b-fc-r-Q5_K_S | 65.7333 ±1.7342 | 78.93 | 39.4667 ±1.7860 | 32.0000 ±1.7045 | 74.1333 ±1.6001 | 58.05 |
Llama-xLAM-2-8b-fc-r-Q6_K | 65.4667 ±1.7374 | 78.80 | 39.3333 ±1.7849 | 32.2667 ±1.7082 | 73.6000 ±1.6106 | 57.89 |
Llama-xLAM-2-8b-fc-r-Q8_0 | 66.0000 ±1.7309 | 78.93 | 39.2000 ±1.7838 | 32.0000 ±1.7045 | 74.4000 ±1.5947 | 58.11 |
Llama-xLAM-2-8b-fc-r-F16 | 65.7333 ±1.7342 | 78.40 | 40.0000 ±1.7900 | 31.3333 ±1.6949 | 74.1333 ±1.6001 | 57.92 |
每秒令牌数 - 基准测试
模型 | 大小 | 参数 | 后端 | 线程数 | 测试类型 | 每秒令牌数 |
---|---|---|---|---|---|---|
Llama-xLAM-2-8b-fc-r-Q4_K_M | 4.10 GiB | 8.03 B | Metal,BLAS | 6 | pp512 | 314.18 ± 0.08 |
Llama-xLAM-2-8b-fc-r-Q4_K_M | 4.10 GiB | 8.03 B | Metal,BLAS | 6 | tg128 | 28.09 ± 0.03 |
Llama-xLAM-2-8b-fc-r-Q4_K_M | 4.10 GiB | 8.03 B | Metal,BLAS | 6 | pp1024+tg1024 | 44.57 ± 0.09 |
Llama-xLAM-2-8b-fc-r-Q4_K_M (naive) | 4.58 GiB | 8.03 B | Metal,BLAS | 6 | pp512 | 327.86 ± 0.57 |
Llama-xLAM-2-8b-fc-r-Q4_K_M (naive) | 4.58 GiB | 8.03 B | Metal,BLAS | 6 | tg128 | 26.15 ± 0.10 |
Llama-xLAM-2-8b-fc-r-Q4_K_M (naive) | 4.58 GiB | 8.03 B | Metal,BLAS | 6 | pp1024+tg1024 | 42.97 ± 0.10 |
指标说明
- 困惑度(Perplexity):自然语言处理评估中的关键指标之一,用于衡量语言模型预测下一个令牌的能力。值越接近1表示模型预测越准确。
- KL散度(Kullback–Leibler Divergence):衡量两个概率分布之间差异的统计指标。在量化模型时,该值越接近0表示量化后的模型权重概率分布与原始模型越接近。
- AI2推理挑战(ARC):评估AI模型回答复杂科学问题的能力,要求模型具备超越模式匹配的逻辑推理能力。
- HellaSwag:用于测试常识自然语言推理的基准,要求模型预测句子最可能的结尾。
- MMLU:评估大语言模型在57个主题上的通用知识和问题解决能力,包括初等数学、美国历史、计算机科学和法律等。
- Truthful QA:评估大语言模型生成真实回答的能力,确保模型避免生成虚假或误导性信息。
- Winogrande:基于Winograd Schema Challenge的自然语言理解任务,要求模型解决涉及代词引用的句子歧义问题。
🔧 技术细节
本项目使用 LLaMA C++ 发布版 b5180 进行量化。具体方法是通过自定义版本的 llama-imatrix
和 llama-quantize
来识别有影响力的张量,并对最重要的层进行更高比特精度的量化,对不太重要的层进行较低比特的量化。这一过程部分受到Dumitru等人的 Layer-Wise Quantization: A Pragmatic and Effective Method for Quantizing LLMs Beyond Integer Bit-Levels 论文的启发。
修改后的 llama-imatrix 生成有用的统计信息,以指导张量选择过程。这些统计信息包括偏差总和、最小和最大激活值、均值和标准差、活跃元素比例、激活数量、熵、归一化熵、ZD分数和余弦相似度等。
所有实验版本均使用从校准数据集 eaddario/imatrix-calibration 创建的适当重要性矩阵(imatrix)生成。重要性矩阵本质上是一个表格或结构化表示,用于量化机器学习模型中不同特征或参数的相对重要性,有助于平衡量化和剪枝的负面影响。
📄 许可证
本项目采用 cc-by-nc-4.0 许可证。
致谢
特别感谢 Colin Kealty 的诸多贡献,他是Huggingface上高质量量化模型的优质来源之一。同时,非常感谢 Georgi Gerganov 在 llama.cpp 和 ggml/gguf 库方面的杰出工作。



