Report-1 (due: 2024.12.19)

Author

최규빈

Published

December 19, 2024

1. – 75점

trainer.predict()을 원활하게 수행하기 위해서는 data_collator를 잘 설계하는 것이 중요하다. data_collator를 잘 설계하기 위해서는 아래의 코드가 동작하도록 하면된다.

# 1. 주어진상황
trainer_input = ~~~
model = ~~~~ 
# 2. data_collator 검증코드
batch_maker = transformers.Trainer(
    model = model,
    data_collator = lambda x: x
)
_batched_data = batch_maker.get_test_dataloader(trainer_input)
batched_data = list(_batched_data)
single_batch = batched_data[-1]
model.to("cpu")
model(**data_collator(single_batch))

왜 그런지 trainer.predict??의 소스코드를 살펴보고 설명하라. (특히 batch_makerdata_collator를 설정할때 항등함수, 즉 lambda x: x를 설정하는 아이디어가 무엇인지에 대한 근거도 함께 설명하라)

배점: trainer.predict??의 소스코드를 살펴보고 data_collator 검증코드의 전체적 흐름만 대략적으로 설명하면 50점, batch_makerdata_collator에 항등함수를 넣는 이유까지 명확히 설명하면 75점.

2. – 25점

trainer.predict() 를 수행하는 과정에서 model 의 입력으로 사용되지 않는 column은 제거된다. 왜 그런지 trainer.predict??의 소스코드를 살펴보고 설명하라.


Hint

코랩에서 실제 transformers 모듈은 아래의 경로에 설치되어있습니다.

/usr/local/lib/python3.10/dist-packages/transformers

저기서 코드를 계속 살펴보기는 좀 불편할 수 있는데요,

cp -r /usr/local/lib/python3.10/dist-packages/transformers .

를 실행하면 /usr/local/lib/python3.10/dist-packages/transformers의 폴더가 복사되어 현재경로에 붙여넣기 됩니다. 이를 이용하면 좀 더 편하게 transformers의 모듈을 살펴볼 수 있습니다.