台式电脑

怎么样改电脑内存配置参数(如何通过优化训练参数降低大模型内存使用)

之前文章介绍过关于不同精度数据类型下内存用量评估:

https://www.toutiao.com/article/7220269709047005711。

现在拿微调LLaMA-7B大模型训练参数配置json文件示例开启训练参数优化:

{

"model_type":"Llama",

"model_name_or_path":"decapoda-research/llama-7b-hf",

"data_path":"data_dir/datasets_dev.json",

"output_dir":"trained_models/Llama",

"batch_size":8,

"per_device_train_batch_size":1,

"num_epochs":2,

"learning_rate":2e-5,

"cutoff_len":1024,

"val_set_size":1000,

"val_set_rate":0.1,

"save_steps":1000,

"eval_steps":1000,

"warmup_steps":10,

"logging_steps":10,

"gradient_accumulation_steps":16

}

看哪些需要内存:

如何通过优化训练参数降低大模型内存使用

几个核心参数调优:

1.Batchsizes

batch_size一般建议为8,请根据实际硬件与数据类型合理评估,例如fp16一般建议batch_size=8,A100的GPU设置为64。

batch_size,per_device_train_batch_size,gradient_accumulation_steps结合合理使用

三者关系公式:gradient_accumulation_steps=model_config['batch_size']//model_config['per_device_train_batch_size']if"gradient_accumulation_steps"notinmodel_configelsemodel_config['gradient_accumulation_steps']

A100的不同batch_size的基准性能测试

如何通过优化训练参数降低大模型内存使用

怎么样改电脑内存配置参数(如何通过优化训练参数降低大模型内存使用)

RTX-3090的不同batch_size基准性能测试

如何通过优化训练参数降低大模型内存使用

2.GradientAccumulation

梯度累积有点"积硅步之千里"味道,使用内存显著减少,训练速度比正常普通的稍微慢点。如下图:使用gradient_accumulation_steps=4内存从不使用的14.9GB降到8.6GB,速度从8.86到7.75

如何通过优化训练参数降低大模型内存使用

如何通过优化训练参数降低大模型内存使用

3.GradientCheckpointing

开启gradient_checkpointing=True的话比上面不开启的8681MB降到6775MB,训练速度从7.75到5.99,一般开启后慢大约20%。

如何通过优化训练参数降低大模型内存使用

相关新闻

返回顶部