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

내가 놓치고 있던 미래, 먼저 온 미래를 읽고

내가 놓치고 있던 미래, 먼저 온 미래를 읽고

장강명 작가의 책은, 유학시절 읽고 처음이었다. 유학시절 "한국이 싫어서"라는 책은 동기부여가 상당히 되는 책이었다. 한국을 떠나 새로운 정채성을 학생으로서 Build up 해나가고 있던 상황에서 이 책은 제목부터 꽤 솔깃하였다. 물론 결말이 기억날 정도로 인상깊은 책은 아니었지만 말이다. 그렇게 시간이 흘러 장강명 작가의 책은 더 이상 읽지 않던

By Bongho, Lee
고객 경험이란 무엇일까?

고객 경험이란 무엇일까?

고객경험이란 무엇일까? 1. 과거 어느 대형 프로젝트에서 있던 일이다. 신사업을 위해서 예측 모델 값을 제공해야 하는 상황이었다. 데이터도 없고,어느정도의 정확도를 제공해야 하는지 답이 없었다. 점추정을 할 것인가? 구간 추정을 할 것인가를 가지고 논의중이었다. Product Manager 줄기차게 고객경험을 내세우며 점추정으로 해야 한다고 주장하였다. 근거는 오롯이 "고객 경험"이었다.

By Bongho, Lee
수요예측, 수정구슬이 아닌 목표를 향한 냉정한 나침반

수요예측, 수정구슬이 아닌 목표를 향한 냉정한 나침반

수요예측의 정의와 비즈니스에서의 중요성 기업의 성장과 운영 효율화를 위해 **수요예측(Demand Forecasting)**은 선택이 아닌 필수 요소로 자리 잡았다. 많은 경영진들이 수요예측을 미래 판매량을 정확히 맞히는 '예언'으로 기대하지만, 이는 수요예측의 본질을 오해하는 것이다. 수요예측의 진짜 의미: 미래를 점치는 수정구슬이 아니라, 우리가 도달해야 할 '목표'를

By Bongho, Lee