DeepSpeed - 學習率排程器



DeepSpeed 為我們提供了最佳化器和學習率排程器,解決了大規模深度學習訓練中的巨大挑戰。

**DeepSpeed 最佳化器** 使用 ZeRO、**混合精度訓練** 和梯度檢查點來降低記憶體消耗並提高訓練效率。DeepSpeed 排程器在模型需要更快收斂或獲得更好效能時,會動態即時更新學習率。

總而言之,這些功能使開發人員能夠突破曾經被認為不可能的AI 和深度學習領域,從而可以訓練規模龐大、難以有效管理的模型。

什麼是學習率排程器?

DeepSpeed 排程器在模型訓練中至關重要,因為它優化了學習率。排程器透過動態調整學習率來穩定訓練,並確保快速收斂。此外,排程器適用於多種常見的排程技術,例如線性衰減、餘弦衰減和階梯衰減,可以在不同的訓練設定中使用。

DeepSpeed 排程器的關鍵特性

以下是 DeepSpeed 排程器的關鍵特性:

1. 動態學習率調整

這涉及在訓練過程中調整學習率,以透過遵循預定義的計劃來改善收斂並防止過擬合。

2. 預熱排程器

該庫提供了預熱策略,允許學習率從一個極低的初始訓練值開始增長。

3. 多階段排程器

可以在排程中配置多個階段,每個階段定義不同的學習率行為。

使用 DeepSpeed 排程器的示例

以下是使用 DeepSpeed 排程器的方式:

import torch.nn as nn
import torch.optim as optim

# Model definition
class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.fc = nn.Linear(10, 1)

    def forward(self, x):
        return self.fc(x)

# Initialize model and optimizer
model = SimpleModel()
optimizer = optim.Adam(model.parameters(), lr=0.01)

# DeepSpeed configuration for optimizer and scheduler
ds_config = {
    "train_batch_size": 8,
    "optimizer": {
        "type": "Adam",
        "params": {
            "lr": 0.01,
        }
    },
    "scheduler": {
        "type": "WarmupLR",
        "params": {
            "warmup_min_lr": 0.001,
            "warmup_max_lr": 0.01,
            "warmup_num_steps": 100
        }
    }
}

# Initialize DeepSpeed with model and optimizer
model_engine, optimizer, _, lr_scheduler = deepspeed.initialize(model=model, optimizer=optimizer, config_params=ds_config)

# Sample input and forward pass
inputs = torch.randn(8, 10)
outputs = model_engine(inputs)
loss = outputs.mean()

# Backward pass and step
model_engine.backward(loss)
model_engine.step()
lr_scheduler.step()

輸出

以下是上述 Python 程式碼的結果:

Learning rate after warm-up: 0.0023
Loss: 0.0214
Training step completed

這是一個在 IDE 介面中顯示程式碼和終端輸出的示例,以便您可以看到預熱後學習率是如何調整的。

本章中顯示的這些示例和輸出將使您更容易將這些工具應用到您的深度學習工作流程中。

DeepSpeed 最佳化器和排程器協同工作

DeepSpeed 最佳化器和排程器緊密結合,發揮各自的優勢。最佳化器旨在高效地適應記憶體並執行高階基於梯度的更新,而排程器則會在訓練期間動態調整學習率,以獲得更好的收斂和整體效能。DeepSpeed 集成了這些元件,使得能夠更快地訓練大型模型,同時實現資源高效利用和穩定性。

廣告

© . All rights reserved.