模型概述
模型特點
模型能力
使用案例
🚀 Phi-3-Medium-128K-Instruct
Phi-3-Medium-128K-Instruct 是一款輕量級的先進開源模型,擁有 140 億參數。它基於 Phi-3 數據集進行訓練,該數據集包含合成數據和經過篩選的公開網站數據,注重高質量和強推理能力。該模型在常識、語言理解、數學、代碼、長上下文和邏輯推理等基準測試中表現出色。
🚀 快速開始
Phi-3-Medium-128k-Instruct 已集成到 transformers
的開發版本(4.40.2)中。在通過 pip
發佈官方版本之前,請確保執行以下操作之一:
- 加載模型時,確保將
trust_remote_code=True
作為from_pretrained()
函數的參數傳入。 - 將本地的
transformers
更新到開發版本:pip uninstall -y transformers && pip install git+https://github.com/huggingface/transformers
。此命令是克隆並從源代碼安裝的替代方法。
可以使用 pip list | grep transformers
驗證當前的 transformers
版本。
Phi-3-Medium-128k-Instruct 也可在 Azure AI Studio 中使用。
分詞器
Phi-3-Medium-128k-Instruct 支持最多 32064
個標記的詞彙量。分詞器文件 已經提供了可用於下游微調的佔位符標記,但也可以擴展到模型的詞彙量大小。
聊天格式
鑑於訓練數據的性質,Phi-3-Medium-128k-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?<|end|>
<|assistant|>
示例推理代碼
以下代碼片段展示瞭如何在 GPU 上快速運行該模型:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
torch.random.manual_seed(0)
model_id = "microsoft/Phi-3-medium-128k-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>
)。請確保包含該標記,因為這樣可以獲得更可靠的結果。
✨ 主要特性
模型家族與版本
Phi-3-Medium-128K-Instruct 屬於 Phi-3 家族的中型版本,有 4k 和 128K 兩種變體,分別代表其支持的上下文長度(以標記為單位)。
性能表現
該模型經過了後訓練過程,結合了監督微調(Supervised fine-tuning)和直接偏好優化(Direct preference optimization),以實現指令遵循和安全措施。在常識、語言理解、數學、代碼、長上下文和邏輯推理等基準測試中,Phi-3-Medium-128K-Instruct 在同規模和稍大尺寸的模型中展現出了強大而先進的性能。
適用場景
- 內存/計算受限環境:模型輕量級的特點使其適合在資源有限的環境中運行。
- 低延遲場景:能夠在對延遲要求較高的場景中快速響應。
- 強推理任務:尤其在代碼、數學和邏輯推理方面表現出色。
相關資源
不同版本對比
短上下文 | 長上下文 | |
---|---|---|
Mini | 4K [HF] ; [ONNX] ; [GGUF] | 128K [HF] ; [ONNX] |
Small | 8K [HF] ; [ONNX] | 128K [HF] ; [ONNX] |
Medium | 4K [HF] ; [ONNX] | 128K [HF] ; [ONNX] |
Vision | 128K [HF] ; [ONNX] |
📚 詳細文檔
預期用途
主要用例
該模型旨在廣泛用於英語的商業和研究領域。適用於通用人工智能系統和應用,特別是以下場景:
- 內存/計算受限的環境。
- 對延遲敏感的場景。
- 需要強推理能力(特別是代碼、數學和邏輯方面)的場景。
使用場景考慮
- 模型並非專門為所有下游用途設計或評估。開發者在選擇使用場景時應考慮語言模型的常見侷限性,並在特定下游用例中使用之前,評估和緩解準確性、安全性和公平性問題,特別是在高風險場景中。
- 開發者應瞭解並遵守與其用例相關的適用法律法規(包括隱私、貿易合規法等)。
負責任的人工智能考慮
與其他語言模型一樣,Phi 系列模型可能會出現不公平、不可靠或冒犯性的行為。需要注意的一些侷限性包括:
- 服務質量:Phi 模型主要在英語文本上進行訓練,非英語語言的性能可能會較差。訓練數據中代表性較少的英語變體可能比標準美式英語的性能更差。
- 傷害表示與刻板印象延續:這些模型可能會過度或不足地代表某些人群,抹去某些群體的代表性,或強化貶低性或負面的刻板印象。儘管經過了安全後訓練,但由於不同群體的代表性水平不同,或者訓練數據中反映現實世界模式和社會偏見的負面刻板印象示例普遍存在,這些侷限性可能仍然存在。
- 不適當或冒犯性內容:模型可能會產生其他類型的不適當或冒犯性內容,在沒有針對特定用例進行額外緩解措施的情況下,可能不適合在敏感環境中部署。
- 信息可靠性:語言模型可能會生成無意義的內容或編造看似合理但不準確或過時的內容。
- 代碼範圍有限:Phi-3 的大部分訓練數據基於 Python,並使用常見的包,如 "typing, math, random, collections, datetime, itertools"。如果模型生成的 Python 腳本使用了其他包或其他語言的腳本,強烈建議用戶手動驗證所有 API 的使用。
開發者應應用負責任的人工智能最佳實踐,並確保特定用例符合相關法律法規(如隱私、貿易等)。需要考慮的重要領域包括:
- 資源分配:在沒有進一步評估和額外去偏技術的情況下,模型可能不適合對法律地位、資源分配或生活機會(如住房、就業、信貸等)有重大影響的場景。
- 高風險場景:開發者應評估在高風險場景中使用模型的適用性,在這些場景中,不公平、不可靠或冒犯性的輸出可能會造成極大的損失或傷害。這包括在敏感或專業領域提供建議,如法律或健康建議。應根據部署上下文在應用層面實施額外的保障措施。
- 錯誤信息:模型可能會產生不準確的信息。開發者應遵循透明度最佳實踐,並告知最終用戶他們正在與人工智能系統交互。在應用層面,開發者可以構建反饋機制和管道,將響應與特定用例的上下文信息相結合,即檢索增強生成(Retrieval Augmented Generation,RAG)技術。
- 有害內容生成:開發者應根據上下文評估輸出,並使用適合其用例的可用安全分類器或自定義解決方案。
- 濫用風險:可能存在其他形式的濫用,如欺詐、垃圾郵件或惡意軟件生成。開發者應確保其應用不違反適用的法律法規。
訓練
模型信息
屬性 | 詳情 |
---|---|
架構 | Phi-3-Medium-128k-Instruct 是一個具有 140 億參數的密集型僅解碼器 Transformer 模型。經過監督微調(Supervised fine-tuning)和直接偏好優化(Direct preference optimization)進行微調,以確保與人類偏好和安全指南保持一致。 |
輸入 | 文本,最適合使用聊天格式的提示。 |
上下文長度 | 128k 標記 |
GPU | 512 個 H100-80G |
訓練時間 | 42 天 |
訓練數據 | 4.8 萬億標記 |
輸出 | 對輸入文本生成的響應文本 |
訓練日期 | 2024 年 2 月至 4 月 |
狀態 | 這是一個基於截止日期為 2023 年 10 月的離線數據集訓練的靜態模型。隨著模型的改進,可能會發布調優模型的未來版本。 |
發佈日期 | 2024 年 5 月 21 日發佈模型權重。 |
數據集
訓練數據包括多種來源,總計 4.8 萬億標記(包括 10% 的多語言數據),由以下部分組成:
- 經過嚴格質量篩選的公開可用文檔、精選的高質量教育數據和代碼。
- 為教授數學、編碼、常識推理、世界常識(科學、日常活動、心智理論等)而新創建的合成“教科書式”數據。
- 涵蓋各種主題的高質量聊天格式監督數據,以反映人類在指令遵循、真實性、誠實性和有用性等不同方面的偏好。
團隊專注於可能提高模型推理能力的數據質量,並對公開可用文檔進行篩選,以包含適當水平的知識。例如,英超聯賽某一天的比賽結果可能是前沿模型的良好訓練數據,但對於小尺寸模型,需要去除此類信息,以便為推理留出更多的模型容量。有關數據的更多詳細信息,請參閱 Phi-3 技術報告。
基準測試
報告了 Phi-3-Medium-128k-Instruct 在標準開源基準測試中的推理能力(包括常識推理和邏輯推理)結果,並與 Mixtral-8x22b、Gemini-Pro、Command R+ 104B、Llama-3-70B-Instruct、GPT-3.5-Turbo-1106 和 GPT-4-Turbo-1106(Chat) 進行了比較。
所有報告的數字均使用完全相同的管道生成,以確保數字具有可比性。由於評估中的細微差異,這些數字可能與其他公佈的數字有所不同。
按照慣例,使用少樣本提示在溫度為 0 的情況下評估模型。提示和少樣本數量是 Microsoft 內部評估語言模型工具的一部分,特別是沒有針對 Phi-3 對管道進行優化。具體而言,不會更改提示、選擇不同的少樣本示例、更改提示格式或進行任何其他形式的優化。
每個基準測試的少樣本示例數量如下所示:
基準測試 | Phi-3-Medium-128k-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 |
49.7 | 50.1 | 54.0 | 56.9 | 48.4 | 49.0 | 59.6 |
MMLU 5-shot |
76.6 | 73.8 | 76.2 | 80.2 | 71.4 | 66.7 | 84.0 |
BigBench Hard 3-shot |
77.9 | 74.1 | 81.8 | 80.4 | 68.3 | 75.6 | 87.7 |
ANLI 7-shot |
57.3 | 63.4 | 65.2 | 68.3 | 58.1 | 64.2 | 71.7 |
HellaSwag 5-shot |
81.6 | 78.0 | 79.0 | 82.6 | 78.8 | 76.2 | 88.3 |
ARC Challenge 10-shot |
91.0 | 86.9 | 91.3 | 93.0 | 87.4 | 88.3 | 95.6 |
ARC Easy 10-shot |
97.6 | 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.2 | 82.0 | 82.0 | 84.4 | 79.6 | 81.8 | 86.7 |
MedQA 2-shot |
67.6 | 59.2 | 67.9 | 78.5 | 63.4 | 58.2 | 83.7 |
OpenBookQA 10-shot |
87.2 | 86.8 | 88.6 | 91.8 | 86.0 | 86.4 | 93.4 |
PIQA 5-shot |
87.8 | 86.4 | 85.0 | 85.3 | 86.6 | 86.2 | 90.1 |
Social IQA 5-shot |
79.0 | 75.3 | 78.2 | 81.1 | 68.3 | 75.4 | 81.7 |
TruthfulQA (MC2) 10-shot |
74.3 | 57.8 | 67.4 | 81.9 | 67.7 | 72.6 | 85.2 |
WinoGrande 5-shot |
78.9 | 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 |
87.5 | 78.3 | 83.8 | 93.5 | 78.1 | 80.4 | 94.2 |
HumanEval 0-shot |
58.5 | 61.6 | 39.6 | 78.7 | 62.2 | 64.4 | 79.9 |
MBPP 3-shot |
73.8 | 68.9 | 70.7 | 81.3 | 77.8 | 73.2 | 86.7 |
平均 | 77.3 | 75.0 | 76.3 | 82.5 | 74.3 | 75.4 | 85.2 |
下面的表格進一步展示了在 80 個公共基準測試數據集上不同類別的詳細結果:
基準測試 | Phi-3-Medium-128k-Instruct 14b |
Command R+ 104B |
Mixtral 8x22B |
Llama-3-70B-Instruct | GPT3.5-Turbo version 1106 |
Gemini Pro |
GPT-4-Turbo version 1106 (Chat) |
---|---|---|---|---|---|---|---|
流行綜合基準測試 | 72.3 | 69.9 | 73.4 | 76.3 | 67.0 | 67.5 | 80.5 |
推理能力 | 83.2 | 79.3 | 81.5 | 86.7 | 78.3 | 80.4 | 89.3 |
語言理解能力 | 75.3 | 75.7 | 78.7 | 77.9 | 70.4 | 75.3 | 81.6 |
代碼生成能力 | 64.2 | 68.6 | 60.0 | 69.3 | 70.4 | 66.7 | 76.1 |
數學能力 | 52.9 | 45.3 | 52.5 | 59.7 | 52.8 | 50.9 | 67.1 |
事實知識 | 47.5 | 60.3 | 60.6 | 52.4 | 63.4 | 54.6 | 45.9 |
多語言能力 | 62.2 | 67.8 | 69.8 | 62.0 | 67.0 | 73.4 | 78.2 |
魯棒性 | 70.2 | 57.9 | 65.5 | 78.7 | 69.3 | 69.7 | 84.6 |
軟件依賴
硬件要求
默認情況下,Phi-3-Medium 模型使用 Flash Attention,這需要特定類型的 GPU 硬件才能運行。已在以下 GPU 類型上進行了測試:
- NVIDIA A100
- NVIDIA A6000
- NVIDIA H100
如果要在以下設備上運行模型:
- 在 GPU、CPU 和移動設備上進行優化推理:使用 ONNX 模型 128k
跨平臺支持
ONNX 運行時生態系統現在支持 Phi3 Medium 模型在跨平臺和硬件上運行。優化後的 phi-3 模型也以 ONNX 格式發佈,可在 CPU 和 GPU 上跨設備運行,包括服務器平臺、Windows、Linux 和 Mac 桌面以及移動 CPU,並針對每個目標提供最適合的精度。Windows 桌面 GPU(AMD、Intel 和 NVIDIA)支持 DirectML GPU 加速。以下是一些添加的優化配置:
- ONNX 模型(int4 DML):通過 AWQ 量化為 int4。
- ONNX 模型(fp16 CUDA)。
- ONNX 模型(int4 CUDA):通過 RTN 量化為 int4。
- ONNX 模型(int4 CPU 和移動設備):通過 RTN 量化為 int4。
📄 許可證
該模型根據 MIT 許可證 發佈。
商標說明
本項目可能包含項目、產品或服務的商標或標誌。對 Microsoft 商標或標誌的授權使用需遵循 Microsoft 商標和品牌指南。在本項目的修改版本中使用 Microsoft 商標或標誌不得造成混淆或暗示 Microsoft 的贊助。任何第三方商標或標誌的使用需遵循這些第三方的政策。



