關於 Agent Platform Vertex AI Neural Architecture Search

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

判斷 Agent Platform Neural Architecture Search 是否為最適合我的工具

  • Agent Platform Neural Architecture Search 是高階最佳化工具,可用來找出準確度最高的類神經架構,無論是否有延遲、記憶體或自訂指標等限制。可能的神經架構選擇搜尋空間可達 10^20。這項技術在過去幾年成功生成多個先進的電腦視覺模型,包括 Nasnet、MNasnet、EfficientNet、NAS-FPN 和 SpineNet。
  • 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 類神經架構搜尋。
  • 您應該要有內部團隊負責調整模型,且該團隊對要修改及嘗試的架構參數有基本概念。這些架構參數可能包括核心大小、通道數量或連線數量等。如果您有想探索的搜尋空間,Agent Platform Neural Architecture Search 非常實用,可減少至少約六個月的工程時間,探索大型搜尋空間:最多 10^20 個架構選項。
  • Agent Platform Neural Architecture Search 適用於能花費數千美元進行實驗的企業客戶。
  • Agent Platform Neural Architecture Search 不僅適用於視覺用途,目前僅提供以視覺為基礎的預先建構搜尋空間和預先建構訓練器,但客戶也可以自備非視覺搜尋空間和訓練器。
  • Agent Platform Neural Architecture Search 不會使用超級網路 (oneshot-NAS 或以權重共用為基礎的 NAS) 方法,您只需提供自己的資料,並將其做為解決方案。自訂超網路並非易事 (需要數月時間),與超網路不同,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 次。每項試驗都是完整訓練的縮小版,稱為「Proxy 工作」,會在兩個 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 配額用量:(num-gpus-per-trial * num-parallel-trials) = 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% 的 top-1 準確率,延遲時間為 78 毫秒,比 MobileNetV2 快 1.8 倍,準確率高 0.5%,比 NASNet 快 2.3 倍,準確率高 1.2%。不過,這個範例使用 GPU (而非 TPU) 進行訓練,並使用雲端 CPU (n1-highmem-8) 評估延遲時間。在這個範例中,MNasNet 的預期 Stage2 top-1 準確率為 75.2%,雲端 CPU (n1-highmem-8) 的延遲時間為 50 毫秒。

這項作業的費用明細如下:

  • 第 1 階段搜尋:

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

    • 試驗次數:10
    • 每次試驗的 GPU 數量:4
    • GPU 類型:TESLA_T4
    • 單次試驗平均訓練時間:約 9 天
    • 並行測試數量:10
    • GPU 配額用量:(num-gpus-per-trial * num-parallel-trials) = 40 個 T4 GPU。由於這個數字高於預設配額,請從專案 UI 建立配額要求。詳情請參閱「setting_up_path」。 您也可以使用 20 個 T4 GPU 執行這項作業,方法是執行兩次作業,每次執行 5 個模型,而不是同時執行所有 10 個模型。
    • 執行時間:(總試驗次數 * 每次試驗訓練時間)/(並行試驗數量)/24 = ~9 天
    • GPU 時數:(試驗總數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 8,960 個 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 配額用量:(num-gpus-per-trial * num-parallel-trials) = 20 個 T4 GPU。由於這個數字高於預設配額,您必須從專案 UI 建立配額要求。詳情請參閱「要求提高專案的裝置配額」。
    • 執行時間:(總試驗次數 * 每次試驗訓練時間)/(並行試驗數量)/24 = 12.5 天
    • GPU 時數:(試驗總數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 6,000 T4 GPU 時數。
    • 費用:約 $7,400 美元
  • 使用前 10 名模型進行第 2 階段完整訓練:

    • 試驗次數:10
    • 每次試驗的 GPU 數量:2
    • GPU 類型:TESLA_T4
    • 單一試驗平均訓練時間:約 4 天
    • 並行測試數量:10
    • GPU 配額用量:(num-gpus-per-trial * num-parallel-trials) = 20 個 T4 GPU。**由於這個數字高於預設配額,您必須透過專案使用者介面建立配額要求。詳情請參閱「要求提高專案的裝置配額」。如需自訂配額,請參閱同一份說明文件。
    • 執行時間:(總試驗次數 * 每次試驗訓練時間)/(並行試驗數量)/24 = 約 4 天
    • GPU 時數:(試驗總數 * 每次試驗的訓練時間 * 每次試驗的 GPU 數量) = 1920 T4 GPU 時數。
    • 費用:約 $2,400 美元
  • 如要進一步瞭解代理任務設計成本,請參閱「代理任務設計」。 這項成本與訓練 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,甚至將架構搜尋擴充至非視覺用途。

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

  • Tensorflow 訓練器,結果根據公開資料集,並發布在筆記本中
    • 使用端對端 (SpineNet) 搜尋空間進行物件偵測
    • 使用預先建構的骨幹 (MnasNet) 搜尋空間進行分類
    • LiDAR 3D 點雲物件偵測,採用預先建構的端對端搜尋空間
    • 搜尋目標裝置時,受限於延遲時間和記憶體
  • PyTorch 訓練器僅供教學範例使用
    • PyTorch 3D 醫療影像分割搜尋空間範例
    • PyTorch 式 MNasNet 分類
    • 搜尋目標裝置時,受限於延遲時間和記憶體
  • 其他以 TensorFlow 為基礎的預建頂尖搜尋空間,並附有程式碼
    • 模型資源調度
    • 資料增強

Agent Platform Neural Architecture Search 提供的完整功能,也能輕鬆用於自訂架構和用途:

  • Agent Platform Neural Architecture Search 語言,用於定義可能類神經架構的自訂搜尋空間,並將這個搜尋空間與自訂訓練器程式碼整合。
  • 提供程式碼,可直接使用預先建構的最先進搜尋空間。
  • 立即可用的預先建構訓練器,內含程式碼,可在 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 是一種自動設計類神經網路的技術。過去幾年,該團隊成功生成多個先進的電腦視覺模型,包括:

這些模型在電腦視覺問題的 3 大關鍵類別中都處於領先地位:圖片分類、物件偵測和分割。

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

Agent Platform Neural Architecture Search 架構的元件。

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

使用者設定工作

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 服務運作中

設定要使用的訓練容器後,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 語言定義自訂搜尋空間。
      • 將搜尋空間定義整合至訓練器程式碼。
      • 在訓練器程式碼中新增自訂指標回報功能。
      • 在訓練師代碼中加入自訂獎勵。
    • 建構訓練器容器。
    • 設定部分訓練 (Proxy 任務) 的搜尋試驗參數。搜尋訓練最好能快速完成 (例如 30 到 60 分鐘),以便部分訓練模型:
      • 取樣模型收集獎勵所需的最低週期數 (最低週期數不需要確保模型收斂)。
      • 超參數 (例如學習率)。
  • 在本機執行搜尋,確保整合搜尋空間的容器能正常運作。

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

  • 啟動 Google Cloud 搜尋 (階段 1) 工作,並執行 1,000 次以上的試驗。

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

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

架構搜尋實驗後,可以接著進行擴充搜尋實驗,再進行增強搜尋實驗。

說明文件閱讀順序

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

參考資料