내가 보려고 만든 블로그

<NLP> Transformer 정리 ~ 허깅 페이스까지 본문

Data Science/NLP

<NLP> Transformer 정리 ~ 허깅 페이스까지

정의김 2022. 9. 5. 20:10

기계번역, 언어 생성 등에 별로 관심이 있지는 않은데 감성분석 혹은 LDA 등은 알아두면 후에 쓸 일이 많이 있을 것 같아서 간단하게 자연어처리를 공부함. 그 중에서도 워낙 유명한 모델인 트랜스포머에 대해서 사내 강의로 듣게되어 공부한내용 간단하게 정리. 나중에 다시 찾아왓을때 기억날 정도로만 적어둠. 

 

torch.nn.transformer

토치에는 트랜스포머가 이미 구현이 되있음.

주의해야 할 것은 인코더와 디코더부분까지여서 마지막 부분에 선형 + softmax부분 넣어주면 된다 . 

self.transformer = nn.Transformer(d_model=emb_size, # 임베딩 size .       
                                       nhead=nhead,      # 어텐션의 헤드 수          # freeze= True 써도 됨 걍 . 
                                       num_encoder_layers=num_encoder_layers, # 인코더 블록의 개수 .
                                       num_decoder_layers=num_decoder_layers, # 디코더 블록의 개수 . 
                                       dim_feedforward=dim_feedforward, # 피드 포워드의 디멘션 
                                       dropout=dropout)

 

허깅 페이스

트랜스포머를 활용한 여러 모델들은 허깅페이스에서 사용할 수 있다. 토크나이저와 모델을 다운로드 받고 사용목적에 맞게 ( classification , 문장 요약 등등 ) 튜닝해주면 됨. 이 부분은 코드 참조 .

 

트랜스포머 구현 

https://github.com/todtjs92/NLP/blob/master/Transformer-HuggingFace/transformer.ipynb

 

GitHub - todtjs92/NLP: NLP와 관련된 프로젝트와 관련된 코드들

NLP와 관련된 프로젝트와 관련된 코드들. Contribute to todtjs92/NLP development by creating an account on GitHub.

github.com

허깅 페이스 사용법

https://github.com/todtjs92/NLP/blob/master/Transformer-HuggingFace/Self-supervised%20learning%20%26%20Fine-tuning.ipynb

 

GitHub - todtjs92/NLP: NLP와 관련된 프로젝트와 관련된 코드들

NLP와 관련된 프로젝트와 관련된 코드들. Contribute to todtjs92/NLP development by creating an account on GitHub.

github.com

 

'Data Science > NLP' 카테고리의 다른 글

LDA 토픽 모델링 - (Gibbs Sampling , VI 를 통한 구현 )  (0) 2021.08.01