Konfiguracja optymalizatora 8-bit Adam
Trening modelu Transformer do tłumaczenia języka w czasie rzeczywistym z użyciem Adafactora nie przynosi oczekiwanych rezultatów. Jako alternatywę postanawiasz wypróbować optymalizator 8-bit Adam, który pozwala zmniejszyć zużycie pamięci o około 75% w porównaniu ze zwykłym Adamem.
Biblioteka bitsandbytes została zaimportowana jako bnb, TrainingArguments jest zdefiniowany jako args, a optimizer_grouped_parameters jest wstępnie załadowany. Zwróć uwagę, że ćwiczenie wyświetla ostrzeżenie dotyczące libbitsandbytes_cpu.so – możesz je zignorować i kontynuować.
To ćwiczenie jest częścią kursu
Efektywne trenowanie modeli AI z PyTorch
Instrukcje do ćwiczenia
- Utwórz instancję optymalizatora 8-bit Adam, korzystając z klasy
Adam8bitz modułubnb.optim. - Przekaż parametry beta1 i beta2 do optymalizatora 8-bit Adam.
- Przekaż parametr epsilon do optymalizatora 8-bit Adam.
- Wypisz parametry wejściowe optymalizatora 8-bit Adam.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Instantiate the 8-bit Adam optimizer
adam_bnb_optim = bnb.optim.____(optimizer_grouped_parameters,
# Pass in the beta1 and beta2 parameters
betas=(args.____, args.____),
# Pass in the epsilon parameter
eps=args.____,
lr=args.learning_rate)
# Print the input parameters
print(f"beta1 = {args.adam_beta1}")
print(f"beta2 = {args.____}")
print(f"epsilon = {args.____}")
print(f"learning_rate = {args.learning_rate}")