模型概述
模型特點
模型能力
使用案例
🚀 Phi-3.5-vision
Phi-3.5-vision是一款輕量級、先進的開源多模態模型,基於包含合成數據和過濾後的公開網站數據進行構建,專注於高質量、富含推理的文本和視覺數據。該模型屬於Phi-3模型家族,多模態版本支持128K上下文長度(以token為單位)。經過嚴格的增強過程,結合監督微調與直接偏好優化,確保精確遵循指令和強大的安全措施。
🚀 快速開始
模型概述
Phi-3.5-vision是基於特定數據集構建的輕量級、先進的開源多模態模型,屬於Phi-3模型家族,多模態版本支持128K上下文長度。它經過嚴格增強,確保精確遵循指令和強大的安全措施。
Phi-3.5:[mini-instruct];[MoE-instruct] ;[vision-instruct]
預期用途
主要用例
該模型旨在廣泛應用於英語的商業和研究領域。適用於具有視覺和文本輸入能力的通用人工智能系統和應用,具體需求如下:
- 內存/計算受限的環境
- 低延遲場景
- 通用圖像理解
- 光學字符識別
- 圖表和表格理解
- 多圖像比較
- 多圖像或視頻剪輯摘要
該模型旨在加速語言和多模態模型的研究,作為生成式AI功能的構建模塊。
用例考慮因素
該模型並非專門為所有下游用途而設計或評估。開發者在選擇用例時應考慮語言模型的常見侷限性,並在特定下游用例中使用之前評估和減輕準確性、安全性和公平性問題,特別是在高風險場景中。開發者應瞭解並遵守與其用例相關的適用法律或法規(包括隱私、貿易合規法等)。
⚠️ 重要提示
本模型卡片中的任何內容均不應被解釋為或視為對模型發佈所依據的許可證的限制或修改。
發佈說明
在本次發佈中,該模型基於寶貴的客戶反饋,實現了多幀圖像理解和推理功能。主要的多幀能力示例包括詳細的圖像比較、多圖像摘要/講故事和視頻摘要,這些功能在辦公場景中具有廣泛的應用。在大多數單圖像基準測試中,我們也觀察到了性能提升,例如將MMMU性能從40.2提升到43.0,MMBench性能從80.5提升到81.9,文檔理解基準TextVQA從70.9提升到72.0。我們相信大多數用例都將從本次發佈中受益,但鼓勵用戶在其AI應用中測試新模型。我們感謝對Phi-3模型家族的熱情采用,並繼續歡迎社區的所有反饋。
以下是在現有多圖像基準測試中的比較結果。平均而言,我們的模型在相同規模上優於競爭模型,並且在多幀能力和視頻摘要方面與更大的模型具有競爭力。
BLINK:一個包含14個視覺任務的基準測試,人類可以快速解決這些任務,但當前的多模態大語言模型仍然難以應對。
基準測試 | Phi-3.5-vision-instruct | LlaVA-Interleave-Qwen-7B | InternVL-2-4B | InternVL-2-8B | Gemini-1.5-Flash | GPT-4o-mini | Claude-3.5-Sonnet | Gemini-1.5-Pro | GPT-4o |
---|---|---|---|---|---|---|---|---|---|
藝術風格 | 87.2 | 62.4 | 55.6 | 52.1 | 64.1 | 70.1 | 59.8 | 70.9 | 73.3 |
計數 | 54.2 | 56.7 | 54.2 | 66.7 | 51.7 | 55.0 | 59.2 | 65.0 | 65.0 |
法醫檢測 | 92.4 | 31.1 | 40.9 | 34.1 | 54.5 | 38.6 | 67.4 | 60.6 | 75.8 |
功能對應 | 29.2 | 34.6 | 24.6 | 24.6 | 33.1 | 26.9 | 33.8 | 31.5 | 43.8 |
IQ測試 | 25.3 | 26.7 | 26.0 | 30.7 | 25.3 | 29.3 | 26.0 | 34.0 | 19.3 |
拼圖 | 68.0 | 86.0 | 55.3 | 52.7 | 71.3 | 72.7 | 57.3 | 68.0 | 67.3 |
多視圖推理 | 54.1 | 44.4 | 48.9 | 42.9 | 48.9 | 48.1 | 55.6 | 49.6 | 46.6 |
目標定位 | 49.2 | 54.9 | 53.3 | 54.1 | 44.3 | 57.4 | 62.3 | 65.6 | 68.0 |
相對深度 | 69.4 | 77.4 | 63.7 | 67.7 | 57.3 | 58.1 | 71.8 | 76.6 | 71.0 |
相對反射率 | 37.3 | 34.3 | 32.8 | 38.8 | 32.8 | 27.6 | 36.6 | 38.8 | 40.3 |
語義對應 | 36.7 | 31.7 | 31.7 | 22.3 | 32.4 | 31.7 | 45.3 | 48.9 | 54.0 |
空間關係 | 65.7 | 75.5 | 78.3 | 78.3 | 55.9 | 81.1 | 60.1 | 79.0 | 84.6 |
視覺對應 | 53.5 | 40.7 | 34.9 | 33.1 | 29.7 | 52.9 | 72.1 | 81.4 | 86.0 |
視覺相似度 | 83.0 | 91.9 | 48.1 | 45.2 | 47.4 | 77.8 | 84.4 | 81.5 | 88.1 |
總體 | 57.0 | 53.1 | 45.9 | 45.4 | 45.8 | 51.9 | 56.5 | 61.0 | 63.2 |
Video-MME:全面評估多模態大語言模型處理視頻數據的能力,涵蓋廣泛的視覺領域、時間長度和數據模態。
基準測試 | Phi-3.5-vision-instruct | LlaVA-Interleave-Qwen-7B | InternVL-2-4B | InternVL-2-8B | Gemini-1.5-Flash | GPT-4o-mini | Claude-3.5-Sonnet | Gemini-1.5-Pro | GPT-4o |
---|---|---|---|---|---|---|---|---|---|
短(<2分鐘) | 60.8 | 62.3 | 60.7 | 61.7 | 72.2 | 70.1 | 66.3 | 73.3 | 77.7 |
中(4 - 15分鐘) | 47.7 | 47.1 | 46.4 | 49.6 | 62.7 | 59.6 | 54.7 | 61.2 | 68.0 |
長(30 - 60分鐘) | 43.8 | 41.2 | 42.6 | 46.6 | 52.1 | 53.9 | 46.6 | 53.2 | 59.6 |
總體 | 50.8 | 50.2 | 49.9 | 52.6 | 62.3 | 61.2 | 55.9 | 62.6 | 68.4 |
使用方法
要求
可以使用以下命令驗證當前transformers
版本:pip list | grep transformers
。
所需包的示例:
flash_attn==2.5.8
numpy==1.24.4
Pillow==10.3.0
Requests==2.31.0
torch==2.3.0
torchvision==0.18.0
transformers==4.43.0
accelerate==0.30.0
Phi-3.5-vision-Instruct也可在Azure AI Studio中使用。
輸入格式
鑑於訓練數據的性質,Phi-3.5-vision模型最適合使用以下聊天格式的提示:
單圖像:
<|user|>\n<|image_1|>\n{prompt}<|end|>\n<|assistant|>\n
多輪對話:
<|user|>\n<|image_1|>\n{prompt_1}<|end|>\n<|assistant|>\n{response_1}<|end|>\n<|user|>\n{prompt_2}<|end|>\n<|assistant|>\n
對於多圖像使用場景,在提示的前面添加多個圖像佔位符。<|image_{}|>索引應從1開始。以下是一個提示示例:
<|user|>\n<|image_1|>\n<|image_2|>\n<|image_3|>\n<|image_4|>\n{prompt}<|end|>\n<|assistant|>\n
本地加載模型
獲取Phi-3.5-vision-instruct模型檢查點後,用戶可以使用以下示例代碼進行推理。
from PIL import Image
import requests
from transformers import AutoModelForCausalLM
from transformers import AutoProcessor
model_id = "microsoft/Phi-3.5-vision-instruct"
# Note: set _attn_implementation='eager' if you don't have flash_attn installed
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
trust_remote_code=True,
torch_dtype="auto",
_attn_implementation='flash_attention_2'
)
# for best performance, use num_crops=4 for multi-frame, num_crops=16 for single-frame.
processor = AutoProcessor.from_pretrained(model_id,
trust_remote_code=True,
num_crops=4
)
images = []
placeholder = ""
# Note: if OOM, you might consider reduce number of frames in this example.
for i in range(1,20):
url = f"https://image.slidesharecdn.com/azureintroduction-191206101932/75/Introduction-to-Microsoft-Azure-Cloud-{i}-2048.jpg"
images.append(Image.open(requests.get(url, stream=True).raw))
placeholder += f"<|image_{i}|>\n"
messages = [
{"role": "user", "content": placeholder+"Summarize the deck of slides."},
]
prompt = processor.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
inputs = processor(prompt, images, return_tensors="pt").to("cuda:0")
generation_args = {
"max_new_tokens": 1000,
"temperature": 0.0,
"do_sample": False,
}
generate_ids = model.generate(**inputs,
eos_token_id=processor.tokenizer.eos_token_id,
**generation_args
)
# remove input tokens
generate_ids = generate_ids[:, inputs['input_ids'].shape[1]:]
response = processor.batch_decode(generate_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False)[0]
print(response)
注意:
- 為了獲得最佳性能,建議多幀設置
num_crops=4
,單幀設置num_crops=16
。 - 若要關閉
flash_attention
,可以設置_attn_implementation='eager'
。
負責任的AI考慮因素
與其他模型一樣,Phi系列模型可能會出現不公平、不可靠或冒犯性的行為。需要注意的一些限制行為包括:
- 服務質量:Phi模型主要在英語文本上進行訓練。非英語語言的性能會較差。訓練數據中代表性較少的英語變體的性能可能比標準美式英語更差。
- 傷害表徵與刻板印象延續:這些模型可能會過度或不足地代表某些人群,抹去某些群體的代表性,或強化貶低性或負面的刻板印象。儘管進行了安全後訓練,但由於不同群體的代表性水平不同,或者訓練數據中反映現實世界模式和社會偏見的負面刻板印象示例普遍存在,這些限制可能仍然存在。
- 不適當或冒犯性內容:這些模型可能會產生其他類型的不適當或冒犯性內容,在沒有針對特定用例的額外緩解措施的情況下,可能不適合在敏感環境中部署。
- 信息可靠性:語言模型可能會生成無意義的內容或編造聽起來合理但不準確或過時的內容。
- 代碼範圍有限:Phi-3的大部分訓練數據基於Python,並使用常見的包,如"typing, math, random, collections, datetime, itertools"。如果模型生成的Python腳本使用其他包或其他語言的腳本,我們強烈建議用戶手動驗證所有API的使用。
開發者應應用負責任的AI最佳實踐,並負責確保特定用例符合相關法律法規(如隱私、貿易等)。需要考慮的重要領域包括:
- 分配:在沒有進一步評估和額外去偏技術的情況下,模型可能不適用於對法律地位、資源分配或生活機會(如住房、就業、信貸等)有重大影響的場景。
- 高風險場景:開發者應評估在高風險場景中使用模型的適用性,在這些場景中,不公平、不可靠或冒犯性的輸出可能會造成極大的代價或導致傷害。這包括在敏感或專業領域提供建議,其中準確性和可靠性至關重要(如法律或健康建議)。應根據部署上下文在應用層面實施額外的保障措施。
- 錯誤信息:模型可能會產生不準確的信息。開發者應遵循透明度最佳實踐,並告知最終用戶他們正在與AI系統進行交互。在應用層面,開發者可以構建反饋機制和管道,將響應與特定用例的上下文信息相結合,這種技術稱為檢索增強生成(RAG)。
- 有害內容生成:開發者應根據上下文評估輸出,並使用適用於其用例的可用安全分類器或自定義解決方案。
- 濫用:可能存在其他形式的濫用,如欺詐、垃圾郵件或惡意軟件生產,開發者應確保其應用不違反適用的法律法規。
- 個人識別:具有視覺能力的模型可能有能力在圖像中唯一識別個人。安全後訓練會引導模型拒絕此類請求,但開發者應根據各自司法管轄區的要求,酌情考慮並實施額外的緩解措施或用戶同意流程(例如,在處理圖像輸入之前採取措施模糊面部)。
訓練
模型
屬性 | 詳情 |
---|---|
架構 | Phi-3.5-vision有42億個參數,包含圖像編碼器、連接器、投影儀和Phi-3 Mini語言模型 |
輸入 | 文本和圖像。最適合使用聊天格式的提示 |
上下文長度 | 128K個token |
GPU | 256個A100 - 80G |
訓練時間 | 6天 |
訓練數據 | 5000億個token(視覺token + 文本token) |
輸出 | 對輸入做出響應的生成文本 |
日期 | 2024年7月至8月進行訓練 |
狀態 | 這是一個基於截止日期為2024年3月15日的離線文本數據集訓練的靜態模型。隨著模型的改進,未來可能會發布調整後模型的新版本 |
發佈日期 | 2024年8月 |
數據概述
訓練數據包括多種來源,是以下數據的組合:
- 經過嚴格質量過濾的公開可用文檔、精選的高質量教育數據和代碼
- 精選的高質量圖像 - 文本交錯數據
- 為教授數學、編碼、常識推理、世界常識(科學、日常活動、心智理論等)而新創建的合成“教科書式”數據,新創建的圖像數據,如圖表/表格/圖表/幻燈片,新創建的多圖像和視頻數據,如短視頻剪輯/一對相似的圖像
- 高質量的聊天格式監督數據,涵蓋各種主題,以反映人類在遵循指令、真實性、誠實性和有用性等不同方面的偏好
數據收集過程涉及從公開可用文檔中獲取信息,並精心過濾掉不需要的文檔和圖像。為了保護隱私,我們仔細過濾了各種圖像和文本數據源,以從訓練數據中刪除或清理任何潛在的個人數據。有關數據的更多詳細信息,請參閱Phi-3 Technical Report。
如何微調
建議用戶查看Phi-3 CookBook finetuning recipe for Vision。
基準測試
為了瞭解模型的能力,我們使用內部基準測試平臺,在各種零樣本基準測試中,將Phi-3.5-vision與一組模型進行了比較。以下是該模型在代表性基準測試中的質量概述:
類別 | 基準測試 | Phi-3.5-vision-instruct | Intern-VL-2-4B | Intern-VL-2-8B | Gemini-1.5-Flash | GPT-4o-mini 2024-7-18 | Claude-3.5-Sonnet | Gemini-1.5-Pro | GPT-4o 2024-5-13 |
---|---|---|---|---|---|---|---|---|---|
流行聚合基準 | MMMU(驗證集) | 43.0 | 44.22 | 46.33 | 49.33 | 52.1 | 52.67 | 54.11 | 61.78 |
MMBench(開發集 - 英語) | 81.9 | 83.4 | 87.0 | 85.7 | 83.8 | 82.3 | 87.9 | 88.4 | |
視覺科學知識推理 | ScienceQA(圖像測試集) | 91.3 | 94.9 | 95.9 | 84.5 | 84.0 | 73.8 | 86.0 | 88.5 |
視覺數學推理 | MathVista(測試迷你集) | 43.9 | 53.7 | 51.1 | 55.3 | 38.8 | 54.0 | 57.4 | 54.4 |
InterGPS(測試集) | 36.3 | 45.6 | 53.2 | 39.4 | 39.9 | 45.6 | 58.2 | 46.9 | |
圖表推理 | AI2D(測試集) | 78.1 | 77.3 | 81.4 | 78.4 | 75.2 | 68.9 | 75.6 | 82.8 |
ChartQA(測試集) | 81.8 | 78.8 | 80.4 | 57.6 | 54.5 | 73.2 | 68.2 | 64.0 | |
文檔智能 | TextVQA(驗證集) | 72.0 | 66.2 | 68.8 | 67.4 | 70.9 | 70.5 | 64.5 | 75.6 |
目標視覺存在驗證 | POPE(測試集) | 86.1 | 83.3 | 84.2 | 86.1 | 83.6 | 76.6 | 89.3 | 87.0 |
安全評估和紅隊測試
方法
Phi-3系列模型採用了強大的安全後訓練方法。該方法利用了各種開源和內部生成的數據集。用於進行安全對齊的總體技術是監督微調(SFT)和基於人類反饋的強化學習(RLHF)方法的結合,通過利用人工標註和合成的英語數據集,包括專注於有用性和無害性的公開可用數據集,以及針對多個安全類別的各種問答。
安全評估
我們利用各種評估技術,包括紅隊測試、對抗性對話模擬和安全評估基準數據集,來評估Phi-3.5模型在多個風險類別中產生不良輸出的傾向。採用了多種方法來彌補單一方法的侷限性。有關安全對齊的更多詳細信息,請參閱技術報告。
軟件
硬件
默認情況下,Phi-3.5-Mini-Instruct模型使用flash attention,這需要特定類型的GPU硬件才能運行。我們在以下GPU類型上進行了測試:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
許可證
該模型根據MIT許可證發佈。
商標
本項目可能包含項目、產品或服務的商標或標誌。經授權使用微軟商標或標誌需遵守並必須遵循Microsoft的商標和品牌指南。在本項目的修改版本中使用微軟商標或標誌不得造成混淆或暗示微軟的贊助。任何第三方商標或標誌的使用均需遵守這些第三方的政策。








