模型概述
模型特點
模型能力
使用案例
🚀 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



