오뚝이개발자

허깅페이스(Huggingface)로 내 모델 포팅(porting)하기 본문

AI/AI 개발

허깅페이스(Huggingface)로 내 모델 포팅(porting)하기

땅어 2022. 1. 20. 21:13
728x90
300x250

 

 

 

Hugging Face – The AI community building the future.

The AI community building the future. Build, train and deploy state of the art models powered by the reference open source in machine learning.

huggingface.co

허깅페이스(Huggingface)는 사람들이 모델을 만들고 학습시켜 올려둘 수 있는 저장소이다. 기본적으로는 git을 기반으로 돌아간다. 허깅페이스의 transformers 모듈을 사용하면 자신에게 필요한 여러 모델들을 손쉽게 가져다 쓸 수 있다. 여기에 자기가 만들어 학습을 시킨 혹은 기존의 pre-trained된 모델을 가져다가 fine-tuning시킨 모델을 자신의 저장소에 업로드해둘 수 있다. 그러면 손쉽게 다음번에 사용할 수도 있고, 다른 사람들을 위해 배포할 수도 있다. 허깅페이스에 자신의 모델을 포팅하는 방법을 알아보자!

 

git LFS 설치


위에서 허깅페이스는 기본적으로 Git을 통해 저장소로 업로드한다고 했었다. 그런데 git은 최대 100MB로 업로드 파일 사이즈 제한이 있다. 일반적으로 학습시키는 모델의 경우 이보다 용량이 큰 경우가 많으니 이를 위해서 먼저 Git LFS(Large File Storage)를 설치해야 한다.

sudo apt-get install git-lfs

 

모델 포팅하기


모델의 학습이 모두 끝난 뒤 아래의 코드를 넣어주면 된다. 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')과 같이 자신이 만들어 학습시킨 모델(토크나이저까지도)을 다음 번에 손쉽게 재사용할 수 있다. 

 

 

 

 

728x90
300x250
Comments