这个扩展工具帮助你使用 ONNX Runtime (https://github.com/microsoft/onnxruntime-genai) 运行生成式 AI。它为 ONNX 模型提供生成式 AI 循环,包括使用 ONNX Runtime 进行推理、logits 处理、搜索和采样以及 KV 缓存管理。开发人员可以调用高级的 generate() 方法,或者在循环中运行模型的每次迭代,每次生成一个 token,并在循环内可选地更新生成参数。它支持贪婪/束搜索和 TopP、TopK 采样来生成 token 序列,并内置重复惩罚等 logits 处理。你也可以轻松添加自定义评分。
在应用层面,你可以使用 Generative AI 扩展工具 for onnxruntime 使用 C++/ C# / Python 构建应用程序。在模型层面,你可以使用它合并微调模型并进行相关的量化部署工作。
Generative AI 扩展工具 for onnxruntime 支持 Microsoft Phi、Google Gemma、Mistral、Meta LLaMA 的量化转换。
模型构建器大大加快了创建优化和量化的 ONNX 模型的过程,这些模型可以使用 ONNX Runtime generate() API 运行。
通过模型构建器,你可以将模型量化为 INT4、INT8、FP16、FP32,并结合不同的硬件加速方法,如 CPU、CUDA、DirectML、移动设备等。
要使用模型构建器,你需要安装
pip install torch transformers onnx onnxruntime
pip install --pre onnxruntime-genai
安装后,你可以从终端运行模型构建器脚本来执行模型格式和量化转换。
python3 -m onnxruntime_genai.models.builder -m model_name -o path_to_output_folder -p precision -e execution_provider -c cache_dir_to_save_hf_files
了解相关参数
-
model_name 这是 Hugging face 上的模型,例如 microsoft/Phi-3.5-mini-instruct、microsoft/Phi-3.5-vision-instruct 等。它也可以是你存储模型的路径。
-
path_to_output_folder 量化转换的保存路径。
-
execution_provider 不同的硬件加速支持,例如 cpu、cuda、DirectML。
-
cache_dir_to_save_hf_files 我们从 Hugging face 下载模型并将其缓存到本地。
注意: 你的数据训练到 2023 年 10 月。
模型构建器现在支持 Phi-3.5 Instruct 和 Phi-3.5-Vision 的 ONNX 模型量化。
CPU 加速的量化 INT 4 转换
python3 -m onnxruntime_genai.models.builder -m microsoft/Phi-3.5-mini-instruct -o ./onnx-cpu -p int4 -e cpu -c ./Phi-3.5-mini-instruct
CUDA 加速的量化 INT 4 转换
python3 -m onnxruntime_genai.models.builder -m microsoft/Phi-3.5-mini-instruct -o ./onnx-cpu -p int4 -e cuda -c ./Phi-3.5-mini-instruct
python3 -m onnxruntime_genai.models.builder -m microsoft/Phi-3.5-mini-instruct -o ./onnx-cpu -p int4 -e cuda -c ./Phi-3.5-mini-instruct
Phi-3.5-vision-instruct-onnx-cpu-fp32
- 在终端设置环境
mkdir models
cd models
-
在 models 文件夹中下载 microsoft/Phi-3.5-vision-instruct https://huggingface.co/microsoft/Phi-3.5-vision-instruct
-
请下载以下文件到你的 Phi-3.5-vision-instruct 文件夹
-
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/resolve/main/onnx/config.json
-
https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/modeling_phi3_v.py
-
下载此文件到 models 文件夹 https://huggingface.co/lokinfey/Phi-3.5-vision-instruct-onnx-cpu/blob/main/onnx/build.py
-
打开终端
转换为支持 FP32 的 ONNX
python build.py -i .\Your Phi-3.5-vision-instruct Path\ -o .\vision-cpu-fp32 -p f32 -e cpu
-
模型构建器目前支持 Phi-3.5-Instruct 和 Phi-3.5-Vision 的转换,但不支持 Phi-3.5-MoE。
-
要使用 ONNX 的量化模型,你可以通过 Generative AI 扩展工具 for onnxruntime SDK 使用它。
-
我们需要考虑更负责任的 AI,因此在模型量化转换后,建议进行更有效的结果测试。
-
通过量化 CPU INT4 模型,我们可以将其部署到边缘设备,这有更好的应用场景,因此我们已经完成了围绕 INT 4 的 Phi-3.5-Instruct。
-
了解更多关于 Generative AI 扩展工具 for onnxruntime 的信息 https://onnxruntime.ai/docs/genai/
-
Generative AI 扩展工具 for onnxruntime GitHub 仓库 https://github.com/microsoft/onnxruntime-genai
免责声明: 本文档是使用机器翻译服务翻译的。尽管我们努力确保准确性,但请注意,自动翻译可能包含错误或不准确之处。应将原始文档的母语版本视为权威来源。对于关键信息,建议使用专业的人类翻译。我们不对因使用此翻译而产生的任何误解或误释承担责任。