

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

# 分散式訓練最佳化
<a name="distributed-training-optimize"></a>

為您的使用案例及資料自訂超參數，以獲得最佳的擴展效率。在下面的討論中，我們將重點介紹一些最具影響力的訓練變數，並提供最先進實作的參考資料，讓您可以深入了解您的選項。此外，我們建議您參考偏好架構的分散式訓練文件。
+  [Apache MXNet 分散式訓練](https://mxnet.apache.org/versions/1.7/api/faq/distributed_training) 
+  [PyTorch 分散式訓練](https://pytorch.org/tutorials/beginner/dist_overview.html) 
+  [TensorFlow 分散式訓練](https://www.tensorflow.org/guide/distributed_training) 

## 批次大小
<a name="batch-size-intro"></a>

SageMaker AI 分散式工具組通常可讓您針對更大的批次進行訓練。例如，如果模型適合單一裝置，但只能以小批次規模進行訓練，則使用平行模型訓練或資料平行訓練可讓您嘗試較大的批次。

請注意，批次大小會在每次反覆運算時控制模型更新中的雜訊量，直接影響模型準確度。增加批次大小可減少梯度估計的雜訊量，這在從非常小的批次大小開始增加時會有所幫助，但是當批次大小增加到較大值時，可能會導致模型準確度降低。  

**提示**  
調整您的超參數，以確保您的模型在增加批次大小時訓練到滿意的收斂。

當批次增加時，已開發出許多技術來維持良好的模型收斂性。

## 小批次大小
<a name="distributed-training-mini-batch"></a>

在 SGD 中，小批次大小會量化梯度估計存在的雜訊量。小批次會導致非常雜訊的小批次梯度，這並不能代表資料集的真實梯度。大型小批次會導致小批次梯度接近資料集的真實梯度，而且可能不會有足夠的雜訊–可能會保持鎖定在不相關的最小值範圍內。

如需進一步了解有關這些技術的詳細資訊，請參閱以下論文：
+ [準確、大型小批次 SGD：在 1 小時內訓練 ImageNet](https://arxiv.org/pdf/1706.02677.pdf)，Goya 等。
+ [PowerAI DDL](https://arxiv.org/pdf/1708.02188.pdf)，Cho 等。
+ [橫向擴展大型小批次 SGD：在 ImageNet-1K 進行 Residual Network Training (殘差網路訓練)，提高準確性並縮短訓練時間](https://arxiv.org/pdf/1711.04291.pdf)，Codreanu 等。
+ [幾分鐘內完成 ImageNet 訓練](https://arxiv.org/pdf/1709.05011.pdf)，You 等。
+ [Convolutional Networks (卷積網路) 的大批次訓練](https://arxiv.org/pdf/1708.03888.pdf)，You 等。
+ [深度學習的大批次最佳化：在 76 分鐘內訓練 BERT](https://arxiv.org/pdf/1904.00962.pdf)，You 等。
+ [在 54 分鐘內加速了 BERT 預先訓練的大批次最佳化](https://arxiv.org/pdf/2006.13484.pdf) Zheng 等。
+ [Deep Gradient Compression](https://arxiv.org/abs/1712.01887) (深度梯度壓縮)，Lin 等。