본문 바로가기

딥러닝/Pytorch

HuggingFace:나만의 Transformer 모델 만들기

개요

Huggingface

Autoclass

Trainer

 

 

 

 

 

 

개요

BcAitech에서 KLue 데이터로 자연어 처리 대회를 시작하였다. Task에 대해서  Define 하고,  Solution을 세운다음에 들어가는게 원칙이지만, 머신을 쉬게 할 순 없기에 , BaseLine Code를 돌리면서, Huggingface에 대해 알게 되었다.

 

 

 

Huggingface

 

Huggingface는 facebook 연구팀에서 만든 Transformer 기반 모델들과 Train모듈(Trainer)를 구현해놓은 모듈들이다. Transforemr 기반 모델을 만들기 위해서는 이만한 모듈이 없다. 

 

 

 

 

Autoclass

 

BaseLine 코드가 Autoclass 기반으로 작성이 되어있다. 이 Autoclass는 여러  Transformer(Bert,GPT등등) 클래스들을 상속해서 instance를 만들기 때문에 , 더 편한거 같다.  사용방버은 여러, Bert,Gpt 기반 클래스와 같다.

Auto Classes — transformers 4.11.2 documentation (huggingface.co)

 

Auto Classes

In many cases, the architecture you want to use can be guessed from the name or the path of the pretrained model you are supplying to the from_pretrained() m...

huggingface.co

 

HuggingFace에서의 Transformer를 사용할려면, 크게 세가지 단계를 거친다.

Config,Tokenizer,Model을 호출하는 단게를 거치면 model instance는 생성이 된다.

Models - Hugging Face

 

Models - Hugging Face

 

huggingface.co

 

 

 

 

위 사이트에 가면 찾아볼 수 있다.각자 알아서 원하는 모델의 ,config,Tokenizer,Model을 찾아봐야 한다.

 

 

하지만, 항상 중요한건, 각 Transformer Class마다 parameter 랑 return값이 다를 수 있기 때문에 , 

반드시 Config 파일을 보고, 어떤 Class의 instance를 만드는지 확인하기 바란다.

 

그리고, model의 layer들은 default로 unfreeze 되어있는것을 참고해주면 된다.

 

 

 

 

Trainer

 

Trainer는 학습을 조절해주는  클래스이다. 

Trainer — transformers 4.11.2 documentation (huggingface.co)

 

Trainer

The Trainer and TFTrainer classes provide an API for feature-complete training in most standard use cases. It’s used in most of the example scripts. Before i...

huggingface.co

 

Customizing이 꽤 다양하게 된다. 필자가 생각한 모든 하이퍼파라미터 옵션들을 여기서 다 조절이 가능하다.

 

 

글을 굉장히 짧게 적었는데 , 자세히 적고싶은 맘이 생기면 그 때 자세히 예제를 들어가면서 적겟다.