허깅페이스(Huggingface)는 사람들이 모델을 만들고 학습시켜 올려둘 수 있는 저장소이다. 기본적으로는 git을 기반으로 돌아간다. 허깅페이스의 transformers 모듈을 사용하면 자신에게 필요한 여러 모델들을 손쉽게 가져다 쓸 수 있다. 여기에 자기가 만들어 학습을 시킨 혹은 기존의 pre-trained된 모델을 가져다가 fine-tuning시킨 모델을 자신의 저장소에 업로드해둘 수 있다. 그러면 손쉽게 다음번에 사용할 수도 있고, 다른 사람들을 위해 배포할 수도 있다. 허깅페이스에 자신의 모델을 포팅하는 방법을 알아보자!
git LFS 설치
위에서 허깅페이스는 기본적으로 Git을 통해 저장소로 업로드한다고 했었다. 그런데 git은 최대 100MB로 업로드 파일 사이즈 제한이 있다. 일반적으로 학습시키는 모델의 경우 이보다 용량이 큰 경우가 많으니 이를 위해서 먼저 Git LFS(Large File Storage)를 설치해야 한다.
sudo apt-get install git-lfs
허깅페이스 로그인
먼저 로그인을 하려면 transformers 가 설치 되어있어야한다.
pip install transformers
그리고 허깅페이스에 모델을 업로드 하는 말은 즉, 허깅페이스에 가입이 되어야한다.
허깅페이스에 가이블 마치면 프로필 페이지로 들어가자.
내 모델을 코드창에서 바로 올리기위해 허깅페이스에 로그인하려면 토큰을 발급받아야한다.
나는 이미 발급받은 토큰이 있으므로 토큰 발급 과정은 생략한다.
이제 발급한 토큰을 복사한다
그리고 코드 창으로 돌아가 밑의 문자를 입력해준다.
huggingface-cli login
그럼 이제 발급한 토큰을 복붙해준다
로그인에 성공한 것 같다.
모델 포팅하기
모델의 학습이 모두 끝난 뒤 아래의 코드를 넣어주면 된다. MODEL_SAVE_REPO는 자신이 저장하려는 저장소의 이름(예컨대, 아래의 경우 bart-base-samsum이라는 이름의 레포지토리에 모델이 저장된다.)이고, HUGGINGFACE_AUTO_TOKEN은 사이트에서 발급받은 자신의 고유 토큰이다. 주석처리해둔 사이트로 이동하여 발급받을 수 있다.
아래 코드를 실행시키고나면 어느 정도 시간이 지난 뒤(모델 크기가 크면 오래 걸린다) 허깅페이스에 자신의 모델이 업로드된 것을 확인할 수 있다.
# repo
MODEL_SAVE_REPO = 'bart-base-samsum'
HUGGINGFACE_AUTH_TOKEN = 'your auth token' # https://huggingface.co/settings/token
# Push to huggingface-hub
model.push_to_hub(
MODEL_SAVE_REPO,
use_temp_dir=False,
use_auth_token=HUGGINGFACE_AUTH_TOKEN
)
tokenizer.push_to_hub(
MODEL_SAVE_REPO,
use_temp_dir=False,
use_auth_token=HUGGINGFACE_AUTH_TOKEN
)
이제 from_pretrained('PSW/bart-base/samsum')과 같이 자신이 만들어 학습시킨 모델(토크나이저까지도)을 다음 번에 손쉽게 재사용할 수 있다.
reference