AI-자연어처리

[Huggingface Tutorial/Ch1] Transformer 모델

옆동네애옹이 2024. 3. 26. 18:38
728x90

참고: https://huggingface.co/docs/transformers/index

https://wikidocs.net/166785

 

어쨌건 저쨌건 지금 가장 간편하게 머신러닝을 학습할 수 있는 Transformers

Huggingface의 튜토리얼을 먼저 따라해보자

 

챕터 1강은 Transformers가 뭔지, 어떤 모델인지, 간단하게 알아보기

 

파이프라인(pipeline() 함수: 전처리 & 후처리 모델과 연결)

 

- 말 그대로 파이프라인, 특정 모델과 동작에 필요한 전&후처리 단계를 연결해, 빠르고 편하게 이해할 수 있는 답변 얻기

- sentiment analysis task로 pipeline 객체를 만들고, classifier에 입력했더니 자동으로 모델 가져와서 태스크 수행하였음

 

* 파이프라인에 텍스트 입력시 preprocessing -> 모델에 텍스트 전달 -> postprocessing 자동으로 수행됨.

현재 가능한 파이프라인들 

  • feature-extraction : 특징 추출 (텍스트에 대한 벡터 표현 추출)
  • fill-mask : 마스크(공백) 채우기
  • Named Entity Recognition(NER) : 개체명 인식
    • 입력 텍스트에서 어느 부분이 개체명(사람/위치/조직 등)인지 식별하기.
  • question-answering : 질의 응답
    • 주어진 context에서 정보를 추출해 작동 (응답의 새로운 생성은 X)
  • sentiment-analysis : 감정 분석
  • summarization : 요약
  • text-generation : 텍스트 생성

  • translation : 번역
  • zero-shot-classification:  레이블이 지정되지 않은 텍스트 분류하기
    • 해당 분류에 사용할 레이블을 마음대로 지정 가능 -> 완전히 새로운 레이블로 분류해도 fine-tuning 필요없음.

등  기본적인 태스크의 빠른 수행이 가능함.

 

Hub의 모델 사용하기 (model parameter로 load)

모델을 명시하고 파라미터를 작성할 수 있음

 

 


Transformer Models 

- 2017년 Transformer Architecture (Attention is all you need) 최초 발표 이후 추가된 몇 가지 모델들

  • GPT-계열 (Auto-regressive Transformer model)
  • BERT-계열 (Auto-encoding Transformer model)
  • BART/T5-계열 (Sequence-to-sequence Transformer model)

모든 모델들은 언어모델(Language Model): self-supervised learning을 이용해 원시 텍스트를 학습하였음.

  - self-supervised learning(자가 지도 학습): 학습의 목적이 모델 입력으로부터 자동으로 계산되는 방식. 사람이 데이터에 레이블을 달지 않아도 학습이 가능

 

그런데, 이 때 실생활 문제 (원하는 문제)를 풀기 위해서, 전이학습(transfer learning) 과정 거쳐야 함 ->

  - supervised learning(사람이 데이터에 레이블 추가) 방법으로 fine-tuning

 

학습방법

사전학습 (pretraining)

모델 처음부터 학습하는 방법. 모델 가중치(weight)를 랜덤하게 초기화, 사전 지식(prior knowledge)없이 학습을 시작. 

 

미세조정 (fine-tuning)

모델이 모두 사전 학습을 마친 이후에 하는 학습. pretrained model + 특정 task에 맞는 dataset을 이용해 추가 학습을 수행하는 것.

* 파인튜닝의 이점: 

- 이미 학습된 사전 지식이 있으므로, 유사한 corpus 사용 시 기존지식 활용 가능.

- pretraining보다 훨씬 작은 corpus 필요로 함.

e.g. 영어로 사전 학습된 모델 -> arXiv 코퍼스로 미세조정해 과학/연구기반 모델 제작 가능.

사전 학습 과정에서 얻은 지식이 “전이”되었다고 하여 전이 학습(transfer learning)이라 부름

  * transfer learning: 사전 학습된 모델의 가중치로 새로운 모델을 초기화할 때, 사전학습된 모델의 지식이 전달되는 것

 

 

Transformer architecture

: 어떤 문제를 풀고 싶냐에 따라서, 전체 모델 구조를 사용하거나 / 인코더 디코더만 사용할 수 있음!

인코더(Encoder)

encodes text into numerical representations (bi-directional & self-attentention)

- 입력에 대한 표현(representation), 특성(feature)을 도출.

- 입력에 대한 표현 형태가 최적화됨

각 단계에서 초기/원본 입력 문장(initial sentence)의 모든 단어에 엑세스할 수 있음 (auto-encoding model)

일반적으로 초기 문장을 손상 후 (masking 등), 원래 문장으로 복원하며 사전학습

 

디코더(Decoder)

decodes the representations from the encoder (uni-directional, auto-regressive, masked self-attention)

- 인코더의 표현(representation), 특성(feature)을 다른 입력과 함께 사용해 target sequence를 생성.

- 출력 생성(generating output)에 최적화됨

각 단계에서 주어진 단어에 대해, attention layer가 현재 처리 단어 앞쪽에만 엑세스 (auto-regressive model)

일반적으로 문장의 다음 단어 예측을 수행하며 사전학습

 

- Encoder-only model: Sentence Classification, NER과 같이 입력에 대한 분석/이해를 요구하는 작업에 특화

- Decoder-only model: 텍스트 생성과 같이 생성 관련 작업에 특화

- Encoder-Decoder (Seq-to-Seq) 모델: 번역, 요약, 생성형 질의응답과 같이 주어진 입력 + 새로운 문장 생성 작업에 적합

 

Model Examples Tasks
Encoder ALBERT, BERT, DistilBERT, ELECTRA, RoBERTa 문장 분류, 개체명 인식, 추출 질의응답
Decoder CTRL, GPT, GPT-2, Transformer XL 텍스트 생성(prompt)
Seq-to-seq BART, T5, Marian, mBART 요약, 번역, 생성 질의응답

 

 

 

Attention layer

한줄요약: Attention layer가 각 단어의 표현을 처리할 때, 장의 특정 단어에 attention(주의)을 기울이고 나머지는 거의 무시하도록 알려준다

단어의 의미가 context에 의해 영향을 받기 때문에!

 

 

원래 아키텍쳐는 좌/인코더 우/디코더 형태를 가짐

 

- 어텐션 마스크(attention mask): 모델이 몇몇 특수 단어들에만 어텐션을 주는 것을 방지

  - e.g. 문장 batching에 사용하는 padding word에 사용

 

 

Architectures vs. Checkpionts

- Architecture: 모델의 뼈대(skeleton) (모델 내부의 각 레이어, 각 연산 등을 정의함)

- Checkpoints: 해당 아키텍처에 로드(적용)될 가중치들

e.g.

BERT: architecture,

bert-base-cased (구글에서 학습한 가중치 셋): checkpoint

- Model: 아키텍처/체크포인트보다는 덜 명확한 단어(umbrella term) - 두 가지 모두를 의미할 수 있음. 

 

Limitations

아무리 중립적인 데이터를 사용해 사전학습했더라도, 편향성bias을 갖게될 수 있음.

 

모델이 편향성을 갖게 되는 원인들...

- 전이 학습 시 사용되는 사전 학습 모델의 편향성이 미세 조정된 모델로도 전달됩니다.

- 모델 학습에 사용된 데이터가 편향됨

- 모델이 최적화한 메트릭(metric)이 편향  불분명한 원인 중 하나입니다. 모델은 어떤 메트릭을 고르든 아무 생각 없이 그에 맞춰 최적화를 합니다.

728x90