模型概述
模型特點
模型能力
使用案例
🚀 Llama 3.2-Vision模型
Llama 3.2-Vision是Meta推出的多模態大語言模型集合,包含11B和90B兩種規模。它能處理文本和圖像輸入,輸出文本,在視覺識別、圖像推理、圖像描述和回答圖像相關問題等任務上表現出色,優於許多開源和閉源多模態模型。
🚀 快速開始
本倉庫包含兩個版本的Llama-3.2-11B-Vision-Instruct,可分別與transformers
庫和原始llama
代碼庫配合使用。
使用transformers庫
從transformers >= 4.45.0
版本開始,你可以使用包含圖像的對話消息進行推理。
請確保通過以下命令更新transformers
庫:
pip install --upgrade transformers
以下是使用示例代碼:
import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
model_id = "meta-llama/Llama-3.2-11B-Vision-Instruct"
model = MllamaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)
messages = [
{"role": "user", "content": [
{"type": "image"},
{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}
]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(image, input_text, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
使用原始llama
代碼庫
請遵循倉庫中的說明進行操作。
你可以使用huggingface-cli
下載原始檢查點:
huggingface-cli download meta-llama/Llama-3.2-11B-Vision-Instruct --include "original/*" --local-dir Llama-3.2-11B-Vision-Instruct
✨ 主要特性
- 多模態處理能力:支持文本和圖像輸入,輸出文本,可用於視覺問答、圖像描述等多種任務。
- 多種語言支持:文本任務支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語;圖像+文本應用僅支持英語。開發者可根據許可對其他語言進行微調。
- 模型家族優勢:所有模型版本均使用分組查詢注意力(GQA),提高推理可擴展性。
- 性能出色:在多個標準自動基準測試中表現優異,優於許多現有模型。
📦 安裝指南
使用transformers
庫時,通過pip install --upgrade transformers
更新庫即可開始使用。
💻 使用示例
基礎用法
import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
model_id = "meta-llama/Llama-3.2-11B-Vision-Instruct"
model = MllamaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)
messages = [
{"role": "user", "content": [
{"type": "image"},
{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}
]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(image, input_text, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
高級用法
可根據具體需求,調整模型參數和輸入消息,以實現更復雜的任務。例如,使用不同的圖像和文本輸入,調整max_new_tokens
等參數。
📚 詳細文檔
模型信息
屬性 | 詳情 |
---|---|
模型開發者 | Meta |
模型架構 | 基於Llama 3.1文本模型構建,使用優化的Transformer架構,微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF)。支持圖像識別任務的Vision Adapter與預訓練的Llama 3.1語言模型集成。 |
訓練數據 | 預訓練使用60億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集和超過300萬個合成生成的示例。 |
參數規模 | 11B(10.6)和90B(88.8) |
輸入模態 | 文本 + 圖像 |
輸出模態 | 文本 |
上下文長度 | 128k |
GQA | 是 |
數據量 | 60億個(圖像,文本)對 |
知識截止日期 | 2023年12月 |
支持語言 | 文本任務支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語;圖像+文本應用僅支持英語。 |
模型發佈日期 | 2024年9月25日 |
狀態 | 基於離線數據集訓練的靜態模型,未來可能發佈改進版本。 |
許可證 | Llama 3.2社區許可證 |
反饋渠道 | 可在模型README中找到提供反饋的說明。技術信息可參考此處。 |
預期用途
預期用例
- 視覺問答和推理:理解圖像並回答相關問題。
- 文檔視覺問答:理解文檔的文本和佈局,並回答相關問題。
- 圖像描述:為圖像生成描述性文本。
- 圖像-文本檢索:根據圖像或文本描述進行檢索。
- 視覺定位:根據自然語言描述定位圖像中的對象或區域。
Llama 3.2模型集合還支持利用其輸出改進其他模型,如合成數據生成和蒸餾。
超出範圍的使用
- 違反適用法律法規(包括貿易合規法律)的使用。
- 違反可接受使用政策和Llama 3.2社區許可證的使用。
- 使用模型卡片中未明確支持的語言。
硬件和軟件
訓練因素
使用自定義訓練庫、Meta的自定義GPU集群和生產基礎設施進行預訓練,微調、標註和評估也在生產基礎設施上進行。
訓練能源使用
訓練共使用了202萬個H100-80GB GPU小時的計算資源,功率為700W。
訓練溫室氣體排放
估計基於位置的總溫室氣體排放量為584噸CO2eq,由於Meta自2020年以來實現了全球運營的淨零溫室氣體排放,並100%使用可再生能源匹配電力消耗,因此基於市場的總溫室氣體排放量為0噸CO2eq。
模型 | 訓練時間(GPU小時) | 訓練功耗(W) | 基於位置的訓練溫室氣體排放(噸CO2eq) | 基於市場的訓練溫室氣體排放(噸CO2eq) |
---|---|---|---|---|
Llama 3.2-vision 11B | 階段1預訓練:14.7萬H100小時;階段2退火:9.8萬H100小時;SFT:896 H100小時;RLHF:224 H100小時 | 700 | 71 | 0 |
Llama 3.2-vision 90B | 階段1預訓練:88.5萬H100小時;階段2退火:88.5萬H100小時;SFT:3072 H100小時;RLHF:2048 H100小時 | 700 | 513 | 0 |
總計 | 202萬 | 584 | 0 |
訓練能源使用和溫室氣體排放的計算方法可參考此處。
訓練數據
- 概述:預訓練使用60億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集和超過300萬個合成生成的示例。
- 數據新鮮度:預訓練數據截止到2023年12月。
基準測試 - 圖像推理
基礎預訓練模型
類別 | 基準測試 | 樣本數 | 指標 | Llama 3.2 11B | Llama 3.2 90B |
---|---|---|---|---|---|
圖像理解 | VQAv2(驗證集) | 0 | 準確率 | 66.8 | 73.6 |
文本VQA(驗證集) | 0 | 寬鬆準確率 | 73.1 | 73.5 | |
DocVQA(驗證集,未見) | 0 | ANLS | 62.3 | 70.7 | |
視覺推理 | MMMU(驗證集,零樣本) | 0 | 微平均準確率 | 41.7 | 49.3 |
ChartQA(測試集) | 0 | 準確率 | 39.4 | 54.2 | |
InfographicsQA(驗證集,未見) | 0 | ANLS | 43.2 | 56.8 | |
AI2 Diagram(測試集) | 0 | 準確率 | 62.4 | 75.3 |
指令微調模型
模態 | 能力 | 基準測試 | 樣本數 | 指標 | Llama 3.2 11B | Llama 3.2 90B |
---|---|---|---|---|---|---|
圖像 | 大學水平問題和數學推理 | MMMU(驗證集,思維鏈) | 0 | 微平均準確率 | 50.7 | 60.3 |
MMMU-Pro,標準(10選項,測試集) | 0 | 準確率 | 33.0 | 45.2 | ||
MMMU-Pro,視覺(測試集) | 0 | 準確率 | 23.7 | 33.8 | ||
MathVista(測試集mini) | 0 | 準確率 | 51.5 | 57.3 | ||
圖表和圖表理解 | ChartQA(測試集,思維鏈) | 0 | 寬鬆準確率 | 83.4 | 85.5 | |
AI2 Diagram(測試集) | 0 | 準確率 | 91.1 | 92.3 | ||
DocVQA(測試集) | 0 | ANLS | 88.4 | 90.1 | ||
通用視覺問答 | VQAv2(測試集) | 0 | 準確率 | 75.2 | 78.1 | |
文本 | 通用 | MMLU(思維鏈) | 0 | 宏平均/準確率 | 73.0 | 86.0 |
數學 | MATH(思維鏈) | 0 | 最終精確匹配 | 51.9 | 68.0 | |
推理 | GPQA | 0 | 準確率 | 32.8 | 46.7 | |
多語言 | MGSM(思維鏈) | 0 | 精確匹配 | 68.9 | 86.9 |
責任與安全
負責任的部署
- 方法:Llama是一種基礎技術,可用於多種用例。Meta的Llama模型負責任部署的示例可在社區故事網頁中找到。Meta的方法是構建最有用的模型,通過使模型安全與通用用例對齊,解決一系列標準危害。開發者可根據自己的用例定製安全策略,並在其Llama系統中部署必要的保障措施。Llama 3.2的開發遵循了負責任使用指南中的最佳實踐。
- Llama 3.2 Instruct:安全微調的主要目標是為研究社區提供研究安全微調魯棒性的有價值資源,為開發者提供一個現成的、安全且強大的模型,以減少部署安全AI系統的工作量。實施了與Llama 3相同的安全緩解措施,更多信息可參考Llama 3 論文。採用多方面的數據收集方法,結合人類生成數據和合成數據,開發了許多基於大語言模型(LLM)的分類器,以選擇高質量的提示和響應,提高數據質量控制。注重模型對良性提示的拒絕以及拒絕語氣,在安全數據策略中包括邊界和對抗性提示,並修改安全數據響應以遵循語氣指南。
- Llama 3.2系統:大型語言模型,包括Llama 3.2,不應單獨部署,而應作為整體AI系統的一部分,根據需要添加額外的安全護欄。開發者在構建代理系統時應部署系統保障措施。保障措施是實現正確的有用性 - 安全性對齊以及減輕系統和模型與外部工具集成所固有的安全和風險的關鍵。Meta提供了保障措施,包括Llama Guard、Prompt Guard和Code Shield,開發者應與Llama模型或其他LLM一起部署。所有參考實現演示默認包含這些保障措施。
新功能和用例
- 技術進步:Llama的發佈通常會引入新功能,除了適用於所有生成式AI用例的最佳實踐外,還需要特定的考慮因素。對於Llama 3.2也支持的先前版本功能,請參考Llama 3.1模型卡片。
- 圖像推理:Llama 3.2-Vision模型具有多模態(文本和圖像)輸入功能,可實現圖像推理應用。在負責任的發佈過程中,採取了專門的措施,包括評估和緩解措施,以解決模型在圖像中唯一識別個人的風險。與其他LLM風險一樣,模型可能並不總是對對抗性提示具有魯棒性,開發者應在其應用的上下文中評估識別和其他適用風險,並考慮部署Llama Guard 3-11B-Vision或其他適當的緩解措施。
評估
- 規模化評估:構建了專門的對抗性評估數據集,並評估了由Llama模型和Purple Llama保障措施組成的系統,以過濾輸入提示和輸出響應。建議為特定用例構建專門的評估數據集。
- 紅隊測試:定期進行紅隊測試,目標是通過對抗性提示發現風險,並利用這些經驗改進基準測試和安全微調數據集。與關鍵風險領域的專家合作,瞭解現實世界危害的性質以及此類模型可能對社會造成的意外危害。根據這些對話,為紅隊制定了一組對抗性目標,如提取有害信息或重新編程模型以潛在地造成危害。紅隊由網絡安全、對抗性機器學習、負責任AI和完整性方面的專家以及具有特定地理市場完整性問題背景的多語言內容專家組成。
關鍵風險
- CBRNE(化學、生物、放射性、核和爆炸武器):對於Llama 3.1,進行了提升測試,以評估使用Llama 3.1模型是否會顯著增加惡意行為者計劃或實施使用此類武器的攻擊的能力。對於Llama 3.2-Vision模型,進行了額外的針對性評估,發現與Llama 3.1相比,Llama 3.2不太可能因增加的圖像理解能力而增加科學能力。
- 兒童安全:使用專家團隊進行兒童安全風險評估,以評估模型產生可能導致兒童安全風險的輸出的能力,並通過微調提供必要和適當的風險緩解措施。利用專家紅隊測試擴展了評估基準的覆蓋範圍。對於Llama 3,使用基於目標的方法進行了新的深入測試,評估了模型在多個攻擊向量上的風險,包括Llama 3訓練的其他語言。還與內容專家合作進行紅隊測試,評估潛在違規內容,同時考慮特定市場的細微差別或經驗。
- 網絡攻擊:對於Llama 3.1 405B,進行了網絡攻擊提升研究,調查了LLM是否可以在技能水平和速度方面增強人類在黑客任務中的能力。攻擊自動化研究專注於評估LLM作為自主代理在網絡攻擊行動中的能力,特別是在勒索軟件攻擊的背景下。由於Llama 3.2的視覺能力通常與網絡提升無關,因此認為對Llama 3.1進行的測試也適用於Llama 3.2。
社區
- 行業合作:生成式AI安全需要專業知識和工具,Meta相信開放社區的力量可以加速其發展。Meta是AI Alliance、Partnership on AI和MLCommons等開放聯盟的積極成員,積極參與安全標準化和透明度工作。鼓勵社區採用MLCommons概念驗證評估等分類法,以促進安全和內容評估的合作和透明度。Purple Llama工具已開源供社區使用,並廣泛分佈在包括雲服務提供商在內的生態系統合作伙伴中。鼓勵社區為Github倉庫做出貢獻。
- 資助計劃:設立了Llama影響資助計劃,以識別和支持Meta的Llama模型在教育、氣候和開放創新三個類別中的最有前景的應用。數百份申請中的20名決賽選手可在此處找到。
- 報告機制:建立了一套資源,包括輸出報告機制和漏洞賞金計劃,以藉助社區的幫助不斷改進Llama技術。
倫理考慮和侷限性
- 價值觀:Llama 3.2的核心價值觀是開放性、包容性和有用性。旨在為所有人服務,適用於廣泛的用例。設計上易於不同背景、經驗和觀點的人使用。尊重所有用戶的尊嚴和自主性,特別是自由思考和表達的價值觀,這些價值觀推動創新和進步。
- 測試:Llama 3.2是一項新技術,與任何新技術一樣,使用時存在風險。到目前為止進行的測試未能涵蓋所有場景。因此,與所有LLM一樣,Llama 3.2的潛在輸出無法提前預測,模型在某些情況下可能會產生不準確、有偏見或其他令人反感的響應。在部署Llama 3.2模型的任何應用之前,開發者應針對其特定應用進行安全測試和微調。更多關於負責任開發的信息,請參考負責任使用指南、信任與安全解決方案和其他資源。
🔧 技術細節
模型架構
Llama 3.2-Vision基於Llama 3.1文本模型構建,使用優化的Transformer架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF),以與人類的有用性和安全性偏好對齊。支持圖像識別任務的Vision Adapter由一系列交叉注意力層組成,將圖像編碼器表示輸入到核心大語言模型中。
訓練過程
預訓練使用60億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集和超過300萬個合成生成的示例。訓練使用自定義訓練庫、Meta的自定義GPU集群和生產基礎設施進行。
安全機制
實施了多種安全機制,包括安全微調、使用基於大語言模型的分類器選擇高質量數據、注重模型拒絕和拒絕語氣、提供系統保障措施等。
📄 許可證
使用Llama 3.2受Llama 3.2社區許可證(自定義商業許可協議)的約束。
⚠️ 重要提示
使用Llama 3.2時,請遵守適用法律法規和可接受使用政策,不得用於違反法律或本許可證的用途。對於圖像+文本應用,僅支持英語。
💡 使用建議
在部署Llama 3.2模型的應用之前,建議進行充分的安全測試和微調,以確保模型的輸出符合預期和安全要求。可參考Meta提供的負責任使用指南和信任與安全解決方案。








