license: mit
pipeline_tag: text-generation
tags:
- ONNX
- DML
- ONNXRuntime
- phi3
- nlp
- conversational
- custom_code
inference: false
Phi-3 Small-8K-Instruct ONNX CUDA 模型
本仓库托管了针对NVIDIA GPU优化的Phi-3-small-8k-instruct版本,通过ONNX Runtime加速推理。
Phi-3 Small是一个拥有70亿参数的轻量级前沿开源模型,采用包含合成数据和过滤公开网站数据的Phi-3数据集训练,注重高质量与强推理能力。该模型属于Phi-3系列,提供支持8K和128K两种上下文长度(以token计)的变体。
基础模型经过监督微调和直接偏好优化的后训练过程,强化了指令遵循与安全措施。在常识、语言理解、数学、代码、长上下文和逻辑推理等基准测试中,Phi-3-Small-8K-Instruct展现了同尺寸及更大尺寸模型中最先进的性能表现。
优化后的Phi-3 Small模型以ONNX格式发布,可通过ONNX Runtime在服务器平台、Windows和Linux等设备的GPU上运行。
ONNX模型
我们提供了以下优化配置:
- FP16 CUDA版ONNX模型:适用于NVIDIA GPU
- INT4 CUDA版ONNX模型:通过RTN实现int4量化的NVIDIA GPU专用版
注:使用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
快速入门
为支持跨设备/平台的Phi-3模型部署,我们推出了封装生成式AI推理功能的新API。该API可轻松将LLM集成至应用。运行ONNX版模型请参照此教程,也可通过聊天应用示例测试。
硬件支持
测试环境:
- 1块A100 GPU(SKU: Standard_ND96amsr_A100_v4,CUDA)
最低配置要求:
- CUDA:计算能力≥7.5的NVIDIA GPU(参见兼容列表)
模型说明
- 开发方: 微软
- 模型类型: ONNX
- 编程语言支持: Python, C, C++
- 许可协议: MIT
- 模型描述: 本模型为Phi-3 Small-8K-Instruct的ONNX Runtime推理转换版
扩展信息
性能指标
在所有批次大小和提示长度组合下,Phi-3 Small-8K-Instruct在ONNX Runtime上的表现均优于PyTorch。FP16 CUDA版本比PyTorch快达4倍,INT4 CUDA版本则快达10.9倍。
下表展示了在1块A100 80GB GPU(SKU: Standard_ND96amsr_A100_v4)上测得的FP16/INT4精度下前256个生成token的平均吞吐量(tps)。
批次大小, 提示长度 |
ONNX FP16 CUDA |
PyTorch FP16 CUDA |
加速比 |
1, 16 |
74.62 |
16.81 |
4.44 |
4, 16 |
290.36 |
65.56 |
4.43 |
16,16 |
1036.93 |
267.33 |
3.88 |
批次大小, 提示长度 |
ONNX INT4 CUDA |
PyTorch INT4 CUDA |
加速比 |
1, 16 |
140.68 |
12.93 |
10.88 |
4, 16 |
152.90 |
44.04 |
3.47 |
16,16 |
582.07 |
160.57 |
3.62 |
依赖版本
包名称 |
版本 |
torch |
2.3.0 |
triton |
2.3.0 |
onnxruntime-gpu |
1.18.0 |
transformers |
4.40.2 |
bitsandbytes |
0.43.1 |
附录
模型卡联系人
parinitarahi, kvaishnavi, natke
贡献者
Kunal Vaishnavi, Sunghoon Choi, Yufeng Li, Tianlei Wu, Sheetal Arun Kadam, Rui Ren, Baiju Meswani, Natalie Kershaw, Parinita Rahi