模型概述
模型特點
模型能力
使用案例
🚀 unsloth/Llama-3.3-70B-Instruct-GGUF
本項目可通過 Unsloth 讓 Llama 3.3、Gemma 2、Mistral 2 的微調速度提升 5 倍,同時減少 70% 的內存使用!提供了免費的 Google Colab Tesla T4 筆記本,可用於 Llama 3.1 (8B) 的微調。
🚀 快速開始
- 查看我們的集合,獲取包括 GGUF、4 位和原始 16 位格式在內的所有 Llama 3.3 版本。
- 我們為 Llama 3.1 (8B) 提供了一個免費的 Google Colab Tesla T4 筆記本,點擊鏈接訪問:https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Llama3.1_(8B)-Alpaca.ipynb。
✨ 主要特性
免費微調
所有筆記本都對初學者友好!你只需添加自己的數據集,點擊“全部運行”,就能得到一個速度提升 2 倍的微調模型,該模型可以導出為 GGUF、vLLM 格式,或者上傳到 Hugging Face。
Unsloth 支持的模型 | 免費筆記本鏈接 | 性能提升 | 內存使用減少 |
---|---|---|---|
Llama-3.2 (3B) | ▶️ 在 Colab 上開始 | 2.4 倍更快 | 58% 更少 |
Llama-3.2 (11B 視覺模型) | ▶️ 在 Colab 上開始 | 2 倍更快 | 60% 更少 |
Qwen2 VL (7B) | ▶️ 在 Colab 上開始 | 1.8 倍更快 | 60% 更少 |
Qwen2.5 (7B) | ▶️ 在 Colab 上開始 | 2 倍更快 | 60% 更少 |
Llama-3.1 (8B) | ▶️ 在 Colab 上開始 | 2.4 倍更快 | 58% 更少 |
Phi-3.5 (mini) | ▶️ 在 Colab 上開始 | 2 倍更快 | 50% 更少 |
Gemma 2 (9B) | ▶️ 在 Colab 上開始 | 2.4 倍更快 | 58% 更少 |
Mistral (7B) | ▶️ 在 Colab 上開始 | 2.2 倍更快 | 62% 更少 |
- Llama 3.2 對話筆記本適用於 ShareGPT ChatML / Vicuna 模板。
- 文本完成筆記本適用於原始文本。DPO 筆記本可復現 Zephyr。
- * Kaggle 有 2 個 T4 GPU,但我們只使用 1 個。由於開銷問題,1 個 T4 GPU 的速度是原來的 5 倍。
特別感謝
非常感謝 Meta 和 Llama 團隊創建併發布這些模型。
📚 詳細文檔
模型信息
Meta Llama 3.3 多語言大語言模型(LLM)是一個經過預訓練和指令微調的生成模型,參數量為 700 億(文本輸入/文本輸出)。Llama 3.3 指令微調的純文本模型針對多語言對話用例進行了優化,在常見的行業基準測試中,其性能優於許多現有的開源和閉源聊天模型。
屬性 | 詳情 |
---|---|
模型開發者 | Meta |
模型架構 | Llama 3.3 是一個自迴歸語言模型,採用了優化的 Transformer 架構。微調版本使用了監督微調(SFT)和基於人類反饋的強化學習(RLHF),以符合人類對有用性和安全性的偏好。 |
訓練數據 | 新的公開在線數據混合。 |
參數數量 | 700 億 |
輸入模態 | 多語言文本 |
輸出模態 | 多語言文本和代碼 |
上下文長度 | 128k |
GQA | 是 |
令牌數量 | 超過 15 萬億 |
知識截止日期 | 2023 年 12 月 |
支持語言 | 英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語。 |
模型發佈日期 | 70B Instruct:2024 年 12 月 6 日 |
狀態 | 這是一個基於離線數據集訓練的靜態模型。隨著我們根據社區反饋改進模型安全性,未來將發佈微調模型的新版本。 |
許可證 | 自定義商業許可證,即 Llama 3.3 社區許可協議,可在此處查看。 |
有關模型的問題或評論發送方式,請參閱模型 README。有關生成參數和如何在應用程序中使用 Llama 3.3 的技術信息,請訪問此處。
預期用途
預期用例:Llama 3.3 旨在用於多種語言的商業和研究用途。指令微調的純文本模型適用於類似助手的聊天場景,而預訓練模型可用於各種自然語言生成任務。Llama 3.3 模型還支持利用其模型輸出改進其他模型,包括合成數據生成和蒸餾。Llama 3.3 社區許可協議允許這些用例。
超出範圍的使用:以任何違反適用法律法規(包括貿易合規法律)的方式使用。以可接受使用政策和 Llama 3.3 社區許可協議禁止的任何其他方式使用。在本模型卡片中未明確提及支持的語言之外使用該模型**。
**注意:Llama 3.3 在比 8 種支持語言更廣泛的語言集合上進行了訓練。開發者可以對 Llama 3.3 模型進行微調,以支持 8 種支持語言之外的語言,前提是他們遵守 Llama 3.3 社區許可協議和可接受使用政策,並負責確保在額外語言中使用 Llama 3.3 的任何方式都是安全和負責任的。
如何使用
本倉庫包含兩個版本的 Llama-3.3-70B-Instruct,可分別與 Transformers 庫和原始 llama
代碼庫一起使用。
💻 使用示例
基礎用法(與 Transformers 庫一起使用)
從 transformers >= 4.43.0
版本開始,你可以使用 Transformers 的 pipeline
抽象或通過 generate()
函數結合 Auto 類進行對話推理。
確保通過以下命令更新你的 Transformers 安裝:
pip install --upgrade transformers
以下是使用 Transformers 的代碼示例:
import transformers
import torch
model_id = "meta-llama/Llama-3.3-70B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"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 = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
高級用法(工具使用與 Transformers)
LLaMA-3.3 支持多種工具使用格式。你可以在此處查看完整的提示格式化指南。
通過 Transformers 中的聊天模板也支持工具使用。以下是一個簡單工具的快速示例:
# 首先,定義一個工具
def get_current_temperature(location: str) -> float:
"""
Get the current temperature at a location.
Args:
location: The location to get the temperature for, in the format "City, Country"
Returns:
The current temperature at the specified location in the specified units, as a float.
"""
return 22. # A real function should probably actually get the temperature!
# 接下來,創建一個聊天並應用聊天模板
messages = [
{"role": "system", "content": "You are a bot that responds to weather queries."},
{"role": "user", "content": "Hey, what's the temperature in Paris right now?"}
]
inputs = tokenizer.apply_chat_template(messages, tools=[get_current_temperature], add_generation_prompt=True)
你可以像往常一樣從這個輸入生成文本。如果模型生成了一個工具調用,你應該將其添加到聊天中,如下所示:
tool_call = {"name": "get_current_temperature", "arguments": {"location": "Paris, France"}}
messages.append({"role": "assistant", "tool_calls": [{"type": "function", "function": tool_call}]})
然後調用工具並將結果以 tool
角色添加到聊天中,如下所示:
messages.append({"role": "tool", "name": "get_current_temperature", "content": "22.0"})
之後,你可以再次調用 generate()
讓模型在聊天中使用工具結果。請注意,這只是對工具調用的簡要介紹,更多信息請參閱 LLaMA 提示格式文檔和 Transformers 工具使用文檔。
使用 bitsandbytes
可以使用 bitsandbytes
和 transformers
將模型檢查點以 8 位或 4 位格式加載,以進一步優化內存使用。
以下是使用示例:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "meta-llama/Llama-3.3-70B-Instruct"
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
quantized_model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", torch_dtype=torch.bfloat16, quantization_config=quantization_config)
tokenizer = AutoTokenizer.from_pretrained(model_id)
input_text = "What are we having for dinner?"
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
output = quantized_model.generate(**input_ids, max_new_tokens=10)
print(tokenizer.decode(output[0], skip_special_tokens=True))
要以 4 位格式加載,只需傳遞 load_in_4bit=True
。
使用 llama
請遵循倉庫中的說明。
要下載原始檢查點,請使用以下 huggingface-cli
命令示例:
huggingface-cli download meta-llama/Llama-3.3-70B-Instruct --include "original/*" --local-dir Llama-3.3-70B-Instruct
硬件和軟件
訓練因素:我們使用自定義訓練庫、Meta 定製的 GPU 集群和生產基礎設施進行預訓練。微調、標註和評估也在生產基礎設施上進行。
訓練能源使用:訓練總共使用了 3930 萬 GPU 小時的 H100 - 80GB(TDP 為 700W)類型硬件計算資源,具體如下表所示。訓練時間是每個模型訓練所需的總 GPU 時間,功耗是每個 GPU 設備的峰值功率容量,並根據電源使用效率進行了調整。
模型 | 訓練時間(GPU 小時) | 訓練功耗(W) | 基於位置的訓練溫室氣體排放量(噸 CO2eq) | 基於市場的訓練溫室氣體排放量(噸 CO2eq) |
---|---|---|---|---|
Llama 3.3 70B | 700 萬 | 700 | 2040 | 0 |
確定訓練能源使用和溫室氣體排放量的方法可在此處找到。由於 Meta 正在公開發布這些模型,其他人不會產生訓練能源使用和溫室氣體排放。
訓練數據
概述:Llama 3.3 在來自公開來源的約 15 萬億個令牌數據上進行了預訓練。微調數據包括公開可用的指令數據集,以及超過 2500 萬個合成生成的示例。
數據新鮮度:預訓練數據的截止日期為 2023 年 12 月。
基準測試 - 英語文本
在本節中,我們報告了 Llama 3.3 相對於我們之前模型的基準測試結果。
指令微調模型
類別 | 基準測試 | 樣本數 | 指標 | Llama 3.1 8B Instruct | Llama 3.1 70B Instruct | Llama-3.3 70B Instruct | Llama 3.1 405B Instruct |
---|---|---|---|---|---|---|---|
MMLU (CoT) | 0 | macro_avg/acc | 73.0 | 86.0 | 86.0 | 88.6 | |
MMLU Pro (CoT) | 5 | macro_avg/acc | 48.3 | 66.4 | 68.9 | 73.3 | |
可控性 | IFEval | 80.4 | 87.5 | 92.1 | 88.6 | ||
推理能力 | GPQA Diamond (CoT) | 0 | acc | 31.8 | 48.0 | 50.5 | 49.0 |
代碼能力 | HumanEval | 0 | pass@1 | 72.6 | 80.5 | 88.4 | 89.0 |
MBPP EvalPlus (base) | 0 | pass@1 | 72.8 | 86.0 | 87.6 | 88.6 | |
數學能力 | MATH (CoT) | 0 | sympy_intersection_score | 51.9 | 68.0 | 77.0 | 73.8 |
工具使用能力 | BFCL v2 | 0 | overall_ast_summary/macro_avg/valid | 65.4 | 77.5 | 77.3 | 81.1 |
多語言能力 | MGSM | 0 | em | 68.9 | 86.9 | 91.1 | 91.6 |
責任與安全
作為我們負責任發佈方法的一部分,我們採用了三管齊下的策略來管理信任和安全風險:
- 使開發者能夠為其目標受眾和 Llama 支持的用例部署有用、安全和靈活的體驗。
- 保護開發者免受旨在利用 Llama 功能造成潛在危害的惡意用戶的攻擊。
- 為社區提供保護,防止我們的模型被濫用。
負責任的部署
Llama 是一種基礎技術,旨在用於各種用例。關於 Meta 的 Llama 模型如何負責任地部署的示例,可以在我們的社區故事網頁上找到。我們的方法是構建最有用的模型,使世界能夠受益於該技術的力量,通過調整我們的模型安全性以適應通用用例,解決一系列標準危害。開發者可以根據自己的用例定製安全性,定義自己的政策,並在其 Llama 系統中部署必要的保障措施。Llama 3.3 是根據我們的《負責任使用指南》中概述的最佳實踐開發的,你可以參考《負責任使用指南》瞭解更多信息。
Llama 3.3 指令微調模型
我們進行安全微調的主要目標是為研究社區提供一個有價值的資源,用於研究安全微調的魯棒性,併為開發者提供一個隨時可用、安全且強大的模型,用於各種應用,以減少開發者部署安全 AI 系統的工作量。有關實施的安全緩解措施的更多詳細信息,請閱讀 Llama 3 論文。
微調數據:我們採用多方面的數據收集方法,將供應商提供的人工生成數據與合成數據相結合,以減輕潛在的安全風險。我們開發了許多基於大語言模型(LLM)的分類器,使我們能夠精心選擇高質量的提示和響應,加強數據質量控制。
拒絕和語氣:在 Llama 3 的基礎上,我們非常重視模型對良性提示的拒絕以及拒絕語氣。我們在安全數據策略中包括了邊界和對抗性提示,並修改了我們的安全數據響應,以遵循語氣指南。
Llama 3.3 系統
包括 Llama 3.3 在內的大語言模型不是為單獨部署而設計的,而是應作為整體 AI 系統的一部分,根據需要添加額外的安全保障措施。 開發者在構建代理系統時應部署系統保障措施。保障措施對於實現正確的有用性 - 安全性對齊以及減輕系統固有的安全和風險以及模型或系統與外部工具集成的風險至關重要。
作為我們負責任發佈方法的一部分,我們為社區提供了保障措施,開發者應將其與 Llama 模型或其他 LLM 一起部署,包括 Llama Guard 3、Prompt Guard 和 Code Shield。我們所有的參考實現演示默認都包含這些保障措施,因此開發者可以立即受益於系統級安全。
新功能
請注意,此版本引入了新功能,包括更長的上下文窗口、多語言輸入和輸出以及開發者可能與第三方工具的集成。使用這些新功能除了適用於所有生成式 AI 用例的最佳實踐外,還需要特定的考慮。
工具使用:就像在標準軟件開發中一樣,開發者負責將 LLM 與他們選擇的工具和服務集成。他們應該為自己的用例定義明確的政策,並評估他們使用的第三方服務的完整性,以瞭解使用此功能時的安全和風險限制。有關安全部署第三方保障措施的最佳實踐,請參考《負責任使用指南》。
多語言支持:Llama 3.3 除了英語外還支持 7 種語言:法語、德語、印地語、意大利語、葡萄牙語、西班牙語和泰語。Llama 可能能夠輸出超出安全和有用性性能閾值的其他語言文本。我們強烈建議開發者在使用此模型進行非支持語言的對話時,根據其政策和《負責任使用指南》中分享的最佳實踐進行微調並實施系統控制。
評估
我們對 Llama 模型的常見用例以及特定功能進行了評估。常見用例評估衡量了為最常見構建的應用程序(包括聊天機器人、編碼助手、工具調用)的系統安全風險。我們構建了專門的對抗性評估數據集,並評估了由 Llama 模型和 Llama Guard 3 組成的系統,以過濾輸入提示和輸出響應。在上下文中評估應用程序很重要,我們建議為你的用例構建專門的評估數據集。如果與應用程序相關,Prompt Guard 和 Code Shield 也可用。
能力評估衡量了 Llama 模型特定功能固有的漏洞,為此我們精心設計了專門的基準測試,包括長上下文、多語言、工具調用、編碼或記憶。
紅隊測試:對於這兩種情況,我們進行了定期的紅隊測試,目標是通過對抗性提示發現風險,並利用這些經驗教訓改進我們的基準測試和安全調整數據集。
我們早期與關鍵風險領域的主題專家合作,瞭解這些現實世界危害的性質以及此類模型如何可能對社會造成意外危害。基於這些對話,我們為紅隊制定了一組對抗性目標,例如提取有害信息或重新編程模型以潛在地造成危害。紅隊由網絡安全、對抗性機器學習、負責任 AI 和完整性方面的專家以及在特定地理市場的完整性問題方面有背景的多語言內容專家組成。
關鍵和其他風險
我們特別緻力於減輕以下關鍵風險領域:
- CBRNE(化學、生物、放射、核和爆炸物材料)有用性:為了評估與化學和生物武器擴散相關的風險,我們進行了提升測試,旨在評估使用 Llama 3.3 模型是否會顯著增加惡意行為者計劃或實施使用此類武器的攻擊的能力。
- 兒童安全:我們使用專家團隊進行了兒童安全風險評估,以評估模型產生可能導致兒童安全風險的輸出的能力,並通過微調提供必要和適當的風險緩解措施。我們利用這些專家紅隊測試會話來擴展我們在 Llama 3 模型開發過程中的評估基準的覆蓋範圍。對於 Llama 3,我們使用基於目標的方法進行了新的深入會話,以評估模型在多個攻擊向量上的風險,包括 Llama 3 訓練的其他語言。我們還與內容專家合作進行紅隊測試,評估潛在違規內容,同時考慮市場特定的細微差別或經驗。
- 網絡攻擊啟用:我們的網絡攻擊提升研究調查了 LLM 是否可以在技能水平和速度方面增強人類在黑客任務中的能力。
我們的攻擊自動化研究專注於評估 LLM 作為自主代理在網絡攻擊操作(特別是在勒索軟件攻擊的背景下)中的能力。此評估與之前將 LLM 視為交互式助手的研究不同。主要目標是評估這些模型是否可以有效地作為獨立代理執行復雜的網絡攻擊而無需人工干預。
社區
生成式 AI 安全需要專業知識和工具,我們相信開放社區的力量可以加速其發展。我們是開放聯盟的積極成員,包括 AI 聯盟、AI 合作組織和 MLCommons,積極為安全標準化和透明度做出貢獻。我們鼓勵社區採用像 MLCommons 概念驗證評估這樣的分類法,以促進安全和內容評估的協作和透明度。我們的 Purple Llama 工具已開源供社區使用,並廣泛分發給包括雲服務提供商在內的生態系統合作伙伴。我們鼓勵社區為我們的 Github 倉庫做出貢獻。
我們還設立了 Llama 影響贈款計劃,以識別和支持 Meta 的 Llama 模型對社會有益的最有吸引力的應用,涵蓋教育、氣候和開放創新三個類別。從數百份申請中選出的 20 名決賽選手可以在此處找到。
最後,我們建立了一套資源,包括輸出報告機制和漏洞賞金計劃,以在社區的幫助下不斷改進 Llama 技術。
倫理考慮和侷限性
Llama 3.3 的核心價值觀是開放性、包容性和有用性。它旨在為每個人服務,並適用於廣泛的用例。因此,它旨在讓不同背景、經驗和觀點的人都能使用。Llama 3.3 以用戶的實際情況和需求為出發點,不插入不必要的判斷或規範性,同時認識到即使在某些情況下可能看似有問題的內容,在其他情況下也可能有寶貴的用途。它尊重所有用戶的尊嚴和自主權,特別是在推動創新和進步的自由思想和表達價值觀方面。
但 Llama 3.3 是一項新技術,與任何新技術一樣,其使用存在風險。到目前為止進行的測試尚未涵蓋,也不可能涵蓋所有場景。因此,與所有 LLM 一樣,Llama 3.3 的潛在輸出無法提前預測,模型在某些情況下可能會對用戶提示產生不準確、有偏見或其他令人反感的響應。因此,在部署 Llama 3.3 模型的任何應用程序之前,開發者應針對其特定應用進行安全測試和調整。請參考可用資源,包括我們的《負責任使用指南》、信任與安全解決方案以及其他資源,以瞭解更多關於負責任開發的信息。
📄 許可證
自定義商業許可證,即 Llama 3.3 社區許可協議,可在此處查看。



