技術指南

Adam 和自適應優化器

Adam 是大多數現代神經網路背後的主力優化器,自動調整每個參數的單獨學習率。

概述

Adam 是大多數現代神經網路背後的主力優化器,自動調整每個參數的單獨學習率。這很重要,因為它使深度模型的訓練速度更快,並且比普通梯度下降更不挑剔。

Adam 和自適應優化器是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

Adam(自適應矩估計)由 Kingma 和 Ba 在 2014 年提出,結合了兩個想法。首先,動量:它保持過去梯度(第一個時刻)的指數衰減平均值,因此更新在一致的方向上建立速度。其次,每參數縮放:它追蹤梯度平方的平均值(二階矩),並將每個步驟除以該值的平方根,因此具有大且雜訊梯度的參數採用較小的步長,而很少更新的參數則採用較大的步長。這種適應性意味著您通常可以在整個網路中使用一種學習率。 AdamW 的一個變體將權重衰減與梯度更新解耦,並已成為訓練大型 Transformer 和語言模型的預設。

技術洞察

Adam 為每個參數維護兩個運行平均值:m(梯度)和 v(梯度平方),並以衰減率 beta1(通常為 0.9)和 beta2(通常為 0.999)進行更新。因為兩者都從零開始,所以它們透過除以 (1 - beta^t) 進行偏差校正。更新為 theta = theta - lr * m_hat / (sqrt(v_hat) + epsilon),其中 epsilon(約 1e-8)可防止被零除。這就是為什麼 Adam 與普通 SGD 相比幾乎不需要調整學習率。

掌握 Adam 和自適應優化器

Adam 是大多數現代神經網路背後的主力優化器,自動調整每個參數的單獨學習率。這很重要,因為它使深度模型的訓練速度更快,並且比普通梯度下降更不挑剔。 Adam 和自適應優化器是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 Adam 和自適應優化器視為一個操作模型,而不是一個單一功能:定義期望的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。

在實踐中,強大的團隊使用 Adam 和自適應優化器根據可靠性和成本優化架構、資料和基礎架構選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。

多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。

戰略影響

多年來,架構決策決定著效能和營運成本。

多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

更好的工程選擇可以減少生產中的可靠性事故。

更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

Adam 和自適應優化器的未來

Adam 和 AdamW 仍然佔據主導地位,但研究正在提高萬億參數模型的效率,在該模型中,每個權重儲存兩個額外值的成本很高。諸如 Adafactor、8 位元 Adam 之類的輕內存變體,以及諸如 Lion(僅使用基於符號的動量)和 Sophia 等較新的優化器,旨在以更少的內存或更快的收斂速度來匹配 Adam 的質量。預計專門針對分散式、低精度訓練進行調整的自適應優化器將持續發展。

現實世界的實施

訓練 GPT 和 Llama 等大型語言模型,它們使用 AdamW 作為標準優化器。

僅使用預設的 Adam 學習率在自訂資料集上微調預先訓練的影像分類器(例如 ResNet)。

訓練影像生成器背後的擴散模型,例如穩定擴散。

在位元和位元組等庫中運行 8 位元 Adam,將優化器狀態適應有限的 GPU 記憶體。

實施模式

Adam 和自適應優化器的實踐

訓練 GPT 和 Llama 等大型語言模型,它們使用 AdamW 作為標準優化器。

訓練 GPT 和 Llama 等大型語言模型,它們使用 AdamW 作為標準優化器。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

Adam 和自適應優化器的實踐

僅使用預設的 Adam 學習率在自訂資料集上微調預先訓練的影像分類器(例如 ResNet)。

僅使用預設的 Adam 學習率在自訂資料集上微調預訓練的影像分類器(例如 ResNet)當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

Adam 和自適應優化器的實踐

訓練影像生成器背後的擴散模型,例如穩定擴散。

訓練影像產生器背後的擴散模型(例如穩定擴散團隊)在預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

Adam 和自適應優化器的實踐

在位元和位元組等庫中運行 8 位元 Adam,將優化器狀態適應有限的 GPU 記憶體。

在像bitsandbytes這樣的庫中運行8位Adam,以將優化器狀態適應有限的GPU內存當團隊預先定義質量閾值、為邊緣情況保留人工升級路徑並隨著時間的推移跟踪生產力增益和錯誤成本時,通常會得到更好的結果。

風險與防護欄

!

優化一項基準測試可以隱藏更廣泛的系統弱點。

!

基礎設施和維護成本常常被低估。

!

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

2

在實際負載和資料條件下進行基準測試。

在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

3

儀器監控錯誤、漂移和使用者影響。

儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

4

在擴展之前準備回滾和事件回應路徑。

在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

不斷探索