PLM(Electra) Practice(네이버 리뷰 분류 모델)

전체 순서

  • 라이브러리 로드 → 데이터셋 만들고 → 모델 로드하고 → Optimizer 설정하고, 데이터 로더로 데이터셋을 배치 사이즈에 맞게 불러올 수 있도록 준비하고 → Epoch에 맞게 반복 → Epoch 때마다 Gradient 초기화하고, 디바이스로 Label 보내주고, Input에 기준해서 예측하고, 평가하고, Backforwarding 하고, Loss 계산하고, 반복

라이브러리 로딩

  • Pandas → 데이터 로드하고, 필요에 따라 re, spacy 등 불러와서 전처리 필요
  • Torch → Device 인식하고 해당 Device로 데이터 보내기 위해서 필요
  • Torch.nn.functional → Evaluation Metric(Cross Entrophy)를 위해서 필요
  • Torch.optim.AdamW→  Optimizer Function
  • Transformer→  Model, Tokenizer
  • GPUI device detection

데이터셋

  • 데이터셋을 Load할 때 필요한 전처리를 진행해준다. 이후에 전체 구조를 Train, Prediction으로 나누고, 다시 전처리, 훈련, 평가로 나눈다고 할 때, 전처리 부분을 별도 Function으로 만들어주는게 용이할 수는 있겠다.
  • 데이터셋 사이즈( len)나, 아이템을 추출하기 위한(getitem) Function을 정의해준다.
  • getitem Function을 써야지 만들어진 데이터셋에 대해서 Index를 통해서 가지고 올 수 있게 된다.
  • 여기서 Tokenizer를 설정해주는데 AutoTokenizer를 써서 역시 Pretrained된 것을 가지고 와도 된다.
  • 이 때 Padding은 padding="max_length"을 걸어줘서 tokenizer에 할당된 최대 길이에 맞춰 자동으로 Padding 해준다. 기존에는 pad_to_max_length=True라는 Option을 주었는데 바뀌었다.

훈련

  • Model 역시 PLM기준, 사용하고 싶은 Model을 가지고 온다. Electra를 쓴다고 하면 Transformer에서 ElectraForSequenceClassification를 가지고 오면 된다.
  • Pretrained Model을 가지고 온 이후 활용하려는 GPU Device에 할당해주면 된다.
  • Optimizer을 설정한다. adamW를 쓴다고 할 때 torch.optim.adamW를 써도 되고, transformer에 있는 adamW를 써도 된다.
  • Epoch 별로 이제 반복해서 훈련을 하면 된다.
  • model.train()을 실행해줘서 Model을 Train하는 Status로 변경해놓도록 한다.
  • Loader별로 데이터를 가지고 올 때 Gradient 초기화 → 예측 → Loss 체크를 반복하게 하면 된다.

평가

  • model.eval()을 해놓고, 기존에 Train 했을 때 사용했던 부분을 그대로 사용한다.
  • 즉 prediction이후에 $\hat{y}$ $y$를 비교해서 Metric을 계산한다.

추가적으로 살펴볼 부분

  • Optimizer 변경할 필요 있는지 확인하기 → Question: AdamW가 최선인가?
  • Function으로 재정리하기 → FetchData → Preprocessing → Train → Evaluation 형태로 정리하기
  • 다른 감성분석 데이터도 처리할 수 있도록 Data Dependency를 없애고 하나의 개인용 Framework로 정리하기
  • 감성분석 외에 추가적인 Task 정의하기

References

Read more

DataFrame은 Pandera로, 모델은 Pydantic으로 데이터를 검증한다.

DataFrame은 Pandera로, 모델은 Pydantic으로 데이터를 검증한다.

Pandera: 데이터프레임 검증에 최적화된 도구 주요 장점 * Pandas와 통합: Pandas 데이터프레임에 대해 스키마 기반 검증을 수행합니다. * 유연한 검증 조건: 열 데이터 타입, 값 범위, Null 여부 등 다양한 검증 조건을 정의할 수 있습니다. * 명확한 오류 메시지: 스키마 불일치에 대한 명확한 오류 메시지를 제공합니다. 단점 * 대용량 데이터 검증에서는 속도가 느릴 수

Tobit Regression은 Censored Data에 적합한 Regression이다.

Tobit Regression은 Censored Data에 적합한 Regression이다.

Tobit Regression * Tobit 회귀(Tobit Regression)는 종속 변수가 특정 값에서 절단(Censored)된 상황에서 데이터를 분석하기 위해 사용되는 통계 기법입니다. * James Tobin이 처음 제안한 이 모델은 경제학과 사회과학 분야에서 자주 사용되며, 일반 선형 회귀로는 설명할 수 없는 상황에서 효과적으로 적용할 수 있습니다. Tobit Regression 수식 1. 관측된 종속 변수