使用适用于 VS Code 的 AI 工具包转换模型(预览版)
模型转换是一个集成开发环境,旨在帮助开发人员和 AI 工程师在本地 Windows 平台上转换、量化、优化和评估预构建的机器学习模型。它为从 Hugging Face 等来源转换的模型提供流线型的端到端体验,对其进行优化并实现在由 NPU、GPU 和 CPU 提供支持的本地设备上进行推理。
先决条件
- 必须安装 VS Code。请按照这些步骤设置 VS Code。
- 必须安装 AI 工具包扩展。有关详细信息,请参阅安装 AI 工具包。
创建项目
在模型转换中创建项目是转换、优化、量化和评估机器学习模型的第一步。
-
打开 AI 工具包视图,然后选择模型 > 转换以启动模型转换
-
通过选择新建模型项目来启动新项目
-
选择基础模型
Hugging Face 模型
:从支持的模型列表中选择具有预定义配方的基础模型。模型模板
:如果模型未包含在基础模型中,请为你的自定义配方选择一个空模板(高级方案)。
-
输入项目详细信息:唯一的项目文件夹和项目名称。
将在你选择用于存储项目文件的位置创建一个包含指定项目名称的新文件夹。
首次创建模型项目时,设置环境可能需要一些时间。
每个项目都包含一个README.md
文件。如果关闭它,可以通过工作区重新打开。
支持的模型
模型转换目前支持越来越多的模型,包括 PyTorch 格式的顶级 Hugging Face 模型。
LLM 模型
模型名称 | Hugging Face 路径 |
---|---|
Qwen2.5 1.5B Instruct | Qwen/Qwen2.5-1.5B-Instruct |
DeepSeek R1 Distill Qwen 1.5B | deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B |
Meta LLaMA 3.2 1B Instruct | meta-llama/Llama-3.2-1B-Instruct |
Phi-3.5 Mini Instruct | Phi-3.5-mini-instruct |
非 LLM 模型
模型名称 | Hugging Face 路径 |
---|---|
Intel BERT Base Uncased (MRPC) | Intel/bert-base-uncased-mrpc |
BERT Multilingual Cased | google-bert/bert-base-multilingual-cased |
ViT Base Patch16-224 | google/vit-base-patch16-224 |
ResNet-50 | resnet-50 |
CLIP ViT-B-32 (LAION) | laion/CLIP-ViT-B-32-laion2B-s34B-b79K |
CLIP ViT Base Patch16 | clip-vit-base-patch16 |
CLIP ViT Base Patch32 | clip-vit-base-patch32 |
(可选)将模型添加到现有项目
-
打开模型项目
-
选择模型 > 转换,然后选择右侧面板上的添加模型。
-
选择基础模型或模板,然后选择添加。
包含新模型文件的文件夹将在当前项目文件夹中创建。
(可选)创建新模型项目
-
打开模型项目
-
选择模型 > 转换,然后选择右侧面板上的新建项目。
-
或者,关闭当前模型项目并从头开始创建新项目。
运行工作流
在模型转换中运行工作流是将预构建的 ML 模型转换为优化和量化的 ONNX 模型的核心步骤。
-
在 VS Code 中选择文件 > 打开文件夹以打开模型项目文件夹。
-
审查工作流配置
- 选择模型 > 转换
- 选择工作流模板以查看转换配方。
转换
工作流将始终执行转换步骤,该步骤将模型转换为 ONNX 格式。此步骤无法禁用。
量化
本节允许你配置量化的参数。
重要Hugging Face 合规性警报:在量化过程中,我们需要校准数据集。在继续之前,可能会提示你接受许可条款。如果你错过了通知,运行过程将暂停,等待你的输入。请确保通知已启用并且你已接受所需的许可。
-
激活类型:这是用于表示神经网络中每个层的中间输出(激活)的数据类型。
-
权重类型:这是用于表示模型学习参数(权重)的数据类型。
-
量化数据集:用于量化的校准数据集。
如果你的工作流使用需要在 Hugging Face 上获得许可协议批准的数据集(例如 ImageNet-1k),则在继续之前,系统会提示你在数据集页面上接受条款。这是法律合规性要求。
-
选择HuggingFace 访问令牌按钮以获取你的 Hugging Face 访问令牌。
-
选择打开以打开 Hugging Face 网站。
-
在 Hugging Face 门户上获取你的令牌并将其粘贴到 Quick Pick 中。按 Enter。
-
-
量化数据集拆分:数据集可以有不同的拆分,如验证、训练和测试。
-
量化数据集大小:用于量化模型的数据数量。
有关激活和权重类型的详细信息,请参阅数据类型选择。
你也可以禁用此部分。在这种情况下,工作流只会将模型转换为 ONNX 格式,但不会对模型进行量化。
评估
在此部分中,你需要选择要用于评估的执行提供程序 (EP),无论模型是在哪个平台上转换的。
- 评估目标:你想要评估模型的设备。可能的值包括
- Qualcomm NPU:要使用此项,你需要兼容的 Qualcomm 设备。
- AMD NPU:要使用此项,你需要支持 AMD NPU 的设备。
- Intel NPU:要使用此项,你需要支持 Intel NPU 的设备。
- CPU:任何 CPU 都可以工作。
- 评估数据集:用于评估的数据集。
- 评估数据集拆分:数据集可以有不同的拆分,如验证、训练和测试。
- 评估数据集大小:用于评估模型的数据数量。
你也可以禁用此部分。在这种情况下,工作流只会将模型转换为 ONNX 格式,但不会评估模型。
-
通过选择运行来运行工作流
将使用工作流名称和时间戳(例如
bert_qdq_2025-05-06_20-45-00
)生成一个默认作业名称,以便于跟踪。作业运行期间,你可以通过选择历史记录板中状态指示器或操作下的三点菜单来取消作业,然后选择停止运行。
Hugging Face 合规性警报:在量化过程中,我们需要校准数据集。在继续之前,可能会提示你接受许可条款。如果你错过了通知,运行过程将暂停,等待你的输入。请确保通知已启用并且你已接受所需的许可。
模型转换和量化:你可以在除 LLM 模型之外的任何设备上运行工作流。量化配置仅针对 NPU 进行了优化。如果目标系统不是 NPU,建议取消选中此步骤。
LLM 模型量化:如果要量化LLM 模型,则需要 Nvidia GPU。
如果你想在其他具有 GPU 的设备上量化模型,你可以自行设置环境,请参考ManualConversionOnGPU。请注意,只有“量化”步骤需要 GPU。量化后,你可以在 NPU 或 CPU 上评估模型。
重新评估的技巧
模型成功转换后,你可以使用重新评估功能再次执行评估,而无需重新进行模型转换。
转到历史记录板并找到模型运行作业。选择操作下的三点菜单以重新评估模型。
你可以选择不同的 EP 或数据集进行重新评估
失败作业的技巧
如果你的作业被取消或失败,你可以选择作业名称来调整工作流并再次运行作业。为避免意外覆盖,每次执行都会创建一个新的历史文件夹,其中包含其自己的配置和结果。
查看结果
转换中的历史记录板是你跟踪、审查和管理所有工作流运行的中央仪表板。每次运行模型转换和评估时,都会在历史记录板中创建一个新条目,确保完全的可追溯性和可重现性。
- 找到要审查的工作流运行。每次运行都带有一个状态指示器(例如“成功”、“已取消”)
- 选择运行名称以查看转换配置
- 选择状态指示器下的日志以查看日志和详细执行结果
- 模型成功转换后,你可以在“指标”下查看评估结果。精度、延迟和吞吐量等指标会与每次运行一同显示
使用示例笔记本进行模型推理
-
转到历史记录板。选择操作下的三点菜单。
从下拉菜单中选择示例中的推理。
-
选择 Python 环境
- 系统将提示你选择 Python 虚拟环境。默认运行时是:
C:\Users\{user_name}\.aitk\bin\model_lab_runtime\Python-WCR-win32-x64-3.12.9
。 - 请注意,默认运行时包含所需的一切,否则,请手动安装 requirements.txt
- 系统将提示你选择 Python 虚拟环境。默认运行时是:
-
示例将在 Jupyter Notebook 中启动。你可以自定义输入数据或参数以测试不同的场景。
模型兼容性:确保转换后的模型支持推理示例中指定的 EP
示例位置:推理示例与运行工件一起存储在历史记录文件夹中。
导出并与他人共享
转到历史记录板。选择导出以与他人共享模型项目。这将复制模型项目(不包含历史记录文件夹)。如果要与他人共享模型,请选择相应的作业。这将复制包含模型及其配置的选定历史记录文件夹。