Phi-3 小型和中型模型现已通过 ONNX Runtime 和 DirectML 完成优化
2024 年 5 月 21 日
我们之前分享了对 Phi-3 mini 的优化支持。现在,我们推出了 ONNX 变体的优化版本,用于新推出的 Phi-3 模型。新的 Phi-3-Small 和 Phi-3-Medium 在同等规模以及更大规模的语言模型中表现出色。Phi-3-small 在各种语言、推理、编码和数学基准测试中击败了 GPT-3.5T。新模型为开发者提供了生成式 AI 应用的构建模块,这些应用需要强大的推理能力、有限的计算能力和延迟受限的场景。
Phi-3-Medium 是一个 140 亿参数的语言模型。它有短上下文 (4K) 和长上下文 (128K) 变体。您现在可以在 Huggingface 上找到使用 ONNX Runtime 和 DML 优化的 Phi-3-medium-4k-instruct-onnx 和 Phi-3-medium-128K-instruct-onnx 模型!查看 Phi-3 集合 以获取 ONNX 模型。
我们还增加了对支持 CUDA 的 Nvidia GPU 的 Phi-3 Small 模型支持,其他变体即将推出。我们增加了对支持 CUDA 的 Nvidia GPU 的 Phi-3 Small 模型支持,其他变体即将推出。我们还增加了对支持 CUDA 的 Nvidia GPU 的 Phi-3 Small 模型支持,其他变体即将推出。这包括通过 ONNX Runtime generate() API 在新发布的 ONNX Runtime 1.18 版本中支持块稀疏内核。
ONNXRuntime 1.18 增加了新功能,例如改进的 4 位量化支持、改进的 CPU 上的 MultiheadAttention 性能以及 ONNX Runtime generate() API 增强功能,以实现更轻松高效的跨设备运行。
我们还很高兴分享,新的针对 Web 部署优化的 ONNX Phi-3-mini 现已发布。您可以在浏览器中完全运行 Phi3-mini-4K!请在此处查看模型。更重要的是,我们现在更新了 CPU 和移动设备 的优化 ONNX 版本,性能甚至更佳。并且不要错过关于如何在手机和浏览器上运行 Phi-3 的这篇博客。
如何使用 ONNX Runtime 运行 Phi-3-Medium 和 Small
您可以利用 ONNX Runtime generate() API 来无缝运行这些模型。您可以在此处查看详细说明。您也可以在本地运行聊天应用。
根据您的硬件,只需要一个软件包和模型组合。
3 个简单的步骤即可运行
- 下载模型
- 安装 generate() API
- 使用 phi3-qa.py 运行模型
仅执行您的硬件所需的步骤。
针对您的平台优化

Phi-3 Small 8K ONNX 模型
Phi-3 Medium 4k ONNX 模型
- microsoft/Phi-3-medium-4k-instruct-onnx-cpu
- microsoft/Phi-3-medium-4k-instruct-onnx-cuda
- microsoft/Phi-3-medium-4k-instruct-onnx-directml
Phi-3 Medium 128k ONNX 模型
- microsoft/Phi-3-medium-128k-instruct-onnx-cpu
- microsoft/Phi-3-medium-128k-instruct-onnx-cuda
- microsoft/Phi-3-medium-128k-instruct-onnx-directml
性能
ONNX Runtime 模型可以比 PyTorch 变体快 10 倍。下表列出了不同变体的 Token 生成吞吐量(tokens/秒)。
模型 | 批大小,提示长度 | 模型变体 | Token 生成吞吐量(tokens/秒) |
---|---|---|---|
Phi-3 Medium 4K | |||
Phi-3 Medium 4K 14B ONNX CUDA | 1, 16 | FP16 CUDA GPU 与 ONNX Runtime | 47.32 |
Phi-3 Medium 4K 14B ONNX CUDA | 16, 64 | FP16 CUDA GPU 与 ONNX Runtime | 698.22 |
Phi-3 Medium 4K 14B ONNX CUDA | 1, 16 | INT4 RTN CUDA GPU 与 ONNX Runtime | 115.68 |
Phi-3 Medium 4K 14B ONNX CUDA | 16, 64 | INT4 RTN CUDA GPU 与 ONNX Runtime | 339.45 |
Phi-3 Medium 4K 14B ONNX DML | 1, 16 | DML INT4 AWQ 与 ONNX Runtime | 72.39 |
Phi-3 Medium 4K 14B ONNX CPU | 16, 64 | INT4 RTN CPU 与 ONNX Runtime | 20.77 |
Phi-3 Medium 128K | |||
Phi-3 Medium 128K 14B ONNX CUDA | 1, 16 | FP16 CUDA GPU 与 ONNX Runtime | 46.27 |
Phi-3 Medium 128K 14B ONNX CUDA | 16, 64 | FP16 CUDA GPU 与 ONNX Runtime | 662.23 |
Phi-3 Medium 128K 14B ONNX CUDA | 1, 16 | INT4 RTN CUDA GPU 与 ONNX Runtime | 108.59 |
Phi-3 Medium 128K 14B ONNX CUDA | 16, 64 | INT4 RTN CUDA GPU 与 ONNX Runtime | 332.57 |
Phi-3 Medium 128K 14B ONNX DML | 1, 16 | DML INT4 AWQ 与 ONNX Runtime | 72.26 |
模型 | 批大小,提示长度 | 模型变体 | Token 生成吞吐量(tokens/秒) |
---|---|---|---|
Phi-3 Small 8k | |||
Phi-3 Small 8K 7B ONNX CUDA | 1, 16 | FP16 CUDA GPU 与 ONNX Runtime | 74.62 |
Phi-3 Small 8K 7B ONNX CUDA | 16, 64 | FP16 CUDA GPU 与 ONNX Runtime | 1036.93 |
Phi-3 Small 8K 7B ONNX CUDA | 1, 16 | INT4 RTN CUDA GPU 与 ONNX Runtime | 140.68 |
Phi-3 Small 8K 7B ONNX CUDA | 16, 64 | INT4 RTN CUDA GPU 与 ONNX Runtime | 582.07 |
Phi-3 Small 128k | |||
Phi-3 Small 128K 7B ONNX CUDA | 1, 16 | FP16 CUDA GPU 与 ONNX Runtime | 68.26 |
Phi-3 Small 128K 7B ONNX CUDA | 16, 64 | FP16 CUDA GPU 与 ONNX Runtime | 577.41 |
Phi-3 Small 128K 7B ONNX CUDA | 1, 16 | INT4 RTN CUDA GPU 与 ONNX Runtime | 73.60 |
Phi-3 Small 128K 7B ONNX CUDA | 16, 64 | INT4 RTN CUDA GPU 与 ONNX Runtime | 1008.35 |
设备
- CUDA:A100 GPU,SKU:Standard_ND96amsr_A100_v4
- DML:Nvidia GeForce RTX 4080(专用内存 16GB/共享内存 24GB)
- CPU:Intel(R) Core(TM) i9-10920X CPU @ 3.50GHz
软件包
- onnxruntime-gpu:1.18.0
立即开始使用
要亲自体验优化的 Phi-3,您现在可以使用 ONNX Runtime generate() API 说明轻松运行这些模型。要了解更多信息,请参加 Microsoft Build 大会上的 ONNX Runtime、DML 和 Phi-3 相关会议!