Я создаю классификатор с помощью Huggingface и хотел бы понять строку Total train batch size (w. parallel, distributed & accumulation) = 64
снизу
Num examples = 7000
Num Epochs = 3
Instantaneous batch size per device = 4
Total train batch size (w. parallel, distributed & accumulation) = 64
Gradient Accumulation steps = 16
Total optimization steps = 327
у меня есть 7000 строк данных, я определил эпохи как 3 и per_device_train_batch_size = 4
и per_device_eval_batch_size= 16
. Я тоже это понимаю Total optimization steps = 327
- (7000*3/64)
Но мне непонятно Total train batch size (w. parallel, distributed & accumulation) = 64
. Означает ли это, что есть 16 устройств, поскольку 16 * 4 (Instantaneous batch size per device = 4
) составляет 64?
Ну, переменная, используемая для печати этой сводки, такова: https://github.com/huggingface/transformers/blob/master/src/transformers/trainer.py#L1211.
Общий размер партии поездов определяется как train_batch_size * gradient_accumulation_steps * world_size
, поэтому в вашем случае 4 * 16 * 1 = 64
. world_size
всегда равно 1, за исключением случаев, когда вы используете TPU/обучение параллельно, см. https://github.com/huggingface/transformers/blob/master/src/transformers/training_args.py#L1127.