오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-27 01:30
관리 메뉴

우노

[DL] Hugging Face란? 본문

AI/Deep Learning

[DL] Hugging Face란?

운호(Noah) 2022. 1. 20. 21:03

트랜스포머(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 등을 선언하거나 학습 스크립트를 구현해야하는 수고를 덜 수 있습니다.
  • 참고 링크

transformers.models

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

transformers.Trainer

  • 딥러닝 학습 및 평가에 필요한 optimizer, weight updt, learning rate schedul, ckpt, tensorbord, evaluation 등을 수행하는 모듈입니다.
  • Trainer.train 함수를 호출하면, 이 모든 과정이, 사용자가 원하는 arguments에 맞게 실행됩니다.
  • pytorch lightning 과 비슷하게, 공통적으로 사용되는 학습 스크립트를 모듈화 하여 편하게 사용할 수 있다는 점이 장점입니다.

결론

  • 기존 pytorch 학습 스크립트에서 반복되는 부분(optimizer, lr schedul, tensorbord, gpu 병렬 처리,..)을 따로 구현하지 않고, arguments 로 편하게 통제할 수 있습니다.
  • 다양한 트랜스포머 기반 모델 구현체들을, 손쉽게 당겨 쓸 수 있습니다.
  • high level로 모듈화 되어 있기 때문에, 커스터마이징이 비교적 어렵습니다.
  • 커스터마이징은 소스코드를 참고하여 원하는 class를 상속 받아 overiding 하면 됩니다.

참고

'AI > Deep Learning' 카테고리의 다른 글

[DL] DistilBERT 모델을 사용한 GLUE SST-2 데이터 추론  (0) 2022.02.15
[DL] ONNX 란?  (0) 2022.01.24
[DL] TVM 이란?  (0) 2022.01.12
[DL] TFLite 와 TensorRT 간단 비교  (2) 2022.01.12
[DL] 양자화(Quantization)란?  (0) 2022.01.10
Comments