Home [NLP] Hugging Face란?
Post
Cancel

[NLP] Hugging Face란?

트랜스포머(Transformer)

  • 인공신경망 알고리즘은 크게, 합성곱 신경망(CNN), 순환 신경망(RNN), 트랜스포머(Transformer) 3가지로 나뉘어진다.
  • 트랜스포머는, 2017년 구글이 발표한 논문인 “Attention is all you need”에서 나온 모델로, 셀프 에텐션(Self-Attention)이라는 방식을 사용하는 모델이다.
  • 트랜스포머는 어텐션 방식을 사용해, 문장 전체를 병렬 구조로 번역할 뿐만 아니라, 멀리 있는 단어까지도 연관성을 만들어 유사성을 높였으며, RNN의 한계를 극복했다.
  • 이미지나 언어 번역에 폭넓게 쓰이고 있으며, GPT-3, BERT 등이 가장 관심을 많이 받고 있는 모델이다.

Hugging Face

  • 허깅 페이스는 자연어 처리 스타트업이 개발했다.
  • 다양한 트랜스포머 모델(transformer.models)학습 스크립트(transformer.Trainer)를 제공하는 모듈이다.
  • 허깅 페이스를 사용한다면, 트랜스포머 모델 사용시 layer, model 등을 선언하거나 학습 스크립트를 구현해야하는 수고를 덜 수 있다.
  • 참고 링크 : https://github.com/huggingface/transformers
  • 일반적인 layer.py, model.py는 transformer.models로, train.py는 transformer.Trainer로 대응해서 사용할 수 있다.

transformers.models

  • 트랜스포머 기반의 다양한 모델을 pytorch, tensorflow로 각각 구현해놓은 모듈이다.
  • 각 모델에 맞는 tokenizer도 구현되어 있다.

transformers.Trainer

  • 딥러닝 학습 및 평가에 필요한 optimizer, weight updt, learning rate schedule, ckpt, tensorbord, evaluation 등을 수행하는 모듈다.
  • Trainer.train 함수를 호출하면, 이 모든 과정이 사용자가 원하는 arguments에 맞게 실행된다.
  • pytorch lightning과 비슷하게 공통적으로 사용되는 학습 스크립트를 모듈화 하여 편하게 사용할 수 있다.
This post is licensed under CC BY 4.0 by the author.