本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
模型訓練最佳實務
您可以採取一些措施來改善 Neptune ML 模型的效能。
選擇正確的節點屬性
並非圖形中的所有屬性都有意義或與您的機器學習任務相關。在資料匯出期間,應排除任何不相關的屬性。
以下是一些最佳實務:
使用領域專家來協助評估特徵的重要性,以及使用它們進行預測的可行性。
移除您確定是多餘或無關的特徵,以減少資料中的干擾和不重要的相關性。
在建置模型時進行迭代。在進行時調整特徵、特徵組合和調校目標。
Amazon Machine Learning 開發人員指南中的特徵處理為與 Neptune ML 相關的特徵處理提供其他指導方針。
處理異常值資料點
異常值是與剩餘資料明顯不同的資料點。資料異常值可能會破壞或誤導訓練程序,導致訓練時間更長或模型準確度降低。除非它們真的很重要,否則您應該在匯出資料之前消除異常值。
移除重複的節點和邊緣
儲存在 Neptune 的圖形可能具有重複的節點或邊緣。這些冗餘元素將為 ML 模型訓練帶來干擾。在匯出資料之前消除重複的節點或邊緣。
調校圖形結構
匯出圖形時,您可以變更特徵的處理方式及圖形的建構方式,以改善模型效能。
以下是一些最佳實務:
當邊緣屬性具有邊緣類別的意義時,在某些情況下,值得將其轉換為邊緣類型。
用於數值屬性的預設標準化政策是
min-max
,但在某些情況下,其他標準化政策效果更好。您可以預先處理屬性並變更標準化政策,如 model-HPO-configuration.json 檔案的元素 中所述。匯出程序會根據屬性類型自動產生特徵類型。例如,它會將
String
屬性視為類別特徵,並將Float
和Int
屬性視為數值特徵。如果需要的話,您可在匯出後修改特徵類型 (請參閱 model-HPO-configuration.json 檔案的元素)。
調校超參數範圍和預設值
資料處理操作會從圖形推斷超參數組態範圍。如果產生的模型超參數範圍和預設值不適用於圖形資料,您可以編輯 HPO 組態檔案,以建立您自己的超參數調校策略。
以下是一些最佳實務:
當圖形變大時,預設隱藏的維度大小可能不夠大,無法包含所有資訊。您可以變更
num-hidden
超參數來控制隱藏的維度大小。-
對於知識圖譜嵌入(KGE)模型,您可能想要根據圖形結構和預算變更正在使用的特定模型。
TrainsE
模型在處理一對多 (1-N)、多對一 (N-1) 和多對多 (N-N) 關係時遇到困難。DistMult
模型在處理對稱關係時遇到困難。RotatE
擅長建模各種關係,但在訓練期間比TrainsE
和DistMult
更昂貴。 在某些情況下,當節點識別和節點特徵資訊都很重要時,您應該使用
`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 支援