Настройка 8-битного оптимизатора Adam
В процессе обучения модели Transformer для перевода речи в реальном времени вы замечаете, что Adafactor плохо справляется с задачей. В качестве альтернативы вы решаете попробовать 8-битный оптимизатор Adam, который позволяет сократить потребление памяти примерно на 75% по сравнению с обычным Adam.
Библиотека bitsandbytes импортирована как bnb, объект TrainingArguments определён как args, а optimizer_grouped_parameters уже загружен. Обратите внимание: при выполнении упражнения может появиться предупреждение о libbitsandbytes_cpu.so — его можно проигнорировать.
Это упражнение является частью курса
Эффективное обучение моделей ИИ с PyTorch
Инструкции к упражнению
- Создайте экземпляр 8-битного оптимизатора Adam, используя класс
Adam8bitиз модуляbnb.optim. - Передайте в оптимизатор параметры beta1 и beta2.
- Передайте в оптимизатор параметр epsilon.
- Выведите на экран входные параметры 8-битного оптимизатора Adam.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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}")