最佳實踐:Hyperparameter Hyperopt調優

最佳實踐

  • 貝葉斯方法可以更有效比網格搜索和隨機搜索。因此,Hyperopt Parzen樹估計(TPE)算法,您可以探索更多的hyperparameters和更大的範圍。使用領域知識限製搜索域可以調優和優化產生更好的結果。

  • 當你使用hp.choice (),Hyperopt返回選擇的索引列表。因此參數登錄MLflow也是該指數。使用hyperopt.space_eval ()獲取參數值。

  • 模型訓練周期長,開始嚐試小數據集和許多hyperparameters。使用MLflow識別表現最好的模型和確定哪些hyperparameters可以固定。通過這種方式,您可以減少參數空間準備大規模調整。

  • 利用條件維度和hyperparameters Hyperopt支持。例如,當你評估多個口味的梯度下降法,而不是限製hyperparameter空間共同hyperparameters,可以有條件hyperparameters-the Hyperopt包括那些隻適合口味的一個子集。關於使用條件參數的更多信息,請參閱定義一個搜索空間

  • 當使用SparkTrials,適當配置並行處理器僅僅與GPU-enabled集群。在磚,CPU和GPU集群使用不同數量的人均節點執行人線程。CPU使用多個集群每個節點執行人線程。GPU集群使用每個節點隻有一個執行人線程來避免衝突在多個火花任務試圖使用相同的GPU。雖然這是通常最優庫編寫的GPU,這意味著GPU集群的最大並行度下降,所以要注意有多少GPU每個試驗可以用在選擇GPU實例類型。看到GPU-enabled集群獲取詳細信息。

  • 不要使用SparkTrials在自動定量集群。Hyperopt選擇執行開始時的並行性價值。如果集群後自動定量,Hyperopt將無法利用新集群的大小。

故障排除

  • 南的掛失(不是一個數字)通常意味著目標函數傳遞給fmin ()返回NaN。這並不影響其他運行,您可以安全地忽略。為了防止這個結果,試著調整hyperparameter空間或修改目標函數。

  • 因為Hyperopt使用隨機搜索算法,每次運行的損失通常不單調減少。然而,這些方法經常找到最好的hyperparameters比其他方法要快多了。

  • Hyperopt和火花產生開銷,可以主宰審判期限短試驗(低幾十秒)。你觀察的加速可能很小甚至為零。

示例筆記本:不同大小的數據集的最佳實踐

SparkTrials運行試驗引發工人節點。這個筆記本提供指導如何移動數據集不同數量級的工人在使用節點SparkTrials

處理數據集不同數量級的筆記本

在新標簽頁打開筆記本