關於 Agent Platform Vertex AI Neural Architecture Search

有了 Agent Platform Neural Architecture Search,您就能根據準確率、延遲時間、記憶體、前述三者的組合或自訂指標,搜尋最佳類神經架構。

判斷 Agent Platform Neural Architecture Search 是否最適合我

  • Agent Platform Neural Architecture Search 是一項高階最佳化工具,可根據準確率 (有或沒有延遲時間、記憶體或自訂指標等限制條件),找出最佳類神經架構。可能的神經架構選擇搜尋空間可能高達 10^20。這項技術已成功生成多個最先進的電腦視覺模型,包括 NasnetMNasnetEfficientNetNAS-FPNSpineNet
  • Agent Platform Neural Architecture Search 並非解決方案,您無法直接匯入資料,就期望能獲得良好結果,而不進行實驗。這項工具用於實驗。
  • Agent Platform Neural Architecture Search 不適用於超參數調整,例如調整學習率或最佳化工具設定。這項服務僅適用於架構搜尋,不應與超參數調整功能搭配使用。
  • 如果訓練資料有限,或資料集極度不平衡 (某些類別非常罕見),建議不要使用 Agent Platform Neural Architecture Search。如果資料不足,您已在基準訓練中使用大量擴增功能,則不建議使用 Agent Platform Neural Architecture Search。
  • 您應先嘗試其他傳統和慣用的機器學習方法和技術,例如超參數調整。只有在這些傳統方法無法帶來進一步的效益時,才應使用 Agent Platform Neural Architecture Search。
  • 您應該要有模型微調的內部團隊,對要修改和嘗試的架構參數有基本概念。這些架構參數可能包括核心大小、通道數量或連線,以及許多其他可能性。如果您想探索搜尋空間,Agent Platform Neural Architecture Search 非常有價值,可減少至少約六個月的工程時間,探索大型搜尋空間:最多 10^20 個架構選項。
  • Agent Platform Neural Architecture Search 適用於企業客戶,他們可花費數千美元進行實驗。
  • Agent Platform 類神經架構搜尋不限於視覺用途。 目前僅提供以視覺為基礎的預先建構搜尋空間和預先建構訓練器,但客戶也可以自備非視覺搜尋空間和訓練器。
  • Agent Platform Neural Architecture Search 不會使用超網路(一次性 NAS 或以權重共用為基礎的 NAS) 方法,您只需自備資料,即可做為解決方案使用。自訂超級網路並非易事 (需要數月時間)。與 Supernet 不同,Agent Platform Neural Architecture Search 可高度自訂,定義自訂搜尋空間和獎勵。自訂作業大約需要一到兩天。
  • Agent Platform Neural Architecture Search 目前在全球 8 個區域提供服務。請確認您所在區域的供應情形

使用 Agent Platform Neural Architecture Search 之前,請先閱讀以下章節,瞭解預期費用、結果增益和 GPU 配額需求。

預期費用、成效增幅和 GPU 配額需求

NAS 搜尋。

圖中顯示典型的 Agent Platform Neural Architecture Search 類神經架構搜尋曲線。Y-axis 顯示試用獎勵,X-axis 顯示啟動的試用次數。隨著試驗次數增加,控制器會開始尋找更優質的模型。因此,獎勵會開始增加,之後獎勵變異數和獎勵成長會開始減少,並顯示收斂。在收斂點,試驗次數可能因搜尋空間大小而異,但約為 2000 次。每項試驗都是完整訓練的較小版本,稱為代理工作,會在兩個 Nvidia V100 GPU 上執行約一到兩小時。顧客隨時可以手動停止搜尋,且在收斂點出現前,可能會發現比基準更高的獎勵模型。建議等到收斂點出現後,再選擇較好的結果。搜尋完成後,下一個階段是挑選前 10 項試驗 (模型),並對這些試驗執行完整訓練。

(選用) 試用預先建立的 MNasNet 搜尋空間和訓練程式

在這個模式中,請觀察搜尋曲線或幾次試驗 (約 25 次),並使用預先建立的 MNasNet 搜尋空間和訓練程式進行測試。

MnasNet 玩具執行作業。

