设置 8-bit Adam 优化器
您发现用于实时机器翻译的 Transformer 模型,使用 Adafactor 的训练效果不理想。作为替代方案,您决定尝试 8-bit Adam 优化器,在与 Adam 相比的情况下可将内存占用减少约 75%。
bitsandbytes 库已按 bnb 导入,TrainingArguments 已定义为 args,并且已预加载 optimizer_grouped_parameters。请注意,本练习会打印有关 libbitsandbytes_cpu.so 的警告信息,但您可以忽略该警告并完成练习。
本练习是课程的一部分
使用 PyTorch 高效训练 AI 模型
练习说明
- 使用
bnb.optim中的Adam8bit类实例化 8-bit Adam 优化器。 - 将 beta1 和 beta2 参数传入 8-bit Adam 优化器。
- 将 epsilon 参数传入 8-bit Adam 优化器。
- 打印 8-bit 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}")