有了 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 配額需求

下圖顯示一般的 Agent Platform Neural Architecture Search 曲線。Y-axis 顯示試用獎勵,X-axis 則顯示試用次數。隨著試驗次數增加,控制器會開始尋找更好的模型。因此,獎勵開始增加,隨後獎勵變異數和獎勵成長開始減少,並顯示收斂。在收斂點,試驗次數可能會因搜尋空間大小而異,但大約是 2000 次。每項試驗都是完整訓練的縮小版,稱為「Proxy 工作」,會在兩個 Nvidia V100 GPU 上執行約一到兩小時。客戶可以隨時手動停止搜尋,而且在收斂點出現之前,可能會找到比基準獎勵更高的模型。建議等到收斂點出現後,再選擇較佳的結果。搜尋完成後,下一個階段是挑選前 10 項試驗 (模型),並對這些模型執行完整訓練。
(選用) 試用預先建構的 MNasNet 搜尋空間和訓練器
在這個模式中,請觀察搜尋曲線或幾項試驗 (約 25 項),並使用預先建構的 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 訓練器,結果根據公開資料集,並發布在筆記本中
- 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 次以上,找出在目標裝置上具有延遲時間和/或記憶體限制的最佳解決方案。下圖顯示架構搜尋架構的主要元件:

- 模型:具有運算和連結的神經架構。
- 搜尋空間:可設計及最佳化的可能模型 (作業和連結) 空間。
- 訓練器 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 服務運作中
設定要使用的訓練容器後,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 語言定義自訂搜尋空間。
- 將搜尋空間定義整合至訓練器程式碼。
- 在訓練器程式碼中新增自訂指標回報功能。
- 在訓練師代碼中加入自訂獎勵。
- 建構訓練器容器。
- 設定部分訓練 (Proxy 任務) 的搜尋試驗參數。搜尋訓練最好能快速完成 (例如 30 到 60 分鐘),以便部分訓練模型:
- 取樣模型收集獎勵所需的最低週期數 (最低週期數不需要確保模型收斂)。
- 超參數 (例如學習率)。
在本機執行搜尋,確保整合搜尋空間的容器能正常運作。
使用五個測試試驗啟動 Google Cloud 搜尋 (階段 1) 工作,並確認搜尋試驗符合執行階段和準確度目標。
啟動 Google Cloud 搜尋 (階段 1) 工作,並執行 1,000 次以上的試驗。
在搜尋過程中,也請設定定期訓練 (第 2 階段) 前 N 個模型的間隔:
- 超參數和超參數搜尋演算法。第 2 階段通常會使用與第 1 階段類似的設定,但某些參數的設定較高,例如訓練步驟/週期和通道數量。
- 停止條件 (訓練週期數)。
分析回報的指標和/或以圖表呈現架構,取得深入分析資訊。
架構搜尋實驗後,可以接著進行擴充搜尋實驗,再進行增強搜尋實驗。
說明文件閱讀順序
- (必要) 設定環境
- (必要) 教學課程
- (僅限 PyTorch 客戶) 使用雲端資料進行 PyTorch 高效率訓練
- *(必要) 最佳做法和建議工作流程
- (必要) Proxy 工作設計
- (僅在使用預先建構的訓練器時需要) 如何使用預先建構的搜尋空間和預先建構的訓練器
參考資料
- Using Machine Learning to Explore Neural Network Architecture
- MnasNet:朝向自動化設計行動機器學習模型
- EfficientNet:透過 AutoML 和模型縮放提升準確度和效率
- NAS-FPN:學習可擴充的特徵金字塔架構,用於物件偵測
- SpineNet:學習用於辨識和定位的尺度排列骨幹
- RandAugment