如圖所示,第 1 階段的最佳獎勵從試驗 1 的 ~0.30 開始攀升,到試驗 17 時達到 ~0.37。由於取樣隨機性,實際跑步結果可能略有不同,但最佳獎勵應該會小幅增加。請注意,這仍是玩具執行,不代表任何概念驗證或公開基準驗證。

這項執行的費用明細如下:

  • 第 1 階段:
    • 試驗次數:25
    • 每個試驗的 GPU 數量:2
    • GPU 類型:TESLA_T4
    • 每個試驗的 CPU 數量:1
    • CPU 類型:n1-highmem-16
    • 單次試驗的平均訓練時間:3 小時
    • 平行測試數量:6
    • 已使用的 GPU 配額:(每個試驗的 GPU 數量 * 平行試驗數量) = 12 個 GPU。 測試時請使用 us-central1 區域,並將訓練資料存放在同一區域。不需要額外配額。
    • 執行時間:(總試驗次數 * 每次試驗的訓練時間)/(平行試驗次數) = 12 小時
    • GPU 時數:(總試驗次數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 150 個 T4 GPU 時數
    • CPU 時數:(試驗總數 * 每次試驗的訓練時間 * 每次試驗的 CPU 數) = 75 個 n1-highmem-16 小時
    • 費用:約 $185 美元。您可以提早停止工作,以降低費用。如要計算確切價格,請參閱定價頁面

由於這是玩具執行項目,因此不需要為第 1 階段的模型執行完整的第 2 階段訓練。如要進一步瞭解如何執行第 2 階段,請參閱教學課程 3

本次執行作業使用 MnasNet 筆記本

(選用) 執行預先建構的 MNasNet 搜尋空間和訓練程式,進行概念驗證 (POC)

如果您有興趣幾乎完全複製已發布的 MNasnet 結果,可以使用這個模式。根據論文,MnasNet 在 Pixel 手機上可達到 75.2% 的最高準確率,延遲時間為 78 毫秒,比 MobileNetV2 快 1.8 倍,準確率高出 0.5%,比 NASNet 快 2.3 倍,準確率高出 1.2%。不過,本範例使用 GPU 進行訓練,並使用 Cloud CPU (n1-highmem-8) 評估延遲時間,而非 TPU。以這個範例來說,MNasNet 的第 2 階段最高準確率預期為 75.2%,在 Cloud CPU (n1-highmem-8) 上的延遲時間為 50 毫秒。

這項執行的費用明細如下:

  • 第 1 階段搜尋:

    • 試驗次數:2000
    • 每個試驗的 GPU 數量:2
    • GPU 類型:TESLA_T4
    • 單次試驗的平均訓練時間:3 小時
    • 平行測試數量:10
    • 使用的 GPU 配額:(每次試驗的 GPU 數量 * 並行試驗數量) = 20 個 T4 GPU。 由於這個數字高於預設配額,請從專案 UI 建立配額要求。詳情請參閱 setting_up_path
    • 執行時間:(總試驗次數 * 每次試驗的訓練時間)/(平行試驗次數)/24 = 25 天。 注意:這項工作會在 14 天後終止。之後,您可以使用一個指令輕鬆繼續搜尋工作,再延長 14 天。如果 GPU 配額較高,執行時間就會成比例縮短。
    • GPU 時數:(總試驗次數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 12000 個 T4 GPU 時數。
    • 費用:約$15,000 美元
  • 第 2 階段:使用前 10 個模型進行完整訓練:

    • 試驗次數:10
    • 每個試驗的 GPU 數量:4
    • GPU 類型:TESLA_T4
    • 單一試驗的平均訓練時間:約 9 天
    • 平行測試數量:10
    • 使用的 GPU 配額:(每次試驗的 GPU 數量 * 並行試驗數量) = 40 個 T4 GPU。 由於這個數字高於預設配額,請從專案 UI 建立配額要求。詳情請參閱 setting_up_path 您也可以執行這項作業兩次,每次執行五個模型,而非同時執行全部 10 個模型,這樣就能使用 20 個 T4 GPU 執行作業。
    • 執行時間:(總試驗次數 * 每次試驗的訓練時間)/(平行試驗次數)/24 = 約 9 天
    • GPU 時數:(試驗總數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 8960 個 T4 GPU 時數。
    • 費用:約$8,000 美元

總費用:約 $23,000 美元。請參閱價格頁面,計算確切價格。附註:這個範例並非一般訓練作業的平均費用。完整訓練執行在四個 TESLA_T4 GPU 上執行約九天。

本次執行作業使用 MnasNet 筆記本

使用搜尋空間和訓練師

我們會提供一般自訂使用者的預估費用。 視訓練工作、GPU 和 CPU 而定,您的需求可能有所不同。如要執行端對端作業,至少需要 20 個 GPU 配額,詳情請參閱這篇文章。注意:效能提升幅度完全取決於工作。 我們只能提供 MNasnet 等範例,做為提升效能的參考範例。

這項假設自訂執行的費用明細如下:

  • 第 1 階段搜尋:

    • 試驗次數:2,000 次
    • 每個試驗的 GPU 數量:2
    • GPU 類型:TESLA_T4
    • 單一試驗的平均訓練時間:1.5 小時
    • 平行測試數量:10
    • 使用的 GPU 配額:(每次試驗的 GPU 數量 * 並行試驗數量) = 20 個 T4 GPU。 由於這個數字高於預設配額,您需要從專案 UI 建立配額要求。詳情請參閱「為專案要求額外裝置配額」。
    • 執行時間:(總試驗次數 * 每次試驗的訓練時間)/(並行試驗次數)/24 = 12.5 天
    • GPU 時數:(試驗總數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 6000 個 T4 GPU 時數。
    • 費用:約 $7,400 美元
  • 第 2 階段:使用前 10 個模型進行完整訓練:

    • 試驗次數:10
    • 每個試驗的 GPU 數量:2
    • GPU 類型:TESLA_T4
    • 單次試驗訓練的平均時間:約 4 天
    • 平行測試數量:10
    • 已使用的 GPU 配額:(每個試驗的 GPU 數量 * 平行試驗數量) = 20 個 T4 GPU。 **由於這個數字超過預設配額,您需要透過專案 UI 建立配額要求。詳情請參閱「為專案申請額外裝置配額」。如需自訂配額,請參閱同一份文件。
    • 執行時間:(總試驗次數 * 每次試驗的訓練時間)/(平行試驗次數)/24 = 約 4 天
    • GPU 時數:(總試驗次數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 1920 個 T4 GPU 時數。
    • 費用:約 $2,400 美元
  • 如要進一步瞭解 Proxy 工作設計費用,請參閱「Proxy 工作設計」。 這項費用與訓練 12 個模型類似 (圖中的第 2 階段使用 10 個模型):

    • 使用的 GPU 配額:與圖中的第 2 階段執行作業相同。
    • 費用:(12/10) * 10 個模型的第 2 階段費用 = 約$2,880 美元

總費用:約 $12,680 美元。如要計算確切價格,請參閱定價頁面

這些第 1 階段的搜尋費用,是指搜尋到達到收斂點為止的費用,以及爭取最高成效的費用。不過,請勿等到搜尋結果收斂。 如果搜尋獎勵曲線已開始成長,使用目前最佳模型執行第 2 階段完整訓練,搜尋費用較低時,效能增幅可能較小。舉例來說,對於先前顯示的搜尋圖,請勿等到達到 2,000 次收斂試驗。您可能在 700 或 1,200 次試驗中找到更合適的模型,並可針對這些模型執行第 2 階段的完整訓練。您隨時可以提早停止搜尋,以降低成本。您也可以在搜尋執行期間,並行執行第 2 階段的完整訓練,但請確保您有足夠的 GPU 配額,可支援額外的平行工作。

成效和費用摘要

下表摘要說明不同用途的資料點,以及相關聯的效能和費用。

摘要。

用途和功能

Agent Platform Neural Architecture Search 類神經架構搜尋功能彈性十足,而且操作簡單。新手使用者可以運用預先建立的搜尋空間、預先建立的訓練程式和筆記本,不必進行任何其他設定,即可開始探索 Agent Platform Neural Architecture Search 的資料集。同時,專家使用者可以搭配自訂訓練器、自訂搜尋空間和自訂推論裝置,使用 Agent Platform Neural Architecture Search Neural Architecture Search,甚至將架構搜尋擴展至非視覺用途。

Agent Platform Neural Architecture Search 提供預先建構的訓練程式和搜尋空間,可在 GPU 上執行下列用途:

  • Tensorflow 訓練器,其中包含根據筆記本中發布的公開資料集得出的結果
    • 使用端對端 (SpineNet) 搜尋空間偵測圖片中的物件
    • 使用預先建構的骨幹 (MnasNet) 搜尋空間進行分類
    • 使用預先建構的端對端搜尋空間,透過 LiDAR 3D 點雲偵測物件
    • 延遲和記憶體受限的目標裝置搜尋
  • PyTorch 訓練師僅做為教學課程範例使用
    • PyTorch 3D 醫療影像分割搜尋空間範例
    • 以 PyTorch 為基礎的 MNasNet 分類
    • 延遲和記憶體受限的目標裝置搜尋
  • 其他以 TensorFlow 為基礎的預先建構最先進搜尋空間,並提供程式碼
    • 模型縮放
    • 資料擴增

您也可以輕鬆使用 Agent Platform Neural Architecture Search Neural Architecture Search 的全套功能,打造自訂架構和應用情境:

  • Agent Platform Neural Architecture Search 語言,可定義可能類神經架構的自訂搜尋空間,並將這個搜尋空間與自訂訓練器程式碼整合。
  • 預先建立的先進搜尋空間,可直接使用程式碼。
  • 預先建構的 Trainer 隨附程式碼,可直接在 GPU 上執行。
  • 架構搜尋的代管服務,包括:
    • Agent Platform Neural Architecture Search 控制器,可對搜尋空間取樣,找出最佳架構。
    • 預先建構的 Docker/程式庫,附有程式碼,可計算自訂硬體上的延遲時間/FLOP/記憶體。
  • 教學課程,教導如何使用 NAS。
  • 這是一組設計 Proxy 工作的工具。
  • 提供指引和範例,說明如何使用 Agent Platform Neural Architecture Search 類神經架構搜尋功能,有效率地訓練 PyTorch。
  • 程式庫支援自訂指標報表和分析。
  • Google Cloud 控制台 UI,可監控及管理工作。
  • 輕鬆使用筆記本啟動搜尋。
  • 程式庫支援以專案或工作為單位,精細管理 GPU/CPU 資源用量。
  • 以 Python 為基礎的 Nas-client,可建構 Docker、啟動 NAS 工作,以及繼續先前的搜尋工作。
  • Google Cloud 以控制台 UI 為基礎的客戶支援服務。

背景

Agent Platform Neural Architecture Search Neural Architecture Search 是一種自動設計類神經網路的技術。過去幾年,這項技術已成功生成多個最先進的電腦視覺模型,包括:

這些模型在電腦視覺問題的 3 個主要類別中,都展現了領先地位:圖像分類、物件偵測和區隔。

有了 Agent Platform Neural Architecture Search,工程師就能在同一次試驗中,針對準確率延遲時間記憶體最佳化模型,縮短模型部署時間。Agent Platform Neural Architecture Search 會探索多種不同類型的模型:控制器會提議機器學習模型,然後訓練及評估模型,並疊代 1,000 多次,找出符合目標裝置延遲時間和/或記憶體限制的最佳解決方案。下圖顯示架構搜尋架構的主要元件:

Agent Platform Neural Architecture Search 類神經架構搜尋架構的元件。

  • 模型:具有運算和連線的類神經架構。
  • 搜尋空間:可設計及最佳化的可能模型 (作業和連線) 空間。
  • 訓練器 Docker:使用者可自訂訓練器程式碼,用來訓練及評估模型,並計算模型準確度。
  • 推論裝置:硬體裝置,例如 CPU/GPU,用於計算模型延遲和記憶體用量。
  • 獎勵:模型指標的組合,例如準確率、延遲和記憶體用量,用於將模型排序為較好或較差。
  • Agent Platform Neural Architecture Search Neural Architecture Search Controller:協調演算法,負責 (a) 從搜尋空間取樣模型、(b) 接收模型獎勵,以及 (c) 提供下一組模型建議以供評估,找出最佳模型。

使用者設定工作

Agent Platform Neural Architecture Search 提供預先建構的訓練程式,並整合預先建構的搜尋空間,可搭配提供的筆記本使用,不需進行任何設定。

不過,大多數使用者都需要使用自訂訓練程式、自訂搜尋空間、自訂指標 (例如記憶體、延遲和訓練時間) 和自訂獎勵 (準確度和延遲等項目的組合)。為此,您需要:

  • 使用 Agent Platform Neural Architecture Search 提供的類神經架構搜尋語言,定義自訂搜尋空間。
  • 將搜尋空間定義整合至訓練師程式碼。
  • 在訓練師程式碼中新增自訂指標報表。
  • 在訓練家代碼中新增自訂獎勵。
  • 建構訓練容器,並用來啟動 Agent Platform Neural Architecture Search 類神經架構搜尋工作。

下圖說明瞭這項做法:

在使用者環境中設定 Agent Platform Neural Architecture Search。

Agent Platform Neural Architecture Search 運作中的 Neural Architecture Search 服務

設定要使用的訓練容器後,Agent Platform Neural Architecture Search 服務會在多個 GPU 裝置上,並行啟動多個訓練容器。您可以控制要並行用於訓練的試驗次數,以及要啟動的試驗總次數。每個訓練容器都會從搜尋空間取得建議的架構。訓練容器會建構建議的模型、執行訓練/評估,然後將獎勵回報給 Agent Platform Neural Architecture Search 服務。隨著這個程序進行,Agent Platform Neural Architecture Search 服務會使用獎勵回饋,找出越來越好的模型架構。搜尋完成後,您就能存取回報的指標,以進行進一步分析。

運作中的 Agent Platform Neural Architecture Search 服務。

Agent Platform Neural Architecture Search 的使用者流程總覽

執行 Agent Platform Neural Architecture Search 實驗的概略步驟如下:

  • 設定和定義:

    • 找出標籤資料集,並指定工作類型 (例如偵測或區隔)。
    • 自訂訓練家代碼:
      • 使用預先建立的搜尋空間,或使用 Agent Platform Neural Architecture Search 語言定義自訂搜尋空間。
      • 將搜尋空間定義整合至訓練師程式碼。
      • 在訓練師程式碼中新增自訂指標報表。
      • 在訓練家代碼中新增自訂獎勵。
    • 建構訓練師容器。
    • 設定部分訓練 (代理工作) 的搜尋試用參數。搜尋訓練應盡快完成 (例如 30 至 60 分鐘),以便部分訓練模型:
      • 樣本模型收集獎勵所需的最低訓練週期數 (最低訓練週期數需確保模型收斂)。
      • 超參數 (例如學習率)。
  • 在本機執行搜尋,確保搜尋空間整合式容器可正常運作。

  • 以五項測試試驗啟動搜尋 (第 1 階段) 工作,並確認搜尋試驗符合執行階段和準確度目標。 Google Cloud

  • 以 +1k 試驗次數啟動 Google Cloud 搜尋 (第 1 階段) 工作。

    • 在搜尋過程中,也請設定定期間隔,訓練 (第 2 階段) 前 N 個模型:

      • 超參數和超參數搜尋演算法。第 2 階段通常會使用與第 1 階段類似的設定,但某些參數的設定會較高,例如訓練步驟/訓練週期和通道數。
      • 停止條件 (訓練週期數)。
  • 分析所回報的指標和/或架構,以取得洞察資訊。

架構搜尋實驗後,可以接續進行擴展搜尋實驗,然後再進行擴增搜尋實驗。

文件閱讀順序

  1. (必要) 設定環境
  2. (必填) 教學課程
  3. (僅限 PyTorch 客戶) 使用雲端資料有效率地訓練 PyTorch
  4. (必要) 最佳做法和建議工作流程
  5. (必要) Proxy 工作設計
  6. (僅在使用預先建構的訓練程式時為必要) 如何使用預先建構的搜尋空間和訓練程式

參考資料