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

圖中顯示典型的 Agent Platform Neural Architecture Search 類神經架構搜尋曲線。Y-axis 顯示試用獎勵,X-axis 顯示啟動的試用次數。隨著試驗次數增加,控制器會開始尋找更優質的模型。因此,獎勵會開始增加,之後獎勵變異數和獎勵成長會開始減少,並顯示收斂。在收斂點,試驗次數可能因搜尋空間大小而異,但約為 2000 次。每項試驗都是完整訓練的較小版本,稱為代理工作,會在兩個 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 配額:(每個試驗的 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 訓練器,其中包含根據筆記本中發布的公開資料集得出的結果
- 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 多次,找出符合目標裝置延遲時間和/或記憶體限制的最佳解決方案。下圖顯示架構搜尋架構的主要元件:

- 模型:具有運算和連線的類神經架構。
- 搜尋空間:可設計及最佳化的可能模型 (作業和連線) 空間。
- 訓練器 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 運作中的 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 語言定義自訂搜尋空間。
- 將搜尋空間定義整合至訓練師程式碼。
- 在訓練師程式碼中新增自訂指標報表。
- 在訓練家代碼中新增自訂獎勵。
- 建構訓練師容器。
- 設定部分訓練 (代理工作) 的搜尋試用參數。搜尋訓練應盡快完成 (例如 30 至 60 分鐘),以便部分訓練模型:
- 樣本模型收集獎勵所需的最低訓練週期數 (最低訓練週期數不需確保模型收斂)。
- 超參數 (例如學習率)。
在本機執行搜尋,確保搜尋空間整合式容器可正常運作。
以五項測試試驗啟動搜尋 (第 1 階段) 工作,並確認搜尋試驗符合執行階段和準確度目標。 Google Cloud
以 +1k 試驗次數啟動 Google Cloud 搜尋 (第 1 階段) 工作。
在搜尋過程中,也請設定定期間隔,訓練 (第 2 階段) 前 N 個模型:
- 超參數和超參數搜尋演算法。第 2 階段通常會使用與第 1 階段類似的設定,但某些參數的設定會較高,例如訓練步驟/訓練週期和通道數。
- 停止條件 (訓練週期數)。
分析所回報的指標和/或架構,以取得洞察資訊。
架構搜尋實驗後,可以接續進行擴展搜尋實驗,然後再進行擴增搜尋實驗。
文件閱讀順序
- (必要) 設定環境
- (必填) 教學課程
- (僅限 PyTorch 客戶) 使用雲端資料有效率地訓練 PyTorch
- (必要) 最佳做法和建議工作流程
- (必要) Proxy 工作設計
- (僅在使用預先建構的訓練程式時為必要) 如何使用預先建構的搜尋空間和訓練程式
參考資料
- 使用機器學習探索神經網路架構
- MnasNet:Towards Automating the Design of Mobile Machine Learning Models
- EfficientNet:透過 AutoML 和模型資源調度提升準確度和效率
- NAS-FPN:學習可擴充的物件偵測特徵金字塔架構
- SpineNet:學習用於辨識和定位的尺度置換主幹
- RandAugment