參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

使用 VS Code (預覽版) 的 AI 工具包轉換模型

模型轉換是一個整合開發環境,旨在幫助開發人員和 AI 工程師在本地 Windows 平臺上轉換、量化、最佳化和評估預構建的機器學習模型。它為從 Hugging Face 等來源轉換的模型提供了簡化的端到端體驗,對其進行最佳化並在由 NPU、GPU 和 CPU 驅動的本地裝置上實現推理。

先決條件

建立專案

在模型轉換中建立專案是轉換、最佳化、量化和評估機器學習模型的第一步。

  1. 開啟 AI 工具包檢視,然後選擇模型 > 轉換以啟動模型轉換。

  2. 透過選擇新建模型專案來啟動新專案。

    Screenshot that shows view for creating model project, including Primary Side Bar and create project button.

  3. 選擇基礎模型

    • Hugging Face 模型:從支援的模型列表中選擇具有預定義配方的基礎模型。
    • 模型模板:如果模型未包含在基礎模型中,請選擇一個空模板用於自定義配方(高階方案)。

    Screenshot that shows model list, such as bert, resnet, llama and so on.

  4. 輸入專案詳細資訊:唯一的專案資料夾專案名稱

    將在您選擇的用於儲存專案檔案的位置建立一個具有指定專案名稱的新資料夾。

注意

首次建立模型專案時,可能需要一些時間來設定環境。

每個專案都包含一個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 多語言 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

(可選)將模型新增到現有專案

  1. 開啟模型專案

  2. 選擇模型 > 轉換,然後選擇右側面板上的新增模型

    Screenshot that shows how to add model. It contains a button to add models.

  3. 選擇一個基礎模型或模板,然後選擇新增

    將在當前專案資料夾中建立一個包含新模型檔案的資料夾。

(可選)建立新模型專案

  1. 開啟模型專案

  2. 選擇模型 > 轉換,然後選擇右側面板上的新建專案

    Screenshot that shows how to create a new project. It contains a button to create a new project.

  3. 或者,關閉當前模型專案並從頭開始建立新專案

執行工作流

在模型轉換中執行工作流是將預構建的機器學習模型轉換為最佳化和量化的 ONNX 模型的核心步驟。

  1. 在 VS Code 中選擇檔案 > 開啟資料夾以開啟模型專案資料夾。

  2. 檢視工作流配置

    1. 選擇模型 > 轉換
    2. 選擇工作流模板以檢視轉換配方。

    Screenshot that shows running a workflow. There is a workflow configuration section containing Conversion, Quantization and Evaluation.

    轉換

    工作流將始終執行轉換步驟,該步驟將模型轉換為 ONNX 格式。此步驟無法停用。

    量化

    本節使您能夠配置量化的引數。

    重要

    Hugging Face 合規性警報:在量化過程中,我們需要校準資料集。在繼續之前,您可能會被提示接受許可條款。如果您錯過了通知,執行過程將暫停,等待您的輸入。請確保已啟用通知並接受所需的許可證。顯示免責宣告的螢幕截圖。

    • 啟用型別:這是用於表示神經網路中每個層的中間輸出(啟用)的資料型別。

    • 權重型別:這是用於表示模型的學習引數(權重)的資料型別。

    • 量化資料集:用於量化的校準資料集。

      如果您的工作流使用的資料集需要在 Hugging Face 上批准許可協議(例如 ImageNet-1k),您將被提示在繼續之前在資料集頁面上接受條款。這是法律合規性所必需的。

      1. 選擇HuggingFace 訪問令牌按鈕以獲取您的 Hugging Face 訪問令牌。

        Screenshot that shows input token step 1: start to get Hugging Face Access Token.

      2. 選擇開啟以開啟 Hugging Face 網站。

        Screenshot that shows input token step 2: open Hugging Face websites.

      3. 在 Hugging Face 門戶上獲取您的令牌並將其貼上到 Quick Pick 中。按Enter

        Screenshot that shows input token step 3: input token on dropdown textbox.

    • 量化資料集拆分:資料集可以有不同的拆分,如驗證集、訓練集和測試集。

    • 量化資料集大小:用於量化模型的資料量。

    有關啟用和權重型別的更多資訊,請參閱資料型別選擇

    您也可以停用此部分。在這種情況下,工作流將只將模型轉換為 ONNX 格式,而不對模型進行量化。

    評估

    在本節中,您需要選擇要用於評估的執行提供程式 (EP),無論模型是在哪個平臺上轉換的。

    • 評估物件:您要評估模型的裝置。可能的值有
      • Qualcomm NPU:要使用此功能,您需要相容的 Qualcomm 裝置。
      • AMD NPU:要使用此功能,您需要配備支援的 AMD NPU 的裝置。
      • Intel NPU:要使用此功能,您需要配備支援的 Intel NPU 的裝置。
      • CPU:任何 CPU 都可以工作。
    • 評估資料集:用於評估的資料集。
    • 評估資料集拆分:資料集可以有不同的拆分,如驗證集、訓練集和測試集。
    • 評估資料集大小:用於評估模型的資料量。

    您也可以停用此部分。在這種情況下,工作流將只將模型轉換為 ONNX 格式,而不評估模型。

  3. 透過選擇執行來執行工作流

    預設作業名稱是使用工作流名稱和時間戳生成的(例如,bert_qdq_2025-05-06_20-45-00),以便於跟蹤。

    在作業執行期間,您可以透過選擇狀態指示器或“歷史記錄”面板“操作”下的三點選單來取消作業,然後選擇停止執行

    Hugging Face 合規性警報:在量化過程中,我們需要校準資料集。在繼續之前,您可能會被提示接受許可條款。如果您錯過了通知,執行過程將暫停,等待您的輸入。請確保已啟用通知並接受所需的許可證。

  4. (可選)在雲中執行模型轉換

    當您的本地機器沒有足夠的計算或儲存容量時,雲轉換使您能夠在雲中執行模型轉換和量化。您需要 Azure 訂閱才能使用雲轉換。

    1. 從右上角的下拉選單中選擇使用雲執行。請注意,評估部分已停用,因為雲環境沒有用於推理的目標處理器。

      Screenshot that shows Run with Cloud button.

    2. AI 工具包首先檢查是否已準備好用於雲轉換的 Azure 資源。如果需要,系統會提示您輸入 Azure 訂閱和資源組以預配 Azure 資源。

      Screenshot that shows prompt for provisionning.

    3. 預配完成後,預配配置將儲存在工作區根資料夾中的model_lab.workspace.provision.config中。此資訊被快取以重複使用 Azure 資源並加速雲轉換過程。如果您想使用新資源,請刪除此檔案並再次運行雲轉換。

    4. 將觸發 Azure 容器應用 (ACA) 作業以運行雲轉換。對於正在執行的作業,您可以

      • 選擇狀態連結以導航到 Azure ACA 作業執行歷史記錄頁面。
      • 選擇日誌以導航到 Azure Log Analytics。
      • 選擇重新整理以獲取當前作業狀態。

      Screenshot that shows prompt for provisionning.

