BoostCamp AI Tech NLP 6기

[부스트캠프 AI Tech NLP] 네이버 부스트 캠프 7주차 회고

언킴 2023. 12. 22. 18:37
반응형

Contents

     

     

     

    프로젝트 주제

    Sentence Textual Similarity (STS): 입력으로 주어진 두 문장이 의미적으로 얼마나 유사한지 판단하는 Task.

     

    STS에 사용되는 모델 톺아보기.

    • RoBERTa, SimCSE, BERT, Sentence-BERT, Electra
    • RoBERTa의 경우 token_type_ids를 입력으로 받지 않기 때문에 Model 입력에 token_type_ids를 사용하지 않아도 됨.
    • Separate Token [SEP] 대신 <s>, </s> 등으로 문장을 구분하기 때문에 Sentence 1과 Setence 2를 Concatenation 단계에서 <s> sentence 1 </s> </s> sentence 2 </s> 로 사용함.

     

    Pytorch Lightning이 아닌 Pytorch로 구현

    Pytorch Lightning은 모듈화가 잘 되어 있어서 모델 구조를 바꾸는 것에 어려움이 있었음. 이를 해결하기 위해 Pytorch 기반으로 모델을 구축하였고, 마지막 Classifier 모델의 구조를 변경하여 학습을 수행하고 이를 비교 분석함.

     

    Optimizer 톺아보기

    SGD, Adam 등의 모델은 Momentum 기반으로 구성되어 있기 때문에 Normalization 기술과 함께 사용하게 되면, Sub-Optimal Solution에 Converged 하는 것을 확인할 수 있음. 해당 문제를 해결하기 위해 SGD + Momentum + Projection 을 수행하는 Optimizer인 AdamP를 찾았고, 이를 활용하였음.

     

     

    Focal Loss

    Train Data는 Imbalance한 문제가 존재함. 이를 해결하기 위해 이상치 탐지 연구에 주로 사용되는 Focal Loss를 접목하면 어떨까? 라는 생각으로 활용하게 됨. Focal Loss는 데이터의 수가 많은 Label에 Penalty를 주어 Imbalance의 영향을 줄이는 것을 목적으로 하는 Loss Function임.

     

     

    느낀점

    STS Task를 다루면서 Bi-Encoder, Cross-Encoder 구조 등을 잘 파악할 수 있게 되었고, 모델의 입력으로 어떻게 넣어야 하는지, 모델 간의 차이가 어떻게 존재하는 지 등을 파악하는 데 많은 도움을 받을 수 있었다.