🚀 Llama Guard 3:內容安全分類預訓練模型
Llama Guard 3 是基於 Llama-3.1-8B 的預訓練模型,針對內容安全分類進行了微調。它能夠對大語言模型(LLM)的輸入(提示分類)和響應(響應分類)內容進行分類,通過生成文本輸出表明給定提示或響應是否安全,若不安全還會列出違反的內容類別。該模型支持 8 種語言的內容審核,優化後可支持搜索和代碼解釋器工具調用的安全保障。
🚀 快速開始
Llama Guard 3 可直接與 transformers
庫配合使用,不過僅支持 transformers
4.43 及以上版本。
代碼示例
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "meta-llama/Llama-Guard-3-8B"
device = "cuda"
dtype = torch.bfloat16
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=dtype, device_map=device)
def moderate(chat):
input_ids = tokenizer.apply_chat_template(chat, return_tensors="pt").to(device)
output = model.generate(input_ids=input_ids, max_new_tokens=100, pad_token_id=0)
prompt_len = input_ids.shape[-1]
return tokenizer.decode(output[0][prompt_len:], skip_special_tokens=True)
moderate([
{"role": "user", "content": "I forgot how to kill a process in Linux, can you help?"},
{"role": "assistant", "content": "Sure! To kill a process in Linux, you can use the kill command followed by the process ID (PID) of the process you want to terminate."},
])
⚠️ 重要提示
此倉庫對應的是模型的半精度版本,同時也提供了 8 位精度版本,詳情請訪問 meta-llama/Llama-Guard-3-8B-INT8。
✨ 主要特性
- 多語言支持:支持英語、法語、德語、印地語、意大利語、葡萄牙語、西班牙語和泰語 8 種語言的內容安全分類。
- 內容分類全面:可對大語言模型的輸入和響應內容進行分類,識別多種不安全內容類別。
- 性能提升:相較於 Llama Guard 2 和 GPT4,在英語、多語言和工具使用能力方面表現更優,且誤報率更低。
- 量化版本:提供量化版本,降低部署成本,同時對模型性能影響較小。
📦 安裝指南
使用前請確保已安裝 transformers
庫,且版本在 4.43 及以上。可通過以下命令安裝:
pip install transformers>=4.43
📚 詳細文檔
模型細節
Llama Guard 3 是基於 Llama-3.1-8B 的預訓練模型,針對內容安全分類進行了微調。它可以對大語言模型的輸入和響應內容進行分類,輸出表明給定提示或響應是否安全,若不安全還會列出違反的內容類別。
危害分類與策略
該模型基於 MLCommons 分類法 中的 13 種危害以及代碼解釋器濫用的額外類別,對以下 14 個類別進行安全標籤預測:
危害類別 |
詳情 |
S1: 暴力犯罪 |
包括對人或動物的非法暴力行為,如恐怖主義、謀殺、虐待動物等。 |
S2: 非暴力犯罪 |
涵蓋個人犯罪、金融犯罪、財產犯罪、毒品犯罪、武器犯罪和網絡犯罪等。 |
S3: 性相關犯罪 |
包括性交易、性侵犯、性騷擾和賣淫等。 |
S4: 兒童性剝削 |
包含、描述、促成、鼓勵或支持對兒童的性虐待的內容。 |
S5: 誹謗 |
可驗證為虛假且可能損害他人聲譽的內容。 |
S6: 專業建議 |
包含專業金融、醫療或法律建議,或表明危險活動或物體安全的內容。 |
S7: 隱私 |
包含可能損害他人身體、數字或財務安全的敏感非公開個人信息的內容。 |
S8: 知識產權 |
可能侵犯第三方知識產權的內容。 |
S9: 濫殺性武器 |
促成、鼓勵或支持製造濫殺性武器的內容,如化學武器、生物武器等。 |
S10: 仇恨言論 |
基於敏感個人特徵貶低或非人化他人的內容。 |
S11: 自殺與自殘 |
促成、鼓勵或支持故意自殘行為的內容,如自殺、自傷和飲食失調等。 |
S12: 色情內容 |
包含色情內容的回覆。 |
S13: 選舉 |
包含關於選舉系統和流程的事實錯誤信息的內容。 |
S14: 代碼解釋器濫用 |
試圖濫用代碼解釋器的內容,如拒絕服務攻擊、容器逃逸或權限提升漏洞利用等。 |
支持語言
支持英語、法語、德語、印地語、意大利語、葡萄牙語、西班牙語和泰語。
訓練數據
- 英語數據:使用 Llama Guard [1] 的英語數據,通過在 hh-rlhf 數據集 [2] 的提示上獲取 Llama 2 和 Llama 3 的生成結果得到。
- 多語言數據:為擴展新類別和新能力(如多語言和工具使用)的訓練數據,收集了額外的人工和合成生成數據。多語言數據是單輪或多輪的人機對話數據。
- 工具使用數據:對於搜索工具調用,使用 Llama3 對收集和合成的提示集生成響應;對於代碼解釋器濫用檢測,使用大語言模型生成安全和不安全的提示,然後使用未進行安全調整的大語言模型生成符合這些指令的代碼解釋器完成結果。
評估
- 評估說明:比較模型性能並不簡單,因為每個模型基於自身策略構建,在與模型策略一致的評估數據集上表現更好。通過將 Llama Guard 系列模型與 MLCommons 危害分類法對齊,有助於推動行業標準的採用,促進大語言模型安全和內容評估領域的協作與透明度。
- 評估結果:在內部測試中,Llama Guard 3 在 MLCommons 危害分類法上的性能優於 Llama Guard 2 和 GPT4,且誤報率更低。在 OSS 數據集 XSTest [4] 上,Llama Guard 3 達到了與 Llama Guard 2 相同的 F1 分數,但誤報率更低。
應用
根據 Llama 3 論文,Llama Guard 3 提供了行業領先的系統級安全性能,建議與 Llama 3.1 一起部署。雖然部署 Llama Guard 3 可能會提高系統安全性,但可能會增加對良性提示的拒絕率(誤報)。Llama 3 論文中提供了違規率改進和對誤報影響的內部基準測試結果。
量化
為幫助社區負責任地部署 Llama 系統,提供了 Llama Guard 3 的量化版本,使用集成到 Hugging Face 生態系統中的 int 8 實現,將檢查點大小減少約 40%,對模型性能影響很小。量化模型的性能與原始模型相當。
開始使用
Llama Guard 3 默認在 Llama 3.1 參考實現 上可用。可通過 Llama Recipes 瞭解更多配置和自定義方法。
侷限性
- 數據依賴:Llama Guard 3 是基於 Llama 3.1 微調的大語言模型,其性能可能受(預)訓練數據的限制。
- 特定類別評估:某些危害類別(如誹謗、知識產權和選舉)需要事實性、最新的知識進行評估,對於對這些類型危害高度敏感的用例,可能需要部署更復雜的系統,但 Llama Guard 3 為通用用例提供了良好的基線。
- 對抗攻擊:作為大語言模型,Llama Guard 3 可能容易受到對抗攻擊或提示注入攻擊,導致其繞過或改變預期用途。請隨時 報告 漏洞,以便在未來版本中進行改進。
引用
@misc{dubey2024llama3herdmodels,
title = {The Llama 3 Herd of Models},
author = {Llama Team, AI @ Meta},
year = {2024},
eprint = {2407.21783},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2407.21783}
}
參考文獻
[1] Llama Guard: LLM-based Input-Output Safeguard for Human-AI Conversations
[2] Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback
[3] Llama Guard 2 Model Card
[4] XSTest: A Test Suite for Identifying Exaggerated Safety Behaviors in Large Language Models
🔧 技術細節
響應分類示例
為了生成分類器分數,我們查看第一個標記的概率,並將其作為“不安全”類別的概率,然後應用分數閾值進行二元決策。
量化影響
使用 int 8 量化將檢查點大小減少約 40%,對模型性能影響很小。在內部測試中,量化模型的性能與原始模型相當。
📄 許可證
Llama Guard 3 遵循 Llama 3.1 社區許可證。詳細的許可證協議請參考 LLAMA 3.1 COMMUNITY LICENSE AGREEMENT。
許可證摘要
- 許可權利:授予非排他性、全球性、不可轉讓和免版稅的有限許可,用於使用、複製、分發、修改 Llama 材料。
- 再分發和使用:分發 Llama 材料或包含其衍生作品的產品或服務時,需提供許可證副本,並在相關網站、用戶界面、博客文章、關於頁面或產品文檔中顯著顯示“Built with Llama”。
- 額外商業條款:如果在 Llama 3.1 版本發佈日期,被許可人或其關聯方提供的產品或服務的月活躍用戶數超過 7 億,則需向 Meta 請求許可證。
- 免責聲明:除非適用法律要求,Llama 材料及其輸出和結果按“原樣”提供,Meta 不提供任何形式的保證。
- 責任限制:Meta 及其關聯方在任何情況下均不對因本協議引起的任何利潤損失或間接、特殊、後果性、偶發性、懲戒性或懲罰性損害承擔責任。
- 知識產權:本協議未授予商標許可,Meta 授予使用“Llama”標記的許可,以遵守相關條款。對於用戶對 Llama 材料的衍生作品和修改,用戶擁有所有權。
- 期限和終止:協議自接受或訪問 Llama 材料時生效,直至根據協議條款終止。如果被許可人違反協議條款,Meta 有權終止協議。
- 適用法律和管轄權:本協議受加利福尼亞州法律管轄,加利福尼亞州法院對因本協議引起的任何爭議具有專屬管轄權。
可接受使用政策
使用 Llama 3.1 需遵守 可接受使用政策,禁止使用 Llama 3.1 進行違法、有害、欺詐、歧視等行為。如發現違反政策的情況,請通過以下方式報告: