🚀 Phi-3 Small-8K-Instruct ONNX CUDA模型
本倉庫託管了 Phi-3-small-8k-instruct 的優化版本,旨在藉助ONNX Runtime為配備NVIDIA GPU的機器加速推理。
Phi-3 Small是一個擁有70億參數的輕量級、先進的開源模型,它基於Phi-3數據集進行訓練,該數據集包含合成數據和經過篩選的公開網站數據,著重於高質量和富含推理的特性。該模型屬於Phi-3系列的小版本,有兩種變體:8K 和 128K,分別代表它們所能支持的上下文長度(以標記為單位)。
基礎模型經過了後訓練過程,其中包括監督微調以及用於指令遵循和安全措施的直接偏好優化。在針對常識、語言理解、數學、代碼、長上下文和邏輯推理等基準測試進行評估時,Phi-3-Small-8K-Instruct在同規模及稍大一級規模的模型中展現出了強大且先進的性能。
Phi-3 Small模型的優化變體以 ONNX 格式發佈,並可通過 ONNX Runtime 在包括服務器平臺、Windows和Linux在內的各種GPU設備上運行。
🚀 快速開始
為了支持Phi-3模型在一系列設備、平臺和執行提供者(EP)後端上運行,我們引入了一個新的API,用於封裝生成式AI推理的多個方面。這個API使得將大語言模型(LLMs)直接集成到你的應用程序中變得輕而易舉。若要使用ONNX運行這些模型的早期版本,請遵循 此處 的步驟。你還可以使用 這個聊天應用 來測試這些模型。
✨ 主要特性
ONNX模型
以下是我們添加的一些優化配置:
- FP16 CUDA的ONNX模型:適用於NVIDIA GPU的ONNX模型。
- INT4 CUDA的ONNX模型:通過RTN使用int4量化的適用於NVIDIA GPU的ONNX模型。
注意:如果你磁盤空間有限,使用Hugging Face CLI時可以只下載子文件夾而非所有模型。對於較大的批量大小,建議使用FP16模型;而對於較小的批量大小,INT4模型則能優化性能。
示例:
# 僅下載FP16模型
$ huggingface-cli download microsoft/Phi-3-small-8k-instruct-onnx-cuda --include cuda-fp16/* --local-dir . --local-dir-use-symlinks False
硬件支持
ONNX模型在以下設備上進行了測試:
- 1塊A100 GPU,SKU:Standard_ND96amsr_A100_v4 (CUDA)
所需的最低配置:
- CUDA:具備 計算能力 不低於7.5的NVIDIA GPU。
性能指標
與PyTorch相比,Phi-3 Small-8K-Instruct在所有批量大小和提示長度組合下,使用ONNX Runtime的性能都更優。對於FP16 CUDA,ORT的速度比PyTorch快達4倍;而對於INT4 CUDA,其速度比PyTorch快達10.9倍。
下表展示了在 1塊A100 80GB GPU,SKU:Standard_ND96amsr_A100_v4 上測量的CUDA上FP16和INT4精度下生成前256個標記的平均吞吐量(tps)。
批量大小, 提示長度 |
ORT FP16 CUDA |
PyTorch Eager FP16 CUDA |
ORT/PyTorch加速比 |
1, 16 |
74.62 |
16.81 |
4.44 |
4, 16 |
290.36 |
65.56 |
4.43 |
16,16 |
1036.93 |
267.33 |
3.88 |
批量大小, 提示長度 |
ORT INT4 CUDA |
PyTorch Eager INT4 CUDA |
ORT/PyTorch加速比 |
1, 16 |
140.68 |
12.93 |
10.88 |
4, 16 |
152.90 |
44.04 |
3.47 |
16,16 |
582.07 |
160.57 |
3.62 |
📚 詳細文檔
模型描述
屬性 |
詳情 |
開發方 |
Microsoft |
模型類型 |
ONNX |
語言 (NLP) |
Python, C, C++ |
許可證 |
MIT |
模型描述 |
這是Phi-3 Small-8K-Instruct模型為ONNX Runtime推理進行的轉換版本。 |
附加詳情
包版本
Pip包名稱 |
版本 |
torch |
2.3.0 |
triton |
2.3.0 |
onnxruntime-gpu |
1.18.0 |
transformers |
4.40.2 |
bitsandbytes |
0.43.1 |
📄 許可證
本項目採用MIT許可證。
附錄
模型卡片聯繫人
parinitarahi, kvaishnavi, natke
貢獻者
Kunal Vaishnavi, Sunghoon Choi, Yufeng Li, Tianlei Wu, Sheetal Arun Kadam, Rui Ren, Baiju Meswani, Natalie Kershaw, Parinita Rahi