注意

模型轉換和量化:您可以在除 LLM 模型之外的任何裝置上執行工作流。量化配置僅針對 NPU 進行了最佳化。如果目標系統不是 NPU,建議取消選中此步驟。

LLM 模型量化:如果要量化LLM 模型,則需要 Nvidia GPU。

如果您想在另一臺帶有 GPU 的裝置上量化模型,您可以自行設定環境,請參考ManualConversionOnGPU。請注意,只有“量化”步驟需要 GPU。量化後,您可以在 NPU 或 CPU 上評估模型。

重新評估提示

模型成功轉換後,您可以使用重新評估功能再次執行評估,而無需模型轉換。

轉到“歷史記錄”面板並找到模型執行作業。選擇“操作”下的三點選單以重新評估模型。

您可以選擇不同的 EP 或資料集進行重新評估

Screenshot that shows re-evaluation. It contains configurations such as name, system and datasets settings.

失敗作業的提示

如果您的作業被取消或失敗,您可以選擇作業名稱以調整工作流並再次執行作業。為避免意外覆蓋,每次執行都會建立一個新的歷史記錄資料夾,其中包含自己的配置和結果。

檢視結果

轉換中的“歷史記錄”面板是您跟蹤、審查和管理所有工作流執行的中央儀表板。每次執行模型轉換和評估時,都會在“歷史記錄”面板中建立一個新條目,從而確保完全可追溯性和可再現性。

  • 找到您要審查的工作流執行。每個執行都帶有一個狀態指示器(例如,成功、已取消)
  • 選擇執行名稱以檢視轉換配置
  • 選擇狀態指示器下的日誌以檢視日誌和詳細執行結果
  • 模型成功轉換後,您可以在“指標”下檢視評估結果。準確性、延遲和吞吐量等指標與每個執行一起顯示

Screenshot that shows history, including name, time, parameters and so on.

使用示例筆記本進行模型推理

  • 轉到“歷史記錄”面板。選擇“操作”下的三點選單。

    從下拉選單中選擇在示例中推理

    Screenshot that shows actions, including inference, copy model path and re-evaluate.

  • 選擇 Python 環境

    • 系統將提示您選擇一個 Python 虛擬環境。預設執行時為:C:\Users\{user_name}\.aitk\bin\model_lab_runtime\Python-WCR-win32-x64-3.12.9
    • 請注意,預設執行時包含所需的一切,否則,請手動安裝 requirements.txt
  • 該示例將在 Jupyter Notebook 中啟動。您可以自定義輸入資料或引數以測試不同的場景。

注意

對於使用雲轉換的模型,在狀態變為成功後,選擇雲下載圖示將輸出模型下載到本地計算機。顯示操作的螢幕截圖,包括從雲下載模型的圖示。

為避免覆蓋任何現有的本地檔案(例如配置或歷史記錄相關檔案),僅下載缺失的檔案。如果您想下載一個乾淨的副本,請先刪除本地資料夾,然後再次下載。

提示

模型相容性:確保轉換後的模型支援推理示例中指定的 EP。

示例位置:推理示例與執行工件一起儲存在歷史記錄資料夾中。

匯出並與他人共享

轉到“歷史記錄”面板。選擇匯出以與他人共享模型專案。這將複製模型專案,但不包含歷史記錄資料夾。如果您想與他人共享模型,請選擇相應的作業。這將複製包含模型及其配置的選定歷史記錄資料夾。

您學到了什麼

在本文中,您學習瞭如何

  • 在 VS Code 的 AI 工具包中建立模型轉換專案。
  • 配置轉換工作流,包括量化和評估設定。
  • 執行轉換工作流,將預構建的模型轉換為最佳化的 ONNX 模型。
  • 檢視轉換結果,包括指標和日誌。
  • 使用示例筆記本進行模型推理和測試。
  • 匯出模型專案並與他人共享。
  • 使用不同的執行提供程式或資料集重新評估模型。
  • 處理失敗的作業並調整配置以重新執行。
  • 瞭解支援的模型及其轉換和量化要求。

另請參閱