Transformers Trainer 뜯어보기

Posted on Sat, May 22, 2021 NLP MLDL Framework

Huggingface Transformers의 Trainer

Huggingface Transformers에서는 보다 쉬운 모델 학습을 위해 Trainer 라는 라이브러리를 제공한다.

사용하는 것은 많이 하지만, 실제로 모델을 어떻게 받고 데이터를 어떻게 넘겨줘서 → 어떻게

설명대상 코드

https://github.com/huggingface/transformers/blob/a515caa331d232897e92282fe96bfceb857e38ff/src/transformers/trainer.py#L189

Trainer는 어떻게 쓰나?

Transformers Example에 있는 run_clm.py 등에서는 Trainer를 사용해서 학습한다.

# Initialize our Trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset if training_args.do_train else None,
    eval_dataset=eval_dataset if training_args.do_eval else None,
    tokenizer=tokenizer,
    # Data collator will default to DataCollatorWithPadding, so we change it.
    data_collator=default_data_collator,
)

위 코드는 Trainer 클래스에 Model, Training 인자, dataset, tokenizer, data collator를 넣어준다.

그러면, Trainer는 어떻게 동작하나?