模型简介
模型特点
模型能力
使用案例
🚀 Llama-3.2-3B-Instruct GGUF模型
Llama-3.2-3B-Instruct GGUF模型是一系列预训练和指令微调的生成式模型,具有多语言处理能力,适用于多种对话场景。该模型在常见行业基准测试中表现出色,且提供了多种量化格式,以满足不同硬件和内存需求。
🚀 快速开始
使用transformers库
从transformers >= 4.43.0
版本开始,你可以使用Transformers的pipeline
抽象或借助Auto类的generate()
函数进行对话推理。
确保通过以下命令更新你的transformers库:
pip install --upgrade transformers
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-3B-Instruct"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
更多关于如何在本地使用模型、使用torch.compile()
、辅助生成、量化等详细方法,请参考huggingface-llama-recipes。
使用原始llama
代码库
请遵循仓库中的说明。
要下载原始检查点,请参考以下使用huggingface-cli
的示例命令:
huggingface-cli download meta-llama/Llama-3.2-3B-Instruct --include "original/*" --local-dir Llama-3.2-3B-Instruct
✨ 主要特性
- 多语言支持:支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语等多种语言。
- 高性能表现:在常见行业基准测试中,优于许多开源和闭源聊天模型。
- 多种量化格式:提供BF16、F16、量化模型(Q4_K、Q6_K、Q8等)以及极低比特量化模型(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0),满足不同硬件和内存需求。
- 优化的架构:采用优化的变压器架构,经过监督微调(SFT)和基于人类反馈的强化学习(RLHF)调整,符合人类对有用性和安全性的偏好。
📦 安装指南
确保通过以下命令更新你的transformers库:
pip install --upgrade transformers
💻 使用示例
基础用法
import torch
from transformers import pipeline
model_id = "meta-llama/Llama-3.2-3B-Instruct"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
高级用法
# 更多高级用法可参考[huggingface-llama-recipes](https://github.com/huggingface/huggingface-llama-recipes)
📚 详细文档
模型信息
Llama 3.2系列多语言大语言模型(LLMs)是一系列预训练和指令微调的生成式模型,有1B和3B两种规模(文本输入/文本输出)。Llama 3.2指令微调的纯文本模型针对多语言对话用例进行了优化,包括智能检索和摘要任务。它们在常见行业基准测试中优于许多可用的开源和闭源聊天模型。
属性 | 详情 |
---|---|
模型开发者 | Meta |
模型架构 | Llama 3.2是一种自回归语言模型,采用优化的变压器架构。微调版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来符合人类对有用性和安全性的偏好。 |
训练数据 | 公开可用来源的多达9万亿个标记的数据。对于1B和3B的Llama 3.2模型,在模型开发的预训练阶段纳入了Llama 3.1 8B和70B模型的对数概率(logits),这些较大模型的输出(对数概率)被用作标记级别的目标。 |
参数 | 1B(1.23B)和3B(3.21B) |
输入模态 | 多语言文本 |
输出模态 | 多语言文本和代码 |
上下文长度 | 128k(Llama 3.2纯文本模型);8k(Llama 3.2量化纯文本模型) |
GQA | 是 |
共享嵌入 | 是 |
标记计数 | 最多9万亿个标记 |
知识截止日期 | 2023年12月 |
预期用途
预期用例
Llama 3.2旨在用于多种语言的商业和研究用途。指令微调的纯文本模型适用于类似助手的聊天和智能应用,如知识检索和摘要、移动AI写作助手以及查询和提示重写。预训练模型可用于各种自然语言生成任务。同样,量化模型可用于计算资源有限的各种设备用例。
超出范围
- 以任何违反适用法律法规(包括贸易合规法律)的方式使用。
- 以《可接受使用政策》和《Llama 3.2社区许可协议》禁止的任何其他方式使用。
- 在本模型卡片中未明确提及为支持的语言中使用。
硬件和软件
训练因素
使用自定义训练库、Meta定制的GPU集群和生产基础设施进行预训练。微调、量化、注释和评估也在生产基础设施上进行。
训练能源使用
训练在H100 - 80GB(TDP为700W)类型的硬件上累计使用了916k GPU小时的计算资源。训练时间是训练每个模型所需的总GPU时间,功耗是每个GPU设备使用的峰值功率容量,并根据功率使用效率进行了调整。
训练温室气体排放
估计基于位置的总温室气体排放量为240吨CO2eq。自2020年以来,Meta在其全球运营中保持净零温室气体排放,并以可再生能源匹配其100%的电力使用;因此,基于市场的总温室气体排放量为0吨CO2eq。
训练时间(GPU小时) | 对数概率生成时间(GPU小时) | 训练功耗(W) | 基于位置的训练温室气体排放(吨CO2eq) | 基于市场的训练温室气体排放(吨CO2eq) | |
---|---|---|---|---|---|
Llama 3.2 1B | 370k | - | 700 | 107 | 0 |
Llama 3.2 3B | 460k | - | 700 | 133 | 0 |
Llama 3.2 1B SpinQuant | 1.7 | 0 | 700 | 可忽略不计* | 0 |
Llama 3.2 3B SpinQuant | 2.4 | 0 | 700 | 可忽略不计* | 0 |
Llama 3.2 1B QLora | 1.3k | 0 | 700 | 0.381 | 0 |
Llama 3.2 3B QLora | 1.6k | 0 | 700 | 0.461 | 0 |
总计 | 833k | 86k | 240 | 0 |
** Llama 3.2 1B SpinQuant和Llama 3.2 3B SpinQuant的基于位置的CO2e排放量各自小于0.001公吨。这是由于所需的训练GPU小时数极少。
确定训练能源使用和温室气体排放的方法可参考此处。由于Meta正在公开发布这些模型,其他人不会产生训练能源使用和温室气体排放。
训练数据
概述
Llama 3.2在来自公开可用来源的多达9万亿个标记的数据上进行了预训练。对于1B和3B的Llama 3.2模型,在模型开发的预训练阶段纳入了Llama 3.1 8B和70B模型的对数概率(logits),这些较大模型的输出(对数概率)被用作标记级别的目标。剪枝后使用知识蒸馏来恢复性能。在训练后,使用与Llama 3.1类似的方法,通过在预训练模型上进行几轮对齐来生成最终的聊天模型。每一轮包括监督微调(SFT)、拒绝采样(RS)和直接偏好优化(DPO)。
数据新鲜度
预训练数据的截止日期为2023年12月。
量化
量化方案
当前的量化方案是结合PyTorch的ExecuTorch推理框架和Arm CPU后端设计的,考虑了模型质量、预填充/解码速度和内存占用等指标。量化方案包括三个部分:
- 所有变压器块中的所有线性层的权重量化为4位分组方案(组大小为32),激活量化为8位每个标记的动态量化。
- 分类层的权重量化为8位每通道,激活量化为8位每个标记的动态量化。
- 与分类层类似,嵌入层使用8位每通道量化。
量化感知训练和LoRA
使用低秩适应(LoRA)的量化感知训练(QAT)模型仅经过训练后阶段,使用与全精度模型相同的数据。为了初始化QAT,利用监督微调(SFT)后获得的BF16 Llama 3.2模型检查点,并使用QAT进行额外的一轮完整的SFT训练。然后冻结QAT模型的主干,并对变压器块内的所有层应用LoRA适配器进行另一轮SFT。同时,LoRA适配器的权重和激活保持在BF16。由于我们的方法与Dettmers等人(2023)的QLoRA类似(即量化后使用LoRA适配器),我们将此方法称为QLoRA。最后,使用直接偏好优化(DPO)对得到的模型(主干和LoRA适配器)进行微调。
SpinQuant
应用了SpinQuant和生成式训练后量化(GPTQ)。对于SpinQuant旋转矩阵微调,使用WikiText 2数据集中序列长度为2048的800个样本进行了100次迭代优化。对于GPTQ,使用同一数据集中相同序列长度的128个样本。
基准测试 - 英文文本
基础预训练模型
类别 | 基准测试 | 样本数 | 指标 | Llama 3.2 1B | Llama 3.2 3B | Llama 3.1 8B |
---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc_char | 32.2 | 58 | 66.7 |
AGIEval English | 3 - 5 | average/acc_char | 23.3 | 39.2 | 47.8 | |
ARC - Challenge | 25 | acc_char | 32.8 | 69.1 | 79.7 | |
阅读理解 | SQuAD | 1 | em | 49.2 | 67.7 | 77 |
QuAC (F1) | 1 | f1 | 37.9 | 42.9 | 44.9 | |
DROP (F1) | 3 | f1 | 28.0 | 45.2 | 59.5 | |
长上下文 | Needle in Haystack | 0 | em | 96.8 | 1 | 1 |
指令微调模型
能力 | 基准测试 | 样本数 | 指标 | Llama 3.2 1B bf16 | Llama 3.2 1B Vanilla PTQ** | Llama 3.2 1B Spin Quant | Llama 3.2 1B QLoRA | Llama 3.2 3B bf16 | Llama 3.2 3B Vanilla PTQ** | Llama 3.2 3B Spin Quant | Llama 3.2 3B QLoRA | Llama 3.1 8B | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
通用 | MMLU | 5 | macro_avg/acc | 49.3 | 43.3 | 47.3 | 49.0 | 63.4 | 60.5 | 62 | 62.4 | 69.4 | |
重写 | Open - rewrite eval | 0 | micro_avg/rougeL | 41.6 | 39.2 | 40.9 | 41.2 | 40.1 | 40.3 | 40.8 | 40.7 | 40.9 | |
摘要 | TLDR9+ (test) | 1 | rougeL | 16.8 | 14.9 | 16.7 | 16.8 | 19.0 | 19.1 | 19.2 | 19.1 | 17.2 | |
指令遵循 | IFEval | 0 | Avg(Prompt/Instruction acc Loose/Strict) | 59.5 | 51.5 | 58.4 | 55.6 | 77.4 | 73.9 | 73.5 | 75.9 | 80.4 | |
数学 | GSM8K (CoT) | 8 | em_maj1@1 | 44.4 | 33.1 | 40.6 | 46.5 | 77.7 | 72.9 | 75.7 | 77.9 | 84.5 | |
MATH (CoT) | 0 | final_em | 30.6 | 20.5 | 25.3 | 31.0 | 48.0 | 44.2 | 45.3 | 49.2 | 51.9 | ||
推理 | ARC - C | 0 | acc | 59.4 | 54.3 | 57 | 60.7 | 78.6 | 75.6 | 77.6 | 77.6 | 83.4 | |
GPQA | 0 | acc | 27.2 | 25.9 | 26.3 | 25.9 | 32.8 | 32.8 | 31.7 | 33.9 | 32.8 | ||
Hellaswag | 0 | acc | 41.2 | 38.1 | 41.3 | 41.5 | 69.8 | 66.3 | 68 | 66.3 | 78.7 | ||
工具使用 | BFCL V2 | 0 | acc | 25.7 | 14.3 | 15.9 | 23.7 | 67.0 | 53.4 | 60.1 | 63.5 | 67.1 | |
Nexus | 0 | macro_avg/acc | 13.5 | 5.2 | 9.6 | 12.5 | 34.3 | 32.4 | 31.5 | 30.1 | 38.5 | ||
长上下文 | InfiniteBench/En.QA | 0 | longbook_qa/f1 | 20.3 | N/A | N/A | N/A | 19.8 | N/A | N/A | N/A | 27.3 | |
InfiniteBench/En.MC | 0 | longbook_choice/acc | 38.0 | N/A | N/A | N/A | 63.3 | N/A | N/A | N/A | 72.2 | ||
NIH/Multi - needle | 0 | recall | 75.0 | N/A | N/A | N/A | 84.7 | N/A | N/A | N/A | 98.8 | ||
多语言 | MGSM (CoT) | 0 | em | 24.5 | 13.7 | 18.2 | 24.4 | 58.2 | 48.9 | 54.3 | 56.8 | 68.9 |
** 仅用于比较目的。模型未发布。
多语言基准测试
类别 | 基准测试 | 语言 | Llama 3.2 1B | Llama 3.2 1B Vanilla PTQ** | Llama 3.2 1B Spin Quant | Llama 3.2 1B QLoRA | Llama 3.2 3B | Llama 3.2 3B Vanilla PTQ** | Llama 3.2 3B Spin Quant | Llama 3.2 3B QLoRA | Llama 3.1 8B |
---|---|---|---|---|---|---|---|---|---|---|---|
通用 | MMLU (5 - shot, macro_avg/acc) | 葡萄牙语 | 39.8 | 34.9 | 38.9 | 40.2 | 54.5 | 50.9 | 53.3 | 53.4 | 62.1 |
西班牙语 | 41.5 | 36.0 | 39.8 | 41.8 | 55.1 | 51.9 | 53.6 | 53.6 | 62.5 | ||
意大利语 | 39.8 | 34.9 | 38.1 | 40.6 | 53.8 | 49.9 | 52.1 | 51.7 | 61.6 | ||
德语 | 39.2 | 34.9 | 37.5 | 39.6 | 53.3 | 50.0 | 52.2 | 51.3 | 60.6 | ||
法语 | 40.5 | 34.8 | 39.2 | 40.8 | 54.6 | 51.2 | 53.3 | 53.3 | 62.3 | ||
印地语 | 33.5 | 30.0 | 32.1 | 34.0 | 43.3 | 40.4 | 42.0 | 42.1 | 50.9 | ||
泰语 | 34.7 | 31.2 | 32.4 | 34.9 | 44.5 | 41.3 | 44.0 | 42.2 | 50.3 |
** 仅用于比较目的。模型未发布。
推理时间
在下表中,我们将不同量化方法(SpinQuant和QAT + LoRA)的性能指标与BF16基线进行了比较。评估使用ExecuTorch框架作为推理引擎,以ARM CPU为后端,使用Android OnePlus 12设备。
类别 | 解码(标记/秒) | 首标记时间(秒) | 预填充(标记/秒) | 模型大小(PTE文件大小,MB) | 内存大小(RSS,MB) |
---|---|---|---|---|---|
1B BF16(基线) | 19.2 | 1.0 | 60.3 | 2358 | 3,185 |
1B SpinQuant | 50.2 (2.6x) | 0.3 (-76.9%) | 260.5 (4.3x) | 1083 (-54.1%) | 1,921 (-39.7%) |
1B QLoRA | 45.8 (2.4x) | 0.3 (-76.0%) | 252.0 (4.2x) | 1127 (-52.2%) | 2,255 (-29.2%) |
3B BF16(基线) | 7.6 | 3.0 | 21.2 | 6129 | 7,419 |
3B SpinQuant | 19.7 (2.6x) | 0.7 (-76.4%) | 89.7 (4.2x) | 2435 (-60.3%) | 3,726 (-49.8%) |
3B QLoRA | 18.5 (2.4x) | 0.7 (-76.1%) | 88.8 (4.2x) | 2529 (-58.7%) | 4,060 (-45.3%) |
() 性能测量使用基于adb二进制的方法进行。 () 在Android OnePlus 12设备上进行测量。 () 首标记时间(TTFT)在提示长度为64时进行测量。
脚注:
- 解码(标记/秒)表示持续生成的速度。数值越高越好。
- 首标记时间(TTFT)表示为给定提示生成第一个标记的速度。数值越低越好。
- 预填充是TTFT的倒数(即1/TTFT),以标记/秒为单位。数值越高越好。
- 模型大小 - 模型的大小,通过PTE文件(ExecuTorch的二进制文件格式)测量。
- RSS大小 - 驻留集大小(RSS)中的内存使用量。
责任与安全
负责任的发布方法
作为负责任发布方法的一部分,我们采用了三管齐下的策略来管理信任和安全风险:
- 使开发者能够为其目标受众和Llama支持的用例部署有用、安全和灵活的体验。
- 保护开发者免受旨在利用Llama功能可能造成伤害的恶意用户的侵害。
- 为社区提供保护,以帮助防止我们的模型被滥用。
负责任的部署
方法
Llama是一种基础技术,旨在用于各种用例。关于Meta的Llama模型如何负责任地部署的示例,可以在我们的社区故事网页上找到。我们的方法是构建最有用的模型,通过使我们的模型安全适应通用用例并解决一系列标准危害,让世界从技术力量中受益。然后,开发者可以根据自己的用例定制安全措施,定义自己的政策,并在他们的Llama系统中部署必要的保障措施。Llama 3.2是按照我们的负责任使用指南中概述的最佳实践开发的。
Llama 3.2 Instruct
目标:进行安全微调的主要目标是为研究社区提供一个有价值的资源,用于研究安全微调的鲁棒性,以及为开发者提供一个随时可用、安全且强大的模型,用于各种应用,以减少开发者部署安全AI系统的工作量。我们实施了与Llama 3相同的一组安全缓解措施,你可以在Llama 3 论文中了解更多信息。
微调数据:我们采用多方面的数据收集方法,将供应商提供的人工生成数据与合成数据相结合,以减轻潜在的安全风险。我们开发了许多基于大语言模型(LLM)的分类器,使我们能够精心选择高质量的提示和响应,加强数据质量控制。
拒绝和语气:在Llama 3的基础上,我们非常重视模型对良性提示的拒绝以及拒绝语气。我们在安全数据策略中包括了边界和对抗性提示,并修改了我们的安全数据响应以遵循语气指南。
Llama 3.2系统
系统安全:包括Llama 3.2在内的大语言模型并非旨在单独部署,而是应作为整体AI系统的一部分,根据需要配备额外的安全护栏。开发者在构建智能系统时应部署系统保障措施。保障措施对于实现正确的有用性 - 安全对齐以及减轻系统固有的安全和安全风险以及模型或系统与外部工具集成的任何风险至关重要。作为我们负责任发布方法的一部分,我们为社区提供了保障措施,开发者应将其与Llama模型或其他LLM一起部署,包括Llama Guard、Prompt Guard和Code Shield。我们所有的参考实现演示默认包含这些保障措施,因此开发者可以立即从系统级安全中受益。
新功能和用例
技术进步
Llama的发布通常会引入新功能,除了通常适用于所有生成式AI用例的最佳实践外,还需要特定的考虑因素。对于Llama 3.2也支持的先前版本功能,请参阅Llama 3.1模型卡片,因为这里适用相同的考虑因素。
受限环境
预计Llama 3.2 1B和3B模型将部署在高度受限的环境中,如移动设备。使用较小模型的LLM系统将具有与更复杂、更大的系统不同的对齐配置文件和安全/有用性权衡。开发者应确保其系统的安全性满足其用例的要求。我们建议为此类用例使用较轻的系统保障措施,如Llama Guard 3 - 1B或其针对移动设备优化的版本。
评估
规模化评估
我们构建了专门的对抗性评估数据集,并评估了由Llama模型和Purple Llama保障措施组成的系统,以过滤输入提示和输出响应。在上下文中评估应用程序很重要,我们建议为你的用例构建专门的评估数据集。
红队测试
我们进行了定期的红队测试练习,目标是通过对抗性提示发现风险,并利用这些经验教训改进我们的基准测试和安全调优数据集。我们早期与关键风险领域的主题专家合作,以了解这些现实世界危害的性质以及此类模型如何可能导致对社会的意外伤害。基于这些对话,我们为红队制定了一组对抗性目标,例如提取有害信息或重新编程模型以可能造成伤害的方式行动。红队由网络安全、对抗性机器学习、负责任AI和诚信方面的专家以及在特定地理市场的诚信问题方面有背景的多语言内容专家组成。
关键风险
除了上述安全工作外,我们还特别关注测量和/或减轻以下关键风险领域:
- CBRNE(化学、生物、放射性、核和爆炸武器):Llama 3.2 1B和3B模型是Llama 3.1的较小且能力较弱的衍生模型。对于Llama 3.1 70B和405B,为了评估与化学和生物武器扩散相关的风险,我们进行了提升测试,旨在评估使用Llama 3.1模型是否会显著提高恶意行为者计划或实施使用此类武器的攻击的能力,并确定此类测试也适用于较小的1B和3B模型。
- 儿童安全:使用一组专家进行了儿童安全风险评估,以评估模型产生可能导致儿童安全风险的输出的能力,并通过微调提供任何必要和适当的风险缓解措施。我们利用这些专家红队测试会议,通过Llama 3模型开发扩展了我们评估基准的覆盖范围。对于Llama 3,我们使用基于目标的方法进行了新的深入会议,以评估模型在多个攻击向量上的风险,包括Llama 3训练的额外语言。我们还与内容专家合作进行红队测试练习,评估潜在违规内容,同时考虑特定市场的细微差别或经验。
- 网络攻击:对于Llama 3.1 405B,我们的网络攻击提升研究调查了LLM是否可以在技能水平和速度方面增强人类在黑客任务中的能力。我们的攻击自动化研究专注于评估LLM作为自主代理在网络攻击行动中的能力,特别是在勒索软件攻击的背景下。此评估与之前将LLM视为交互式助手的研究不同。主要目标是评估这些模型是否可以有效地作为独立代理执行复杂的网络攻击而无需人工干预。由于Llama 3.2的1B和3B模型比Llama 3.1 405B更小且能力较弱,我们大致认为对405B模型进行的测试也适用于Llama 3.2模型。
社区
行业合作伙伴关系
生成式AI安全需要专业知识和工具,我们相信开放社区的力量可以加速其发展。我们是开放联盟的积极成员,包括AI联盟、AI合作组织和MLCommons,积极为安全标准化和透明度做出贡献。我们鼓励社区采用MLCommons概念验证评估等分类法,以促进安全和内容评估方面的合作和透明度。我们的Purple Llama工具已开源供社区使用,并广泛分发给包括云服务提供商在内的生态系统合作伙伴。我们鼓励社区为我们的Github仓库做出贡献。
赠款
我们还设立了Llama影响赠款计划,以识别和支持Meta的Llama模型在三个类别中对社会有益的最引人注目的应用:教育、气候和开放创新。从数百份申请中选出的20名决赛选手可以在这里找到。
报告
最后,我们建立了一套资源,包括输出报告机制和漏洞赏金计划,以在社区的帮助下不断改进Llama技术。
伦理考虑和局限性
价值观
Llama 3.2的核心价值观是开放性、包容性和有用性。它旨在为每个人服务,并适用于广泛的用例。因此,它旨在让来自不同背景、经验和观点的人都能使用。Llama 3.2以用户的实际情况和需求为出发点,不插入不必要的判断或规范性内容,同时认识到即使在某些情况下可能看起来有问题的内容在其他情况下也可能有价值。它尊重所有用户的尊严和自主权,特别是在推动创新和进步的自由思想和表达价值观方面。
测试
Llama 3.2是一项新技术,与任何新技术一样,其使用存在风险。到目前为止进行的测试尚未涵盖,也不可能涵盖所有场景。出于这些原因,与所有LLM一样,Llama 3.2的潜在输出无法提前预测,并且模型在某些情况下可能会对用户提示产生不准确、有偏见或其他令人反感的响应。因此,在部署Llama 3.2模型的任何应用程序之前,开发者应针对其特定的模型应用进行安全测试和调优。请参考可用资源,包括我们的负责任使用指南、信任和安全解决方案以及其他资源,以了解更多关于负责任开发的信息。
🔧 技术细节
超低比特量化方法
我们最新的量化方法引入了针对超低比特模型(1 - 2位)的精度自适应量化,在Llama - 3 - 8B上经过基准测试证明有改进。这种方法使用特定层的策略来保持准确性,同时保持极高的内存效率。
基准测试背景
所有测试在Llama - 3 - 8B - Instruct上进行,使用:
- 标准困惑度评估管道
- 2048标记的上下文窗口
- 所有量化方法使用相同的提示集
方法
- 动态精度分配:
- 前/后25%的层 → IQ4_XS(选定层)
- 中间50% → IQ2_XXS/IQ3_S(提高效率)
- 关键组件保护:
- 嵌入/输出层使用Q5_K
- 与标准1 - 2位量化相比,将误差传播减少38%
量化性能比较(Llama - 3 - 8B)
量化方法 | 标准PPL | DynamicGate PPL | Δ PPL | 标准大小 | DG大小 | Δ大小 | 标准速度 | DG速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
关键:
- PPL = 困惑度(数值越低越好)
- Δ PPL = 从标准到DynamicGate的PPL变化百分比
- 速度 = 推理时间(CPU avx2,2048标记上下文)
- 大小差异反映了混合量化的开销
关键改进:
- 🔥 IQ1_M显示困惑度大幅降低43.9%(从27.46到15.41)
- 🚀 IQ2_S将困惑度降低36.9%,同时仅增加0.2GB
- ⚡ IQ1_S尽管是1位量化,但仍保持39.7%的更好准确性
权衡:
- 所有变体的大小都有适度增加(0.1 - 0.3GB)
- 推理速度保持相当(差异<5%)
何时使用这些模型
- 📌 将模型装入GPU VRAM
- ✔ 内存受限的部署
- ✔ CPU和边缘设备,可以容忍1 - 2位误差
- ✔ 超低比特量化研究
选择正确的模型格式
选择正确的模型格式取决于你的硬件能力和内存限制。
BF16(Brain Float 16) – 如果有BF16加速则使用
- 一种16位浮点格式,专为更快的计算而设计,同时保持良好的精度。
- 提供与FP32相似的动态范围,但内存使用更低。
- 如果你的硬件支持BF16加速(检查设备规格),建议使用。
- 与FP32相比,适用于高性能推理且内存占用减少。
📌 使用BF16的情况:
- ✔ 你的硬件具有原生BF16支持(例如,较新的GPU、TPU)。
- ✔ 你希望在节省内存的同时获得更高的精度。
- ✔ 你计划将模型重新量化为另一种格式。
📌 避免使用BF16的情况:
- ❌ 你的硬件不支持BF16(可能会回退到FP32并运行更慢)。
- ❌ 你需要与缺乏BF16优化的旧设备兼容。
F16(Float 16) – 比BF16更广泛支持
- 一种16位浮点格式,精度较高,但取值范围比BF16小。
- 适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU)。
- 数值精度略低于BF16,但通常足以用于推理。
📌 使用F16的情况:
- ✔ 你的硬件支持FP16但不支持BF16。
- ✔ 你需要在速度、内存使用和准确性之间取得平衡。
- ✔ 你在GPU或其他针对FP16计算优化的设备上运行。
📌 避免使用F16的情况:
- ❌ 你的设备缺乏原生FP16支持(可能运行比预期更慢)。
- ❌ 你有内存限制。
量化模型(Q4_K、Q6_K、Q8等) – 用于CPU和低VRAM推理
量化可以在尽可能保持准确性的同时减小模型大小和内存使用。
- 低比特模型(Q4_K) → 最适合最小的内存使用,可能精度较低。
- 高比特模型(Q6_K、Q8_0) → 更好的准确性,需要更多内存。
📌 使用量化模型的情况:
- ✔ 你在CPU上运行推理,需要优化的模型。
- ✔ 你的设备VRAM较低,无法加载全精度模型。
- ✔ 你希望在保持合理准确性的同时减少内存占用。
📌 避免使用量化模型的情况:
- ❌ 你需要最大的准确性(全精度模型更适合此需求)。
- ❌ 你的硬件有足够的VRAM用于更高精度的格式(BF16/F16)。
极低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
这些模型针对极端内存效率进行了优化,非常适合低功耗设备或大规模部署,其中内存是关键约束。
-
IQ3_XS:超低比特量化(3位),具有极高的内存效率。
- 用例:最适合超低内存设备,即使Q4_K也太大的情况。
- 权衡:与高比特量化相比,准确性较低。
-
IQ3_S:小块大小,以实现最大内存效率。
- 用例:最适合低内存设备,当IQ3_XS过于激进时。
-
IQ3_M:中等块大小,比IQ3_S具有更好的准确性。
- 用例:适用于低内存设备,当IQ3_S过于受限的情况。
-
Q4_K:4位量化,具有逐块优化以提高准确性。
- 用例:最适合低内存设备,当Q6_K太大时。
-
Q4_0:纯4位量化,针对ARM设备进行了优化。
- 用例:最适合基于ARM的设备或低内存环境。
模型格式选择总结表
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳用例 |
---|---|---|---|---|
BF16 | 最高 | 高 | 支持BF16的GPU/CPU | 高速推理且内存减少 |
F16 | 高 | 高 | 支持FP16的设备 | 当BF16不可用时的GPU推理 |
Q4_K | 中低 | 低 | CPU或低VRAM设备 | 最适合内存受限的环境 |
Q6_K | 中 | 中等 | 内存更多的CPU | 在量化的同时具有更好的准确性 |
Q8_0 | 高 | 中等 | 有足够VRAM的CPU或GPU | 量化模型中最佳的准确性 |
IQ3_XS | 非常低 | 非常低 | 超低内存设备 | 极端内存效率和低准确性 |
Q4_0 | 低 | 低 | ARM或低内存设备 | llama.cpp可以针对ARM设备进行优化 |
包含的文件及详情
Llama-3.2-3B-Instruct-bf16.gguf
- 模型权重保存为BF16。
- 如果你想将模型重新量化为不同的格式,请使用此文件。
- 如果你的设备支持BF16加速,则最佳。
Llama-3.2-3B-Instruct-f16.gguf
- 模型权重存储为F16。
- 如果你的设备支持FP16,特别是当BF16不可用时使用。
Llama-3.2-3B-Instruct-bf16-q8_0.gguf
- 输出和嵌入保持为BF16。
- 所有其他层量化为Q8_0。
- 如果你的设备支持BF16,并且你想要一个量化版本,请使用此文件。
Llama-3.2-3B-Instruct-f16-q8_0.gguf
- 输出和嵌入保持为F16。
- 所有其他层量化为Q8_0。
Llama-3.2-3B-Instruct-q4_k.gguf
- 输出和嵌入量化为Q8_0。
- 所有其他层量化为Q4_K。
- 适用于内存有限的CPU推理。
Llama-3.2-3B-Instruct-q4_k_s.gguf
- 最小的Q4_K变体,以牺牲准确性为代价使用更少的内存。
- 最适合非常低内存的设置。
Llama-3.2-3B-Instruct-q6_k.gguf
- 输出和嵌入量化为Q8_0。
- 所有其他层量化为Q6_K。
Llama-3.2-3B-Instruct-q8_0.gguf
- 完全Q8量化的模型,以获得更好的准确性。
- 需要更多内存,但提供更高的精度。
Llama-3.2-3B-Instruct-iq3_xs.gguf
- IQ3_XS量化,针对极端内存效率进行了优化。
- 最适合超低内存设备。
Llama-3.2-3B-Instruct-iq3_m.gguf
- IQ3_M量化,提供中等块大小以获得更好的准确性。
- 适用于低内存设备。
Llama-3.2-3B-Instruct-q4_0.gguf
- 纯Q4_0量化,针对ARM设备进行了优化。
- 最适合低内存环境。
- 为了更好的准确性,优先选择IQ4_NL。
测试模型
测试邀请
如果你发现这些模型有用,请点击“点赞”!帮助我测试我的AI驱动的网络监控助手,进行量子就绪安全检查: 👉 免费网络监控器
测试方法
- 点击任何页面右下角的聊天图标。
- 选择一个AI助手类型:
TurboLLM
(GPT - 4 - mini)FreeLLM
(开源)TestLLM
(仅实验性CPU)
测试内容
我正在挑战小型开源模型在AI网络监控方面的极限,具体包括:
- 针对实时网络服务进行函数调用。
- 模型可以多小,同时仍能处理:
- 自动化Nmap扫描
- 量子就绪检查
- Metasploit集成
测试模型详情
- 🟡 TestLLM – 当前的实验模型(在6个CPU线程上运行llama.cpp):
- ✅ 零配置设置
- ⏳ 30秒加载时间(推理速度慢,但无API成本)
- 🔧 寻求帮助! 如果你对边缘设备AI感兴趣,让我们合作!
其他助手
-
🟢 TurboLLM – 使用gpt - 4 - mini进行:
- 实时网络诊断
- 自动化渗透测试(Nmap/Metasploit)
- 🔑 通过下载我们的免费网络监控代理获得更多令牌。
-
🔵 HugLLM – 开源模型(约80亿参数):
- 比TurboLLM多2倍的令牌
- AI驱动的日志分析
- 🌐 在Hugging Face推理API上运行。
测试AI命令示例
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a quick Nmap vulnerability test"
📄 许可证
Llama 3.2的使用受Llama 3.2社区许可协议(自定义商业许可协议)的约束。
LLAMA 3.2社区许可协议
Llama 3.2版本发布日期:2024年9月25日
“协议”指本协议中规定的使用、复制、分发和修改Llama材料的条款和条件。
“文档”指Meta在https://llama.meta.com/doc/overview 上分发的随Llama 3.2附带的规格、手册和文档。
“被许可方”或“你”指你,或你的雇主或任何其他人或实体(如果你代表该人或实体签订本协议),达到适用法律、规则或法规要求的提供法律同意的年龄,并且如果你代表你的雇主或其他此类人或实体签订本协议,则具有约束他们的法律权力。
“Llama 3.2”指基础大语言模型以及软件和算法,包括机器学习模型代码、训练好的模型权重、推理启用代码、训练启用代码、微调启用代码以及Meta在https://www.llama.com/llama-downloads 上分发的上述内容的其他元素。
“Llama材料”指根据本协议提供的Meta专有的Llama 3.2和文档(及其任何部分)的统称。
“Meta”或“我们”指Meta Platforms Ireland Limited(如果你位于欧洲经济区或瑞士,或者如果你是一个实体,你的主要营业地在欧洲经济区或瑞士)和Meta Platforms, Inc.(如果你位于欧洲经济区或瑞士以外)。
通过点击下面的“我接受”,或使用或分发Llama材料的任何部分或元素,你同意受本协议约束。
- 许可权利和再分发
- 权利授予:你被授予在Meta体现在Llama材料中的知识产权或其他权利下的非排他性、全球范围、不可转让和免版税的有限许可,以使用、复制、分发、拷贝、创作衍生作品并对Llama材料进行修改。
- 再分发和使用:
- 如果你分发或提供Llama材料(或其任何衍生作品),或包含其中任何内容的产品或服务(包括另一个AI模型),你应(A)随任何此类Llama材料提供本协议的副本;并且(B)在相关网站、用户界面、博客文章、关于页面或产品文档上显著显示“Built with Llama”。如果你使用Llama材料或Llama材料的任何输出或结果来创建、训练、微调或以其他方式改进一个AI模型,并进行分发或提供,你还应在任何此类AI模型名称的开头包含“Llama”。
- 如果你作为集成最终用户产品的一部分从被许可方处接收Llama材料或其任何衍生作品,则本协议第2条不适用于你。
- 你必须在你分发的所有Llama材料副本中,在作为此类副本一部分分发的“通知”文本文件中保留以下归属声明:“Llama 3.2 is licensed under the Llama 3.2 Community License, Copyright © Meta Platforms, Inc. All Rights Reserved.”
- 你对Llama材料的使用必须遵守适用的法律法规(包括贸易合规法律法规),并遵守Llama材料的《可接受使用政策》(可在https://www.llama.com/llama3_2/use-policy 上获取),该政策特此通过引用并入本协议。
- 额外商业条款:如果在Llama 3.2版本发布日期,被许可方或被许可方的关联方提供的产品或服务的月活跃用户在前一个日历月超过7亿月活跃用户,你必须向Meta请求许可,Meta可自行决定是否授予你许可,并且在Meta明确授予你此类权利之前,你无权行使本协议下的任何权利。
- 保修免责声明:除非适用法律要求,Llama材料及其任何输出和结果按“现状”提供,不提供任何形式的保证,Meta免除所有形式的保证,包括但不限于任何所有权、不侵权、适销性或特定用途适用性的保证。你独自负责确定使用或再分发Llama材料的适当性,并承担与你使用Llama材料及其任何输出和结果相关的任何风险。
- 责任限制:在任何情况下,Meta或其关联方均不对因本协议引起的任何责任理论(无论是合同、侵权、疏忽、产品责任或其他)承担任何利润损失或任何间接、特殊、后果性、偶发性、示范性或惩罚性损害赔偿,即使Meta或其关联方已被告知此类损害的可能性。
- 知识产权:
- 商标许可:本协议未授予任何商标许可,与Llama材料相关,Meta和被许可方均不得使用对方或其任何关联方拥有或关联的任何名称或标记,除非在描述和再分发Llama材料时合理和惯常使用所需,或如本节5(a)所述。Meta特此授予你仅为遵守第1.b.i条最后一句所需使用“Llama”(“标记”)的许可。你将遵守Meta的品牌指南(目前可在https://about.meta.com/brand/resources/meta/company-brand/ 上获取)。因你使用标记而产生的所有商誉将归Meta所有。
- 衍生作品所有权:在Meta拥有Llama材料和Meta或代表Meta制作的衍生作品的前提下,就你制作的Llama材料的任何衍生作品和修改而言,在你和Meta之间,你是并将是此类衍生作品和修改的所有者。
- 诉讼后果:如果你对Meta或任何实体提起诉讼或其他程序(包括诉讼中的反诉或反请求),声称Llama材料或Llama 3.2的输出或结果,或上述任何内容的任何部分,构成侵犯你拥有或可许可的知识产权或其他权利,则本协议授予你的任何许可应自提起此类诉讼或请求之日起终止。你将赔偿并使Meta免受任何第三方因你使用或分发Llama材料而产生或与之相关的任何索赔。
- 期限和终止:本协议的期限自你接受本协议或访问Llama材料时开始,并将持续有效,直至根据本协议的条款和条件终止。如果你违反本协议的任何条款或条件,Meta可终止本协议。本协议终止后,你应删除并停止使用Llama材料。第3、4和7条在本协议终止后仍然有效。
- 适用法律和管辖权:本协议将受加利福尼亚州法律管辖并依其解释,不考虑法律选择原则,《联合国国际货物销售合同公约》不适用于本协议。加利福尼亚州的法院对因本协议引起的任何争议具有专属管辖权。
Llama 3.2可接受使用政策
Meta致力于促进其工具和功能(包括Llama 3.2)的安全和公平使用。如果你访问或使用Llama 3.2,你同意本《可接受使用政策》(“政策”)。本政策的最新版本可在https://www.llama.com/llama3_2/use-policy上找到。
禁止使用
我们希望每个人都能安全、负责任地使用Llama 3.2。你同意你不会使用或允许他人使用Llama 3.2来:
- 违反法律或他人权利:
- 从事、促进、生成、促成、鼓励、策划、煽动或进一步推动非法或违法活动或内容,例如:
- 暴力或恐怖主义
- 对儿童的剥削或伤害,包括招揽、创作、获取或传播儿童剥削内容或未报告儿童性虐待材料
- 人口贩运、剥削和性暴力
- 向未成年人非法分发信息或材料,包括淫秽材料,或未对此类信息或材料采用法律要求的年龄限制
- 性招揽
- 任何其他犯罪活动
- 从事、促进、煽动或促成对个人或个人群体的骚扰、虐待、威胁或欺凌
- 从事、促进、煽动或促成在就业、就业福利、信贷、住房、其他经济福利或其他基本商品和服务提供方面的歧视或其他非法或有害行为
- 从事未经授权或无执照的任何职业实践,包括但不限于金融、法律、医疗/健康或相关专业实践
- 收集、处理、披露、生成或推断个人的私人或敏感信息,包括个人身份、健康或人口统计信息,除非你已根据适用法律获得这样做的权利
- 从事或促成任何侵犯、盗用或以其他方式侵犯任何第三方权利的行为或生成任何内容,包括使用Llama材料的任何产品或服务的输出或结果
- 创建、生成或促成恶意代码、恶意软件、计算机病毒的创建,或做任何可能禁用、使负担过重、干扰或损害网站或计算机系统的正常工作、完整性、操作或外观的事情
- 从事任何行动或促成任何行动,故意规避或移除使用限制或其他安全措施,或启用Meta禁用的功能
- 从事、促进、生成、促成、鼓励、策划、煽动或进一步推动非法或违法活动或内容,例如:
- 从事、促进、煽动、促成或协助策划或开展对个人造成死亡或身体伤害风险的活动,包括与以下相关的Llama 3.2使用:
- 军事、战争、核工业或应用、间谍活动,用于受美国国务院维护的《国际武器贸易条例》(ITAR)或1989年《美国生物武器反恐法》或1997年《化学武器公约实施法》约束的材料或活动
- 枪支和非法武器(包括武器开发)
- 非法药物和受管制/受控物质
- 关键基础设施、运输技术或重型机械的操作
- 自我伤害或伤害他人,包括自杀、切割和饮食失调
- 任何旨在煽动或促进暴力、虐待或对个人造成身体伤害的内容
- 故意欺骗或误导他人,包括与以下相关的Llama 3.2使用:
- 生成、促进或进一步推动欺诈或虚假信息的创建或推广
- 生成、促进或进一步推动诽谤性内容,包括创建诽谤性声明、图像或其他内容
- 生成、促进或进一步分发垃圾邮件
- 未经同意、授权或合法权利冒充他人
- 表示Llama 3.2的使用或输出是人类生成的
- 生成或促成虚假的在线互动,包括虚假评论和其他虚假在线互动方式
- 未能向最终用户适当披露你的AI系统的任何已知危险
- 与旨在生成非法内容或从事非法或有害行为的第三方工具、模型或软件进行交互,和/或表示此类工具、模型或软件的输出与Meta或Llama 3.2相关
对于Llama 3.2中包含的任何多模态模型,如果你是居住在欧盟的个人或主要营业地在欧盟的公司,本协议第1(a)条授予的权利将不授予你。此限制不适用于包含任何此类多模态模型的产品或服务的最终用户。
请通过以下方式之一报告本政策的任何违反行为、软件“漏洞”或其他可能导致违反本政策的问题:
- 报告模型问题:https://github.com/meta-llama/llama-models/issues
- 报告模型生成的风险内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
- 报告违反可接受使用政策或未经授权使用Llama 3.2的情况:LlamaUseReport@meta.com



