模型概述
模型特點
模型能力
使用案例
🚀 Llama 3.2-Vision模型
Llama 3.2-Vision是一系列多模態大語言模型,支持圖像推理和生成任務。它在常見行業基準測試中表現出色,可用於視覺識別、圖像推理、圖像描述和問答等多種場景。
🚀 快速開始
使用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-90B-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,
add_special_tokens=False,
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-90B-Vision-Instruct --include "original/*" --local-dir Llama-3.2-90B-Vision-Instruct
✨ 主要特性
- 多模態處理:支持圖像和文本輸入,輸出文本,適用於視覺識別、圖像推理、圖像描述和問答等任務。
- 高性能表現:在常見行業基準測試中,優於許多開源和閉源的多模態模型。
- 多語言支持:文本任務支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語;圖像+文本應用僅支持英語。
- 靈活使用:開發者可根據Llama 3.2社區許可協議和可接受使用政策,對模型進行微調以支持更多語言。
📦 安裝指南
安裝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-90B-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,
add_special_tokens=False,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
高級用法
可以根據具體需求調整模型參數,如max_new_tokens
、temperature
等,以獲得不同的生成效果。
# 示例:調整max_new_tokens和temperature參數
output = model.generate(**inputs, max_new_tokens=50, temperature=0.7)
print(processor.decode(output[0]))
📚 詳細文檔
模型信息
屬性 | 詳情 |
---|---|
模型開發者 | Meta |
模型架構 | 基於Llama 3.1文本模型構建,使用優化的Transformer架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF)。 |
訓練數據 | 預訓練使用60億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集和超過300萬個合成生成的示例。 |
支持語言 | 文本任務支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語;圖像+文本應用僅支持英語。 |
模型發佈日期 | 2024年9月25日 |
狀態 | 靜態模型,未來可能發佈改進版本。 |
許可證 | Llama 3.2社區許可證 |
反饋 | 可在模型README中查看反饋說明,更多技術信息可參考此處。 |
預期用途
預期用例
- 視覺問答和推理:理解圖像並回答相關問題。
- 文檔視覺問答:理解文檔圖像中的文本和佈局,並回答問題。
- 圖像描述:為圖像生成描述性文本。
- 圖像-文本檢索:根據文本描述檢索相關圖像,或根據圖像檢索相關文本。
- 視覺定位:根據自然語言描述定位圖像中的對象或區域。
Llama 3.2模型集合還支持利用其輸出改進其他模型,如合成數據生成和蒸餾。
超出範圍
- 違反適用法律法規(包括貿易合規法律)的使用。
- 違反可接受使用政策和Llama 3.2社區許可證的使用。
- 使用模型未明確支持的語言。
硬件和軟件
訓練因素
使用自定義訓練庫、Meta的自定義GPU集群和生產基礎設施進行預訓練。微調、標註和評估也在生產基礎設施上進行。
訓練能源使用
訓練累計使用了202萬個H100-80GB(TDP為700W)類型硬件的GPU小時計算資源。
訓練溫室氣體排放
估計基於位置的總溫室氣體排放量為584噸CO2eq,基於市場的總溫室氣體排放量為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 (val) | 0 | 準確率 | 66.8 | 73.6 |
Text VQA (val) | 0 | 寬鬆準確率 | 73.1 | 73.5 | |
DocVQA (val, unseen) | 0 | ANLS | 62.3 | 70.7 | |
視覺推理 | MMMU (val, 0-shot) | 0 | 微觀平均準確率 | 41.7 | 49.3 |
ChartQA (test) | 0 | 準確率 | 39.4 | 54.2 | |
InfographicsQA (val, unseen) | 0 | ANLS | 43.2 | 56.8 | |
AI2 Diagram (test) | 0 | 準確率 | 62.4 | 75.3 |
指令微調模型
模態 | 能力 | 基準測試 | 樣本數 | 指標 | Llama 3.2 11B | Llama 3.2 90B |
---|---|---|---|---|---|---|
圖像 | 大學水平問題和數學推理 | MMMU (val, CoT) | 0 | 微觀平均準確率 | 50.7 | 60.3 |
MMMU-Pro, Standard (10 opts, test) | 0 | 準確率 | 33.0 | 45.2 | ||
MMMU-Pro, Vision (test) | 0 | 準確率 | 23.7 | 33.8 | ||
MathVista (testmini) | 0 | 準確率 | 51.5 | 57.3 | ||
圖表和圖表理解 | ChartQA (test, CoT) | 0 | 寬鬆準確率 | 83.4 | 85.5 | |
AI2 Diagram (test) | 0 | 準確率 | 91.1 | 92.3 | ||
DocVQA (test) | 0 | ANLS | 88.4 | 90.1 | ||
通用視覺問答 | VQAv2 (test) | 0 | 準確率 | 75.2 | 78.1 | |
文本 | 通用 | MMLU (CoT) | 0 | 宏觀平均準確率 | 73.0 | 86.0 |
數學 | MATH (CoT) | 0 | 最終精確匹配率 | 51.9 | 68.0 | |
推理 | GPQA | 0 | 準確率 | 32.8 | 46.7 | |
多語言 | MGSM (CoT) | 0 | 精確匹配率 | 68.9 | 86.9 |
🔧 技術細節
模型架構
Llama 3.2-Vision基於Llama 3.1文本模型構建,使用優化的Transformer架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF),以符合人類對有用性和安全性的偏好。為支持圖像識別任務,模型使用了一個單獨訓練的視覺適配器,將圖像編碼器表示輸入到核心大語言模型中。
訓練過程
預訓練使用60億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集和超過300萬個合成生成的示例。
📄 許可證
使用Llama 3.2受Llama 3.2社區許可證(自定義商業許可協議)的約束。
責任與安全
負責任的部署
- 方法:Llama是一種基礎技術,旨在用於多種用例。Meta的Llama模型負責任部署的示例可在社區故事網頁中找到。Meta的方法是構建最有用的模型,通過調整模型安全性以應對通用用例中的標準危害,使世界受益於技術力量。開發者可以根據自己的用例定製安全性,定義自己的政策,並在Llama系統中部署必要的保障措施。Llama 3.2的開發遵循了負責任使用指南中的最佳實踐。
- Llama 3.2指令:安全微調的主要目標是為研究社區提供研究安全微調魯棒性的有價值資源,為開發者提供一個現成、安全且強大的模型,以減少部署安全AI系統的工作量。實施了與Llama 3相同的安全緩解措施,更多信息可參考Llama 3 論文。
- Llama 3.2系統:大語言模型(包括Llama 3.2)不應單獨部署,而應作為整體AI系統的一部分,並根據需要添加額外的安全保障措施。開發者在構建代理系統時應部署系統保障措施。保障措施對於實現正確的有用性-安全性平衡以及減輕系統固有的安全和風險至關重要。Meta提供了保障措施,如Llama Guard、Prompt Guard和Code Shield,開發者應與Llama模型或其他大語言模型一起部署這些保障措施。所有參考實現演示默認包含這些保障措施,使開發者能夠立即受益於系統級安全。
新功能和用例
- 技術進步:Llama的發佈通常會引入新功能,除了適用於所有生成式AI用例的最佳實踐外,還需要特定的考慮因素。對於Llama 3.2也支持的先前版本的功能,請參考Llama 3.1模型卡片。
- 圖像推理:Llama 3.2-Vision模型具有多模態(文本和圖像)輸入能力,支持圖像推理應用。在負責任的發佈過程中,採取了專門的措施,包括評估和緩解措施,以解決模型在圖像中唯一識別個人的風險。與其他大語言模型風險一樣,模型可能並不總是對對抗性提示具有魯棒性,開發者應在其應用的上下文中評估識別和其他適用風險,並考慮部署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訓練的額外語言。還與內容專家合作進行紅隊測試,評估潛在違規內容,同時考慮特定市場的細微差別或經驗。
- 網絡攻擊:對於Llama 3.1 405B,進行了網絡攻擊提升研究,以調查大語言模型是否能在技能水平和速度方面增強人類在黑客任務中的能力。攻擊自動化研究專注於評估大語言模型作為自主代理在網絡攻擊操作中的能力,特別是在勒索軟件攻擊的背景下。此評估與之前將大語言模型視為交互式助手的研究不同。主要目標是評估這些模型是否能在沒有人類干預的情況下有效執行復雜的網絡攻擊。由於Llama 3.2的視覺能力通常與網絡提升無關,因此認為對Llama 3.1進行的測試也適用於Llama 3.2。
社區
- 行業合作:生成式AI安全需要專業知識和工具,Meta相信開放社區的力量可以加速其發展。Meta是開放聯盟的積極成員,包括AI聯盟、AI合作組織和MLCommons,積極為安全標準化和透明度做出貢獻。鼓勵社區採用MLCommons概念驗證評估等分類法,以促進安全和內容評估的合作和透明度。Meta的Purple Llama工具已開源供社區使用,並廣泛分發給包括雲服務提供商在內的生態系統合作伙伴。鼓勵社區為Github倉庫做出貢獻。
- 資助:設立了Llama影響資助計劃,以識別和支持Meta的Llama模型在教育、氣候和開放創新三個類別中對社會有益的最有吸引力的應用。數百份申請中的20名決賽選手可在此處找到。
- 報告:建立了一套資源,包括輸出報告機制和漏洞賞金計劃,以在社區的幫助下不斷改進Llama技術。
倫理考慮和侷限性
價值觀
Llama 3.2的核心價值觀是開放性、包容性和有用性。它旨在為所有人服務,並適用於廣泛的用例。因此,它設計為對不同背景、經驗和觀點的人都可訪問。Llama 3.2尊重所有用戶的尊嚴和自主權,特別是在推動創新和進步的自由思想和表達價值觀方面,它以用戶的實際需求為導向,不插入不必要的判斷或規範性,同時認識到即使在某些情況下可能看起來有問題的內容,在其他情況下也可能有價值。
測試
Llama 3.2是一項新技術,與任何新技術一樣,其使用存在風險。到目前為止進行的測試未能涵蓋所有場景,也不可能涵蓋所有場景。因此,與所有大語言模型一樣,Llama 3.2的潛在輸出無法提前預測,模型在某些情況下可能會產生不準確、有偏見或其他令人反感的響應。因此,在部署Llama 3.2模型的任何應用之前,開發者應針對其特定應用進行安全測試和調整。請參考可用資源,包括負責任使用指南、信任和安全解決方案和其他資源,以瞭解更多關於負責任開發的信息。








