🚀 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