模型概述
模型特點
模型能力
使用案例
🚀 Phi-3-Medium-4K-Instruct
Phi-3-Medium-4K-Instruct是一個輕量級的開源模型,擁有140億參數。它基於Phi-3數據集進行訓練,在常識、語言理解、數學、代碼、長上下文和邏輯推理等基準測試中表現出色,適用於對內存、計算資源和延遲有要求的場景。
🚀 快速開始
Phi-3-Medium-4K-Instruct已集成到transformers
的開發版本(4.40.2)中。在通過pip
發佈官方版本之前,請確保執行以下操作之一:
- 加載模型時,確保在
from_pretrained()
函數的參數中傳入trust_remote_code=True
。 - 將本地的
transformers
更新到開發版本:pip uninstall -y transformers && pip install git+https://github.com/huggingface/transformers
。此命令是從源代碼克隆和安裝的替代方法。
可以使用以下命令驗證當前的transformers
版本:pip list | grep transformers
。
Phi-3-Medium-4K-Instruct也可在 Azure AI Studio 中使用。
🔧 分詞器
Phi-3-Medium-4K-Instruct支持最大32064
個標記的詞彙表。分詞器文件 已經提供了可用於下游微調的佔位符標記,也可以將其擴展到模型的詞彙表大小。
💬 聊天格式
鑑於訓練數據的性質,Phi-3-Medium-4K-Instruct模型最適合使用以下聊天格式的提示。可以按照以下通用模板將提示作為問題提供:
<|user|>\nQuestion <|end|>\n<|assistant|>
例如:
<|user|>
How to explain Internet for a medieval knight?<|end|>
<|assistant|>
模型將在<|assistant|>
之後生成文本。在少樣本提示的情況下,提示可以按以下格式設置:
<|user|>
I am going to Paris, what should I see?<|end|>
<|assistant|>
Paris, the capital of France, is known for its stunning architecture, art museums, historical landmarks, and romantic atmosphere. Here are some of the top attractions to see in Paris:\n\n1. The Eiffel Tower: The iconic Eiffel Tower is one of the most recognizable landmarks in the world and offers breathtaking views of the city.\n2. The Louvre Museum: The Louvre is one of the world's largest and most famous museums, housing an impressive collection of art and artifacts, including the Mona Lisa.\n3. Notre-Dame Cathedral: This beautiful cathedral is one of the most famous landmarks in Paris and is known for its Gothic architecture and stunning stained glass windows.\n\nThese are just a few of the many attractions that Paris has to offer. With so much to see and do, it's no wonder that Paris is one of the most popular tourist destinations in the world."<|end|>
<|user|>
What is so great about #1?<|assistant|>
💻 使用示例
基礎用法
以下代碼片段展示瞭如何在GPU上快速運行該模型:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model_id = "microsoft/Phi-3-medium-4k-instruct"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "user", "content": "Can you provide ways to eat combinations of bananas and dragonfruits?"},
{"role": "assistant", "content": "Sure! Here are some ways to eat bananas and dragonfruits together: 1. Banana and dragonfruit smoothie: Blend bananas and dragonfruits together with some milk and honey. 2. Banana and dragonfruit salad: Mix sliced bananas and dragonfruits together with some lemon juice and honey."},
{"role": "user", "content": "What about solving an 2x + 3 = 7 equation?"},
]
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
)
generation_args = {
"max_new_tokens": 500,
"return_full_text": False,
"temperature": 0.0,
"do_sample": False,
}
output = pipe(messages, **generation_args)
print(output[0]['generated_text'])
⚠️ 重要提示
一些應用程序/框架可能不會在對話開始時包含BOS標記 (
<s>
)。請確保包含該標記,因為這樣可以獲得更可靠的結果。
✨ 主要特性
- 輕量級高性能:擁有140億參數,在同規模及更大規模的模型中表現出色。
- 多場景適用:適用於內存/計算受限的環境、低延遲場景以及需要強大推理能力(特別是代碼、數學和邏輯方面)的場景。
- 支持多語言:訓練數據包含10%的多語言數據。
📚 詳細文檔
模型概述
Phi-3-Medium-4K-Instruct是一個擁有140億參數的輕量級、先進的開源模型,基於Phi-3數據集進行訓練。該數據集包含合成數據和經過篩選的公開網站數據,注重高質量和推理密集特性。
該模型屬於Phi-3系列的中等版本,有兩種變體:4K 和 128K,分別表示其支持的上下文長度(以標記為單位)。
模型經過了後訓練過程,包括監督微調(SFT)和直接偏好優化(DPO),以確保其遵循指令和安全性。
預期用途
主要用例
該模型旨在廣泛用於英語的商業和研究領域。適用於需要以下條件的通用人工智能系統和應用程序:
- 內存/計算受限的環境
- 低延遲場景
- 強大的推理能力(特別是代碼、數學和邏輯方面)
該模型旨在加速語言和多模態模型的研究,作為生成式人工智能功能的構建塊。
用例考慮因素
該模型並非專門為所有下游用途設計或評估。開發者在選擇用例時應考慮語言模型的常見侷限性,並在特定下游用例中使用之前評估和減輕準確性、安全性和公平性方面的問題,特別是在高風險場景中。開發者應瞭解並遵守與其用例相關的適用法律或法規(包括隱私、貿易合規法等)。
本模型卡片中的任何內容均不應被解釋為或視為對模型發佈所依據的許可證的限制或修改。
負責任的人工智能考慮因素
與其他語言模型一樣,Phi系列模型可能會表現出不公平、不可靠或冒犯性的行為。需要注意的一些限制行為包括:
- 服務質量:Phi模型主要在英語文本上進行訓練。非英語語言的性能會較差。訓練數據中代表性較少的英語變體的性能可能比標準美式英語更差。
- 傷害表示與刻板印象的延續:這些模型可能會過度或不足地代表某些人群,抹去某些群體的代表性,或強化貶低性或負面的刻板印象。儘管經過了安全後訓練,但由於不同群體的代表性水平不同或訓練數據中反映現實世界模式和社會偏見的負面刻板印象示例普遍存在,這些限制可能仍然存在。
- 不適當或冒犯性內容:這些模型可能會產生其他類型的不適當或冒犯性內容,在沒有針對特定用例進行額外緩解措施的情況下,可能不適合在敏感環境中部署。
- 信息可靠性:語言模型可能會生成無意義的內容或編造聽起來合理但不準確或過時的內容。
- 代碼範圍有限:Phi-3的大部分訓練數據基於Python,並使用常見的包,如 "typing, math, random, collections, datetime, itertools"。如果模型生成的Python腳本使用其他包或其他語言的腳本,強烈建議用戶手動驗證所有API的使用。
開發者應應用負責任的人工智能最佳實踐,並負責確保特定用例符合相關法律法規(如隱私、貿易等)。需要考慮的重要領域包括:
- 分配:在沒有進一步評估和額外去偏技術的情況下,模型可能不適用於對法律地位、資源分配或生活機會(如住房、就業、信貸等)有重大影響的場景。
- 高風險場景:開發者應評估在高風險場景中使用模型的適用性,在這些場景中,不公平、不可靠或冒犯性的輸出可能會造成極高的成本或導致傷害。這包括在敏感或專業領域提供建議,其中準確性和可靠性至關重要(如法律或健康建議)。應根據部署上下文在應用程序級別實施額外的保障措施。
- 錯誤信息:模型可能會產生不準確的信息。開發者應遵循透明度最佳實踐,並告知最終用戶他們正在與人工智能系統進行交互。在應用程序級別,開發者可以構建反饋機制和管道,將響應基於特定用例的上下文信息,這種技術稱為檢索增強生成(RAG)。
- 有害內容生成:開發者應根據上下文評估輸出,並使用適合其用例的可用安全分類器或自定義解決方案。
- 濫用:可能存在其他形式的濫用,如欺詐、垃圾郵件或惡意軟件生產,開發者應確保其應用程序不違反適用的法律法規。
訓練
模型
- 架構:Phi-3-Medium-4K-Instruct有140億參數,是一個密集的僅解碼器Transformer模型。該模型通過監督微調(SFT)和直接偏好優化(DPO)進行微調,以確保與人類偏好和安全指南保持一致。
- 輸入:文本。最適合使用聊天格式的提示。
- 上下文長度:4K標記
- GPU:512個H100 - 80G
- 訓練時間:42天
- 訓練數據:4.8萬億標記
- 輸出:對輸入的生成文本響應
- 日期:我們的模型在2024年2月至4月之間進行訓練。
- 狀態:這是一個基於截止日期為2023年10月的離線數據集訓練的靜態模型。隨著模型的改進,可能會發布調優模型的未來版本。
- 發佈日期:模型權重於2024年5月21日發佈。
數據集
我們的訓練數據包括各種來源,總計4.8萬億標記(包括10%的多語言數據),是以下數據的組合:
- 經過嚴格質量篩選的公開可用文檔、選定的高質量教育數據和代碼。
- 為了教授數學、編碼、常識推理、世界常識(科學、日常活動、心智理論等)而新創建的合成的、“教科書式”的數據。
- 涵蓋各種主題的高質量聊天格式監督數據,以反映人類在指令遵循、真實性、誠實性和有用性等不同方面的偏好。
我們專注於可能提高模型推理能力的數據質量,並篩選公開可用文檔以包含正確水平的知識。例如,某一天英超聯賽的比賽結果可能是前沿模型的良好訓練數據,但對於小尺寸模型,我們需要去除此類信息,以便為推理留出更多的模型容量。有關數據的更多詳細信息,請參閱 Phi-3技術報告。
基準測試
我們報告了Phi-3-Medium-4K-Instruct在標準開源基準測試中的結果,這些測試衡量了模型的推理能力(包括常識推理和邏輯推理)。我們將其與Mixtral - 8x22b、Gemini - Pro、Command R + 104B、Llama - 3 - 70B - Instruct、GPT - 3.5 - Turbo - 1106和GPT - 4 - Turbo - 1106(Chat)進行了比較。
所有報告的數字都是使用完全相同的管道生成的,以確保數字具有可比性。由於評估中的細微差異,這些數字可能與其他發佈的數字不同。
按照目前的標準,我們使用少樣本提示在溫度為0的情況下評估模型。提示和少樣本數量是微軟內部評估語言模型工具的一部分,特別是我們沒有對Phi - 3的管道進行優化。更具體地說,我們沒有更改提示、選擇不同的少樣本示例、更改提示格式或對模型進行任何其他形式的優化。
每個基準測試的少樣本示例數量如下表所示:
基準測試 | Phi-3-Medium-4K-Instruct 14b |
Command R+ 104B |
Mixtral 8x22B |
Llama-3-70B-Instruct | GPT3.5-Turbo version 1106 |
Gemini Pro |
GPT-4-Turbo version 1106 (Chat) |
---|---|---|---|---|---|---|---|
AGI Eval 5-shot |
50.2 | 50.1 | 54.0 | 56.9 | 48.4 | 49.0 | 59.6 |
MMLU 5-shot |
78.0 | 73.8 | 76.2 | 80.2 | 71.4 | 66.7 | 84.0 |
BigBench Hard 3-shot |
81.4 | 74.1 | 81.8 | 80.4 | 68.3 | 75.6 | 87.7 |
ANLI 7-shot |
55.8 | 63.4 | 65.2 | 68.3 | 58.1 | 64.2 | 71.7 |
HellaSwag 5-shot |
82.4 | 78.0 | 79.0 | 82.6 | 78.8 | 76.2 | 88.3 |
ARC Challenge 10-shot |
91.6 | 86.9 | 91.3 | 93.0 | 87.4 | 88.3 | 95.6 |
ARC Easy 10-shot |
97.7 | 95.7 | 96.9 | 98.2 | 96.3 | 96.1 | 98.8 |
BoolQ 2-shot |
86.5 | 86.1 | 82.7 | 89.1 | 79.1 | 86.4 | 91.3 |
CommonsenseQA 10-shot |
82.8 | 82.0 | 82.0 | 84.4 | 79.6 | 81.8 | 86.7 |
MedQA 2-shot |
69.9 | 59.2 | 67.9 | 78.5 | 63.4 | 58.2 | 83.7 |
OpenBookQA 10-shot |
87.4 | 86.8 | 88.6 | 91.8 | 86.0 | 86.4 | 93.4 |
PIQA 5-shot |
87.9 | 86.4 | 85.0 | 85.3 | 86.6 | 86.2 | 90.1 |
Social IQA 5-shot |
80.2 | 75.3 | 78.2 | 81.1 | 68.3 | 75.4 | 81.7 |
TruthfulQA (MC2) 10-shot |
75.1 | 57.8 | 67.4 | 81.9 | 67.7 | 72.6 | 85.2 |
WinoGrande 5-shot |
81.5 | 77.0 | 75.3 | 83.3 | 68.8 | 72.2 | 86.7 |
TriviaQA 5-shot |
73.9 | 82.8 | 84.5 | 78.5 | 85.8 | 80.2 | 73.3 |
GSM8K Chain of Thought 8-shot |
91.0 | 78.3 | 83.8 | 93.5 | 78.1 | 80.4 | 94.2 |
HumanEval 0-shot |
62.2 | 61.6 | 39.6 | 78.7 | 62.2 | 64.4 | 79.9 |
MBPP 3-shot |
75.2 | 68.9 | 70.7 | 81.3 | 77.8 | 73.2 | 86.7 |
平均 | 78.5 | 75.0 | 76.3 | 82.5 | 74.3 | 75.4 | 85.2 |
我們在下表中更詳細地查看了80個公共基準測試數據集的不同類別:
基準測試 | Phi-3-Medium-4K-Instruct 14b |
Command R+ 104B |
Mixtral 8x22B |
Llama-3-70B-Instruct | GPT3.5-Turbo version 1106 |
Gemini Pro |
GPT-4-Turbo version 1106 (Chat) |
---|---|---|---|---|---|---|---|
流行的聚合基準測試 | 75.4 | 69.9 | 73.4 | 76.3 | 67.0 | 67.5 | 80.5 |
推理 | 84.1 | 79.3 | 81.5 | 86.7 | 78.3 | 80.4 | 89.3 |
語言理解 | 73.9 | 75.6 | 78.1 | 76.9 | 68.7 | 76.2 | 80.7 |
代碼生成 | 66.1 | 68.6 | 60.0 | 69.3 | 70.4 | 66.7 | 76.1 |
數學 | 52.8 | 45.3 | 52.5 | 59.7 | 52.8 | 50.9 | 67.1 |
事實知識 | 48.3 | 60.3 | 60.6 | 52.4 | 63.4 | 54.6 | 45.9 |
多語言 | 62.9 | 67.8 | 69.8 | 62.0 | 67.0 | 73.4 | 78.2 |
魯棒性 | 66.5 | 57.9 | 65.5 | 78.7 | 69.3 | 69.7 | 84.6 |
軟件
硬件
請注意,默認情況下,Phi-3-Medium模型使用閃存注意力機制,這需要特定類型的GPU硬件才能運行。我們已經在以下GPU類型上進行了測試:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
如果要在以下設備上運行模型:
- 在GPU、CPU和移動設備上進行優化推理:使用 ONNX 模型 4K
跨平臺支持
ONNX運行時生態系統現在支持Phi3 Medium模型跨平臺和硬件。優化後的phi - 3模型也以ONNX格式發佈,可在CPU和GPU上跨設備運行,包括服務器平臺、Windows、Linux和Mac桌面以及移動CPU,並針對每個目標提供最適合的精度。Windows桌面GPU(AMD、Intel和NVIDIA)支持DirectML GPU加速。
除了DML,ONNX運行時還為Phi3 Medium提供了跨一系列設備(CPU、GPU和移動設備)的跨平臺支持。以下是我們添加的一些優化配置:
- 用於int4 DML的ONNX模型:通過AWQ量化為int4
- 用於fp16 CUDA的ONNX模型
- 用於int4 CUDA的ONNX模型:通過RTN量化為int4
- 用於int4 CPU和移動設備的ONNX模型:通過RTN量化為int4
🔧 技術細節
模型架構
Phi-3-Medium-4K-Instruct是一個密集的僅解碼器Transformer模型,擁有140億參數。經過監督微調(SFT)和直接偏好優化(DPO),確保與人類偏好和安全指南一致。
訓練數據
訓練數據總計4.8萬億標記,包含10%的多語言數據,來源廣泛,包括嚴格篩選的公開文檔、新創建的合成數據和高質量的聊天格式監督數據。
基準測試
在多個標準開源基準測試中評估推理能力,與多個知名模型對比,使用少樣本提示在溫度為0的情況下進行評估,確保結果可比性。
📄 許可證
該模型遵循 MIT許可證。
™ 商標
本項目可能包含項目、產品或服務的商標或標誌。對微軟商標或標誌的授權使用需遵循 微軟商標和品牌指南。在本項目的修改版本中使用微軟商標或標誌不得造成混淆或暗示微軟的贊助。任何第三方商標或標誌的使用需遵循這些第三方的政策。
🎉 Phi-3.5:[mini-instruct];[MoE-instruct] ;[vision-instruct]
信息表格
屬性 | 詳情 |
---|---|
模型類型 | 輕量級、基於Phi-3數據集訓練的開源模型,屬於Phi-3系列的中等版本 |
訓練數據 | 總計4.8萬億標記,包含10%多語言數據,來源包括嚴格篩選的公開文檔、新創建的合成數據和高質量聊天格式監督數據 |
上下文長度 | 有4K和128K兩種變體 |
後訓練過程 | 監督微調(SFT)和直接偏好優化(DPO) |
支持語言 | 多語言(訓練數據含10%多語言數據) |
適用場景 | 內存/計算受限環境、低延遲場景、需要強大推理能力的場景 |
基準測試對比 | 與Mixtral-8x22b、Gemini-Pro等多個模型對比,在多個基準測試中表現出色 |
軟件依賴 | PyTorch、DeepSpeed、Transformers、Flash-Attention |
硬件要求 | 默認使用閃存注意力機制,需特定GPU硬件,如NVIDIA A100、A6000、H100 |
跨平臺支持 | ONNX運行時生態系統支持跨平臺和硬件,有多種優化配置 |
許可證 | MIT許可證 |



