Phi-3 小型和中型模型现已通过 ONNX Runtime 和 DirectML 进行优化
2024年5月21日
我们此前分享了对 Phi-3 mini 的优化支持。我们现在推出新推出的 Phi-3 模型的优化 ONNX 变体。全新的 Phi-3-Small 和 Phi-3-Medium 的性能优于同等大小甚至更大尺寸的语言模型。Phi-3-small 在各项语言、推理、编码和数学基准测试中超越了 GPT-3.5T。新模型为开发人员提供了一个构建块,适用于需要强大推理能力、有限计算资源和延迟限制场景的生成式 AI 应用。
Phi-3-Medium 是一个拥有 14B 参数的语言模型。它提供短上下文(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 1.18 版本中通过 ONNX Runtime generate() API 对块稀疏内核的支持。
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 模型
性能
ONNX Runtime 模型的运行速度最高可比 PyTorch 变体快 10 倍。以下列出了不同变体的 Token 生成吞吐量(token/秒)。
| 模型 | 批次大小,提示词长度 | 模型变体 | Token 生成吞吐量 (tokens/sec) |
|---|---|---|---|
| Phi-3 Medium 4K | |||
| Phi-3 Medium 4K 14B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 47.32 |
| Phi-3 Medium 4K 14B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 698.22 |
| Phi-3 Medium 4K 14B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 115.68 |
| Phi-3 Medium 4K 14B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 339.45 |
| Phi-3 Medium 4K 14B ONNX DML | 1, 16 | 带有 ONNX Runtime 的 DML INT4 AWQ | 72.39 |
| Phi-3 Medium 4K 14B ONNX CPU | 16, 64 | 带有 ONNX Runtime 的 INT4 RTN CPU | 20.77 |
| Phi-3 Medium 128K | |||
| Phi-3 Medium 128K 14B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 46.27 |
| Phi-3 Medium 128K 14B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 662.23 |
| Phi-3 Medium 128K 14B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 108.59 |
| Phi-3 Medium 128K 14B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 332.57 |
| Phi-3 Medium 128K 14B ONNX DML | 1, 16 | 带有 ONNX Runtime 的 DML INT4 AWQ | 72.26 |
| 模型 | 批次大小,提示词长度 | 模型变体 | Token 生成吞吐量 (tokens/sec) |
|---|---|---|---|
| Phi-3 Small 8k | |||
| Phi-3 Small 8K 7B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 74.62 |
| Phi-3 Small 8K 7B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 1036.93 |
| Phi-3 Small 8K 7B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 140.68 |
| Phi-3 Small 8K 7B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 582.07 |
| Phi-3 Small 128k | |||
| Phi-3 Small 128K 7B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 68.26 |
| Phi-3 Small 128K 7B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 FP16 CUDA GPU | 577.41 |
| Phi-3 Small 128K 7B ONNX CUDA | 1, 16 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 73.60 |
| Phi-3 Small 128K 7B ONNX CUDA | 16, 64 | 带有 ONNX Runtime 的 INT4 RTN CUDA GPU | 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 说明轻松运行这些模型。要了解更多信息,请加入我们在 Build 大会上举办的 ONNX Runtime、DML 和 Phi-3 专题会议!