허깅페이스에서 transformers의 Trainer는 모델의 학습, 평가를 한번에 할 수 있는 API를 제공한다. 이를 사용하면 간단하게 fine-tuning이 가능하다. 간단히 코드를 소개하자면 다음과 같다.
from transformers import TrainingArguments
args = TrainingArguments(
"bert-finetuned-ner",
evaluation_strategy="epoch",
save_strategy="epoch",
learning_rate=learning_rate,
num_train_epochs=epochs,
weight_decay=weight_decay,
push_to_hub=True)
from transformers import Trainer
trainer = Trainer(
model=model,
args=args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
compute_metrics=compute_metrics,
tokenizer=tokenizer)
trainer.train()
그런데 Trainer를 사용하려고 하면 다음과 같은 에러가 난다.
ValueError: Token is required (write-access action) but no token found. You need to provide a token or be logged in to Hugging Face with 'huggingface-cli login' or 'huggingface_hub.login'. See https://huggingface.co/settings/tokens.
이는 허깅페이스에서 모델을 업로드하기 위해 필요한 인증 토큰이 제공되지 않았기 때문이다. 해결방법은 다음 두가지 절차를 따른다.
New token버튼을 누른다.(New token 버튼이 활성화되어 있지 않다면 이메일 인증을 진행해야한다.)

Name과 Role을 작성한 후, Generate a token을 눌러서 토큰을 생성한다.Name은 마음대로, Role은 write으로 설정해줘야한다. read는 권한 에러가 발생한다.


Step1에서 생성한 토큰을 이제 사용해보자. 어떤 환경(ipynb 혹은 py)에서 실행하느냐에 따라 다르다.
주피터나 코랩과 같은 노트북 파일(ipynb)은 코드 셀에서 다음과 같은 절차를 수행한다.
import huggingface_hub
huggingface_hub.login()
코드 실행 시 다음과 같은 화면이 뜬다. Token 란에 위에서 생성한 토큰을 붙여넣는다.

승인 완료되었다.

파이참과 같은 프로그램에서는 터미널에서 다음과 같은 절차를 수행한다.
Huggingface-cli login --token [생성한 토큰]
인터넷에서는 huggingface-cli login 명령을 실행하고 Token :에 생성한 토큰을 입력하라고들 한다. 하지만 어떤 글자를 입력해도 보이지 않고, 생성한 토큰 붙여넣기도 안된다. 따라서 위와 같은 방법을 하길 바란다! 이는 내가 이 글을 쓰는 이유이기도 하다.
