将模型转换为ONNX格式
AI 工具包支持 开放神经网络交换 (ONNX) 格式以在本地运行模型。ONNX 是一个用于表示机器学习模型的开放标准,定义了一组通用的运算符和文件格式,使模型能够在各种硬件平台上运行。
要使用其他目录中的模型,例如 Microsoft Foundry 或 Hugging Face,在 AI 工具包中,您必须首先将其转换为 ONNX 格式。
本教程将指导您将Hugging Face模型转换为ONNX格式,并将其加载到AI工具包中。
设置环境
要将模型从Hugging Face或Microsoft Foundry转换,您需要模型构建器工具。
请按照以下步骤设置您的环境:
-
为Model Builder创建一个专用的conda环境并安装必要的依赖项
ONNX,火炬,onnxruntime生成人工智能,和变压器):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 模型。在这个教程中,我们使用拥抱面庞库CLI 作为演示管理模型库的示例。
注意:在继续之前,请确保您的Python环境已正确设置。
从 Hugging Face 下载模型:
创建目录结构
AI 工具包从其工作目录加载 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\Φ-3.5-视觉指令-onnx\cpu\phi3.5-cpu-int4-rtn-block-32输入:.
四层目录结构的命名非常重要。每层目录都对应于一个特定的系统参数:$发布者名称$__$型号名称$__$运行时$__$显示名称$。$显示名称出现在扩展左上角的本地模型树视图中。使用不同的显示名称为不同的模型提供不同的值以避免混淆。
将模型转换为ONNX格式
运行以下命令将您的模型转换为ONNX格式:
```plaintext
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 矩阵乘法,INT4 CPU,INT4 CUDA,和INT4 数据库操纵语言输入:.
这是一个将模型转换为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工具包
转换后,将您的 ONNX 模型文件移动到新创建的目录中。AI 工具包在激活时会自动从该目录加载 ONNX 模型。
您可以在以下位置找到您的模型我的模型查看。要使用模型,请双击其名称或打开工具>游乐场并从下拉列表中选择模型以开始与其互动。
注意:AI 工具包不支持直接删除手动添加的模型。要移除模型,请手动删除其目录。
支持转换的型号
下表列出了AI工具包中支持转换为ONNX格式的模型:
| 支持矩阵 | 现在支持 | 正在开发中 | 在路线图上 |
|---|---|---|---|
| 模型架构 | 深搜,杰玛,骆马,梅斯拉, Phi (语言 + 视觉),Qwen,内姆特龙,花岗岩,AMD OLMo |
耳语 |
稳定扩散 |