模型概述
模型特點
模型能力
使用案例
🚀 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-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
✨ 主要特性
- 多模態處理能力:支持文本和圖像輸入,能夠處理視覺識別、圖像推理、圖像描述和圖像問答等任務。
- 高性能表現:在行業基準測試中超越了許多開源和閉源的多模態模型。
- 廣泛的語言支持:對於純文本任務,官方支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語。
- 靈活的使用場景:可用於商業和研究用途,支持多種圖像推理任務,還能利用模型輸出來改進其他模型。
📦 安裝指南
使用 transformers 庫
確保通過以下命令更新你的 transformers 庫:
pip install --upgrade transformers
使用原始 llama
代碼庫
請遵循 倉庫 中的說明進行操作。
💻 使用示例
基礎用法
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.2-Vision 基於 Llama 3.1 純文本模型構建,採用優化的變壓器架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF)來符合人類對有用性和安全性的偏好。為支持圖像識別任務,模型使用了一個單獨訓練的視覺適配器,該適配器由一系列交叉注意力層組成,將圖像編碼器的表示輸入到核心大語言模型中。
屬性 | 詳情 |
---|---|
模型類型 | Llama 3.2-Vision 是一系列多模態大語言模型,有 11B 和 90B 兩種規模。 |
訓練數據 | 預訓練數據為 60 億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集以及超過 300 萬個合成生成的示例。 |
支持語言 | 對於純文本任務,官方支持英語、德語、法語、意大利語、葡萄牙語、印地語、西班牙語和泰語。對於圖像 + 文本應用,僅支持英語。 |
模型發佈日期 | 2024 年 9 月 25 日 |
狀態 | 這是一個基於離線數據集訓練的靜態模型,未來可能會發布改進模型能力和安全性的版本。 |
許可證 | 使用 Llama 3.2 受 Llama 3.2 社區許可證(自定義商業許可協議)的約束。 |
反饋 | 有關模型的問題或評論可參考模型 README。有關生成參數和如何在應用中使用 Llama 3.2-Vision 的更多技術信息,請參考 此處。 |
預期用途
預期用例
- 視覺問答(VQA)和視覺推理:能夠理解圖像並回答相關問題。
- 文檔視覺問答(DocVQA):理解文檔的文本和佈局,並直接從圖像中回答問題。
- 圖像描述:提取圖像細節,理解場景,並生成描述性文本。
- 圖像 - 文本檢索:類似於搜索引擎,能夠理解圖像和文本,並進行匹配。
- 視覺定位:根據自然語言描述,在圖像中定位特定對象或區域。
此外,Llama 3.2 模型系列還支持利用其模型輸出來改進其他模型,包括合成數據生成和蒸餾。
超出範圍
禁止以任何違反適用法律法規(包括貿易合規法律)的方式使用,以及違反可接受使用政策和 Llama 3.2 社區許可證的其他方式使用。同時,禁止在本模型卡未明確支持的語言中使用。
硬件和軟件
訓練因素
使用自定義訓練庫、Meta 定製的 GPU 集群和生產基礎設施進行預訓練。微調、標註和評估也在生產基礎設施上進行。
訓練能源使用
訓練總共使用了 202 萬個 H100-80GB(TDP 為 700W)類型硬件的 GPU 小時計算量。訓練時間是每個模型訓練所需的總 GPU 時間,功耗是每個 GPU 設備的峰值功率容量,並根據功率使用效率進行了調整。
訓練溫室氣體排放
估計基於位置的總溫室氣體排放量為 584 噸 CO2eq。自 2020 年以來,Meta 在全球運營中保持淨零溫室氣體排放,並以可再生能源匹配 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 |
確定訓練能源使用和溫室氣體排放的方法可參考 此處。由於 Meta 公開發布了這些模型,其他人不會產生訓練能源使用和溫室氣體排放。
基準測試 - 圖像推理
基礎預訓練模型
類別 | 基準測試 | 樣本數 | 指標 | 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(測試迷你集) | 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 |
責任與安全
負責任的部署
Meta 採用三管齊下的策略來管理信任和安全風險:
- 使開發人員能夠為其目標受眾和 Llama 支持的用例部署有用、安全和靈活的體驗。
- 保護開發人員免受試圖利用 Llama 功能造成潛在危害的惡意用戶的侵害。
- 為社區提供保護,防止模型被濫用。
Llama 3.2 指令微調
- 目標:為研究社區提供研究安全微調魯棒性的有價值資源,為開發人員提供一個現成、安全且強大的模型,以減少部署安全人工智能系統的工作量。
- 微調數據:採用多方面的數據收集方法,結合供應商提供的人類生成數據和合成數據,以減輕潛在的安全風險。開發了許多基於大語言模型(LLM)的分類器,以精心選擇高質量的提示和響應,提高數據質量控制。
- 拒絕和語氣:在 Llama 3 的基礎上,更加註重模型對良性提示的拒絕以及拒絕語氣。在安全數據策略中包括了邊界和對抗性提示,並修改安全數據響應以遵循語氣指南。
Llama 3.2 系統
大型語言模型(包括 Llama 3.2)不應單獨部署,而應作為整體人工智能系統的一部分,並根據需要添加額外的安全護欄。開發人員在構建代理系統時應部署系統保護措施,這些保護措施對於實現正確的有用性 - 安全性平衡以及減輕系統固有的安全和風險至關重要。作為負責任發佈方法的一部分,Meta 為社區提供了 保護措施,包括 Llama Guard、Prompt Guard 和 Code Shield。所有 參考實現 演示默認包含這些保護措施,使開發人員能夠立即受益於系統級安全。
新功能和用例
Llama 3.2-Vision 模型具有多模態(文本和圖像)輸入能力,支持圖像推理應用。在負責任的發佈過程中,採取了專門的措施,包括評估和緩解措施,以解決模型在圖像中唯一識別個人的風險。與其他大語言模型風險一樣,模型可能並不總是對對抗性提示具有魯棒性,開發人員應在其應用背景下評估識別和其他適用風險,並考慮部署 Llama Guard 3-11B-Vision 或其他適當的緩解措施來檢測和減輕這些風險。
評估
- 大規模評估:構建了專門的對抗性評估數據集,並評估了由 Llama 模型和 Purple Llama 保護措施組成的系統,以過濾輸入提示和輸出響應。建議為特定用例構建專門的評估數據集。
- 紅隊測試:定期進行紅隊測試,通過對抗性提示發現風險,並利用這些經驗教訓改進基準測試和安全調優數據集。與關鍵風險領域的專家合作,瞭解現實世界危害的性質以及模型可能對社會造成的意外危害。根據這些討論,為紅隊制定了一系列對抗性目標,例如提取有害信息或重新編程模型以進行潛在的有害操作。紅隊由網絡安全、對抗性機器學習、負責任人工智能和內容完整性專家組成,以及在特定地理市場具有內容完整性背景的多語言專家。
關鍵風險
除了上述安全工作外,還特別關注以下關鍵風險領域的測量和緩解:
- 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,進行了網絡攻擊提升研究,調查大語言模型是否能提高人類在黑客任務中的能力,包括技能水平和速度。攻擊自動化研究專注於評估大語言模型作為自主代理在網絡攻擊操作中的能力,特別是在勒索軟件攻擊的背景下。由於 Llama 3.2 的視覺能力通常與網絡提升無關,因此認為對 Llama 3.1 進行的測試也適用於 Llama 3.2。
社區
- 行業合作:積極參與開放聯盟,包括 AI Alliance、Partnership on AI 和 MLCommons,為安全標準化和透明度做出貢獻。鼓勵社區採用 MLCommons 概念驗證評估等分類法,以促進安全和內容評估的協作和透明度。Purple Llama 工具已開源,供社區使用,並廣泛分發給包括雲服務提供商在內的生態系統合作伙伴。鼓勵社區為 Github 倉庫 做出貢獻。
- 資助計劃:設立了 Llama 影響資助 計劃,以識別和支持 Meta 的 Llama 模型在教育、氣候和開放創新三個類別中的最有價值應用。數百份申請中的 20 名決賽選手可在 此處 查看。
- 反饋機制:建立了一系列資源,包括 輸出報告機制 和 漏洞賞金計劃,以在社區的幫助下不斷改進 Llama 技術。
倫理考慮和侷限性
價值觀
Llama 3.2 的核心價值觀是開放性、包容性和有用性。旨在為所有人服務,適用於廣泛的用例。因此,設計為對不同背景、經驗和觀點的人都可訪問。Llama 3.2 以用戶的實際需求為出發點,不插入不必要的判斷或規範性,同時認識到即使在某些情況下可能存在問題的內容,在其他情況下也可能有價值。尊重所有用戶的尊嚴和自主性,特別是在推動創新和進步的自由思想和表達價值觀方面。
測試
Llama 3.2 是一項新技術,與任何新技術一樣,使用過程中存在風險。到目前為止進行的測試無法涵蓋所有場景。因此,與所有大語言模型一樣,Llama 3.2 的潛在輸出無法提前預測,模型在某些情況下可能會產生不準確、有偏見或其他令人反感的響應。在部署 Llama 3.2 模型的任何應用之前,開發人員應針對特定應用進行安全測試和微調。請參考可用資源,包括 負責任使用指南、信任和安全 解決方案以及其他 資源,以瞭解更多關於負責任開發的信息。
🔧 技術細節
模型架構
Llama 3.2-Vision 基於 Llama 3.1 純文本模型構建,採用優化的變壓器架構。微調版本使用監督微調(SFT)和基於人類反饋的強化學習(RLHF)來符合人類對有用性和安全性的偏好。為支持圖像識別任務,模型使用了一個單獨訓練的視覺適配器,該適配器由一系列交叉注意力層組成,將圖像編碼器的表示輸入到核心大語言模型中。
訓練數據
預訓練數據為 60 億個圖像和文本對,指令微調數據包括公開可用的視覺指令數據集以及超過 300 萬個合成生成的示例。
訓練方法
使用自定義訓練庫、Meta 定製的 GPU 集群和生產基礎設施進行預訓練。微調、標註和評估也在生產基礎設施上進行。訓練總共使用了 202 萬個 H100-80GB(TDP 為 700W)類型硬件的 GPU 小時計算量。
📄 許可證
使用 Llama 3.2 受 Llama 3.2 社區許可證(自定義商業許可協議)的約束。
⚠️ 重要提示
使用 Llama 3.2 時,請遵守適用法律法規和可接受使用政策,避免在本模型卡未明確支持的語言中使用。
💡 使用建議
在部署 Llama 3.2 模型的任何應用之前,建議針對特定應用進行安全測試和微調,並參考相關資源進行負責任的開發。








