模型訓練最佳實務 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

模型訓練最佳實務

您可以採取一些措施來改善 Neptune ML 模型的效能。

選擇正確的節點屬性

並非圖形中的所有屬性都有意義或與您的機器學習任務相關。在資料匯出期間,應排除任何不相關的屬性。

以下是一些最佳實務:

  • 使用領域專家來協助評估特徵的重要性,以及使用它們進行預測的可行性。

  • 移除您確定是多餘或無關的特徵,以減少資料中的干擾和不重要的相關性。

  • 在建置模型時進行迭代。在進行時調整特徵、特徵組合和調校目標。

Amazon Machine Learning 開發人員指南中的特徵處理為與 Neptune ML 相關的特徵處理提供其他指導方針。

處理異常值資料點

異常值是與剩餘資料明顯不同的資料點。資料異常值可能會破壞或誤導訓練程序,導致訓練時間更長或模型準確度降低。除非它們真的很重要,否則您應該在匯出資料之前消除異常值。

移除重複的節點和邊緣

儲存在 Neptune 的圖形可能具有重複的節點或邊緣。這些冗餘元素將為 ML 模型訓練帶來干擾。在匯出資料之前消除重複的節點或邊緣。

調校圖形結構

匯出圖形時,您可以變更特徵的處理方式及圖形的建構方式,以改善模型效能。

以下是一些最佳實務:

  • 當邊緣屬性具有邊緣類別的意義時,在某些情況下,值得將其轉換為邊緣類型。

  • 用於數值屬性的預設標準化政策是 min-max,但在某些情況下,其他標準化政策效果更好。您可以預先處理屬性並變更標準化政策,如 model-HPO-configuration.json 檔案的元素 中所述。

  • 匯出程序會根據屬性類型自動產生特徵類型。例如,它會將 String 屬性視為類別特徵,並將 FloatInt 屬性視為數值特徵。如果需要的話,您可在匯出後修改特徵類型 (請參閱 model-HPO-configuration.json 檔案的元素)。

調校超參數範圍和預設值

資料處理操作會從圖形推斷超參數組態範圍。如果產生的模型超參數範圍和預設值不適用於圖形資料,您可以編輯 HPO 組態檔案,以建立您自己的超參數調校策略。

以下是一些最佳實務:

  • 當圖形變大時,預設隱藏的維度大小可能不夠大,無法包含所有資訊。您可以變更 num-hidden 超參數來控制隱藏的維度大小。

  • 對於知識圖譜嵌入(KGE)模型,您可能想要根據圖形結構和預算變更正在使用的特定模型。

    TrainsE 模型在處理一對多 (1-N)、多對一 (N-1) 和多對多 (N-N) 關係時遇到困難。DistMult 模型在處理對稱關係時遇到困難。RotatE 擅長建模各種關係,但在訓練期間比 TrainsEDistMult 更昂貴。

  • 在某些情況下,當節點識別和節點特徵資訊都很重要時,您應該使用 `concat-node-embed` 告知 Neptune ML 模型,透過將節點的特徵與初始嵌入串連來取得節點的初始表示法。

  • 當您對某些超參數取得相當好的效能時,可以根據這些結果調整超參數搜尋空間。

提前停止 Neptune ML 中的模型訓練程序

提前停止可大幅縮短模型訓練執行時間和相關聯成本,而不會降低模型效能。它還可以防止模型在訓練資料上過度擬合。

提前停止取決於驗證集效能的定期測量。最初,效能隨著訓練的進行而改善,但是當模型開始過度擬合時,效能會再次開始下降。提前停止功能會識別模型開始過度擬合的點,並在該點停止模型訓練。

Neptune ML 會監控驗證指標呼叫,並將最新的驗證指標與最後 n 個評估所得到的驗證指標平均值進行比較,其中 n 是使用 window-for-early-stop 參數設定的數字。一旦驗證指標比該平均值差,Neptune ML 就會停止模型訓練並儲存迄今的最佳模型。

您可以使用下列參數控制提前停止:

  • window-for-early-stop – 此參數的值為整數,其指定在決定提前停止時要平均的最新驗證分數。預設值為 3

  • enable-early-stop – 使用此布林參數來關閉提前停止功能。依預設,其值為 true

提前停止 Neptune ML 中的 HPO 程序

Neptune ML 中的提前停止功能也會使用 SageMaker HPO 暖啟動功能,停止相較於其他訓練工作未妥善執行的訓練工作。這也可以降低成本並提高 HPO 的品質。

如需此運作方式的描述,請參閱執行暖啟動超參數調校工作

暖啟動可讓您將從先前訓練工作中學到的資訊傳遞給後續訓練工作,並提供了兩個明顯的優勢:

  • 首先,先前訓練工作的結果是用來選取好的超參數組合,以在新的調校工作中進行搜尋。

  • 其次,它允許提前停止存取更多的模型執行,從而減少調校時間。

此功能會在 Neptune ML 中自動啟用,並可讓您在模型訓練時間與效能之間取得平衡。如果您對目前模型的效能感到滿意,則可以使用該模型。否則,您會執行更多由於先前執行結果而暖啟動的 HPO,以便探索更好的模型。

取得專業支援服務

AWS 會提供專業支援服務,協助您解決 Neptune 專案上機器學習的問題。如果您遇到困難,請尋求 AWS 支援