将模型转换为ONNX格式
AI Toolkit支持开放神经网络交换 (ONNX) 格式,用于在本地运行模型。ONNX是一个用于表示机器学习模型的开放标准,它定义了一组通用的运算符和一种文件格式,使模型能够在各种硬件平台上运行。
若要在AI Toolkit中使用来自其他目录(如Azure AI Foundry或Hugging Face)的模型,必须首先将它们转换为ONNX格式。
本教程将指导你将Hugging Face模型转换为ONNX格式并将其加载到AI Toolkit中。
设置环境
要从Hugging Face或Azure AI Foundry转换模型,你需要Model Builder工具。
请按照以下步骤设置你的环境
-
为Model Builder创建一个专用的conda环境,并安装必要的依赖项(
onnx
、torch
、onnxruntime_genai
和transformers
)conda create -n model_builder python==3.11 -y conda activate model_builder pip install onnx torch onnxruntime_genai==0.6.0 transformers
注意:对于某些较新的模型,如Phi-4-mini,你可能需要直接从GitHub安装最新开发版本的transformers
pip install git+https://github.com/huggingface/transformers
访问Hugging Face模型
有多种方法可以访问Hugging Face模型。在本教程中,我们以huggingface_hub
CLI为例,演示如何管理模型仓库。
注意:在继续之前,请确保你的Python环境已正确设置。
要从Hugging Face下载模型
创建目录结构
AI Toolkit从其工作目录加载ONNX模型
- Windows:
%USERPROFILE%\.aitk\models
- 类Unix系统 (macOS):
$HOME/.aitk/models
为确保模型正确加载,请在AI Toolkit的工作目录中创建所需的四层目录结构。例如
mkdir C:\Users\Administrator\.aitk\models\microsoft\Phi-3.5-vision-instruct-onnx\cpu\phi3.5-cpu-int4-rtn-block-32
在此示例中,四层目录结构为microsoft\Phi-3.5-vision-instruct-onnx\cpu\phi3.5-cpu-int4-rtn-block-32
。
四层目录结构的命名非常重要。每个目录层对应一个特定的系统参数:$publisherName\$modelName\$runtime\$displayName
。$displayName
会出现在扩展左上角的本地模型树视图中。对于不同的模型,请使用不同的displayName
值,以避免混淆。
将模型转换为ONNX格式
运行以下命令将模型转换为ONNX格式
python -m onnxruntime_genai.models.builder -m $modelPath -p $precision -e $executionProvider -o $outputModelPath -c $cachePath --extra_options include_prompt_templates=1
常见的精度和执行提供者组合包括:FP32 CPU
、FP32 CUDA
、FP16 CUDA
、FP16 DML
、INT4 CPU
、INT4 CUDA
和INT4 DML
。
以下是将模型转换为ONNX格式的完整示例命令
python -m onnxruntime_genai.models.builder -m C:\hfmodel\phi3 -p fp16 -e cpu -o C:\Users\Administrator\.aitk\models\microsoft\Phi-3-mini-4k-instruct\cpu\phi3-cpu-int4-rtn-block-32-acc-level-4 -c C:\temp --extra_options include_prompt_templates=1
有关精度和执行提供者的更多详细信息,请参阅这些教程
将模型加载到AI Toolkit中
转换后,将ONNX模型文件移动到新创建的目录中。AI Toolkit在激活时会自动从该目录加载ONNX模型。
你可以在MY MODELS
视图中找到你的模型。要使用模型,请双击其名称,或打开TOOLS
> Playground
,然后从下拉列表中选择模型以开始与之交互。
注意:AI Toolkit不支持直接删除手动添加的模型。要删除模型,请手动删除其目录。
支持转换的模型
下表列出了AI Toolkit中支持转换为ONNX格式的模型
支持矩阵 | 目前支持 | 开发中 | 在路线图上 |
---|---|---|---|
模型架构 | DeepSeek 、Gemma 、Llama 、Mistral 、Phi (Language + Vision) 、Qwen 、Nemotron 、Granite 、AMD OLMo |
Whisper |
Stable Diffusion |