nlp12 [논문 리뷰] SimCSE: Simple Contrastive Learning of Sentence Embeddings 들어가며,, 비즈니스에 해당 논문 기술을 적용한다는 마인드로 논문 리뷰를 하기 때문에 논문 연구 결과 파악을 위한 리뷰와는 다소 차이가 있을 수 있음을 미리 말씀드립니다. Simple review for parper Supervised & Unsupervised SimCSE 제안 (21년 4월 발간) Unsupervised SimCSE (자체적으로 label을 만들어 줌) Positive pair: 동일한 문장 embedding layer에 동일한 문장을 넣어 drop out(p=0.1)을 통해 다른 embedding 값을 얻어줌 이러한 drop out 이 최소한의 data augmentation 이라고 함 (다른 방식 ex. 삭제, 대체, etc… 사용해 봤는데 drop out이 성능이 제일 좋았다고 .. 2022. 8. 31. [소개] 초거대 언어 모델이란? 들어가며.. 최근 여러 대기업에서 자신들이 만든 초거대 언어 모델을 소개하며 홍보하는 걸 자주 접할 수 있다. 물론 해당 분야에 관심이 있는 사람들만 접할 수 있었겠지만 본 포스팅을 읽는 독자들은 접했으리라 믿는다. 대기업들은 왜 초거대 언어 모델을 만드는지, 왜 초거대 언어 모델이 필요한지, 초거대 언어 모델의 장점은 무엇인지 본 포스팅에서 소개하도록 하겠다. 초거대 언어 모델이란? AI라고 부르는 인공지능은 간단히 말하면 일종의 함수(y = f(x))이다. 챗봇을 예로 들면 발화자의 말이 text로 변환되어 함수의 x로 들어가 인공지능이라는 함수 내부에서 여러 계산이 이루어진다. 계산의 결과는 y로 발화자의 말에 대답하는 text가 된다. 그렇다면 왜 여러 대기업에서 파라미터가 5,000 억개, 1조.. 2022. 7. 16. [Code review] Sentence-Transformers 비교 hug/trans Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers & hug/trans 학습 방법 병합 학습 병합 유무: 불가능 학습하는 Process가 hug/trans의 Trainer class와 Sentence-Transformers의 SentenceTransformer class에서 fit 메서드와 다르기 때문. hug/trans .. 2022. 7. 8. [Code review] Sentence-Transformers 상세 기능 Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers > Loss BatchAllTripletLoss BatchHardSoftMarginTripletLoss BatchHardTripletLoss BatchSemiHardTripletLoss ContrastiveLoss 두 emb. vector 간 거리(유클리드, 코사인, 맨하탄.. 2022. 7. 8. [Code review] Sentence-Transformers 검증 및 예측 Process Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers > eval process Data read - Eval datasets format에 맞춰 read Model load - Sentence_Transformers로 학습된 모델 불러오기 - 만약 Sentence_Transformers로 학습되지 않았다면 Eval 불가능 E.. 2022. 7. 6. [Code review] Sentence-Transformers 학습 Process Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers > train process DataLoader - InputExample class 사용하여 생성 - 생성한 객체를 list로 감싼 뒤, PyTorch DataLoader에 인자로 넣어 사용 Model definition - models 폴더에서 model 구조 선택 - .. 2022. 7. 5. [Code review] Sentence-Transformers 훑어보기: 구조 Sentence-Transformers (UKPlab) Sentence embedding 관련 패키지 리서치 중 Sentence-Transformers Github 코드를 자세히 살펴볼 기회가 생겼다. 해당 패키지의 구조부터 자세한 상세 기능, 그리고 BERT 모델 사용 시 HuggingFace Transformers 와의 호환성까지 살펴보려 한다. Gihub Link Documents Link Sentence-Transformers 패키지 구조 📂sentence-transformers |-📂cross_encoder ## output 형태가 Classifier layer에서 나오기 때문에 STS or NLI 학습 & 검증 용으로 사용 |-📄CrossEncode.py |-📂datasets ## 학습 데이터.. 2022. 7. 4. [논문 리뷰] Distilling Linguistic Context for Language Model Compression 목적 💡 기존의 경량화는 단어 간 관계를 고려하지 않았고 단어가 model의 encoder layer를 통과하며 어떻게 변화하는지도 고려하지 않았음 기존 경량화: 단순히 학생 모델이 선생 모델의 weight를 따라가도록, logit 값을 따라가도록 학습 본 논문: logit 값을 따라갈 뿐만 아니라 단어 간 관계 및 단어가 encoder layer를 통과하며 어떻게 변하는지도 고려해서 학습 실험 방법 Model: Google’s Multi-lingual-BERT model Pre-train BERT 모델에 Distillation하여 경량화 된 BERT모델을 만들고 각 task datasets을 이용한 Fine-tuning 후 성능 비교 Pre-train distillation datasets: Engli.. 2022. 6. 23. [경량화 패키지] TextBrewer 사용 후기 ※ Disiller.train() 🤔 TextBrewer를 사용한 경량화 학습 시 train 메서드의 인자는 다음과 같다. optimizer : 옵티마이저 dataloader : 데이터 로더 using PyTorch num_epochs : 학습할 epoch 설정 num_steps : 학습할 step 설정 callback : 학생 모델 검증 함수 batch_postprocessor : 후처리 (굳이 설정 안 해줘도 됨) scheduler_class : textbrewer에 있는 scheduler 함수 scheduler_args : scheduler_class 설정 용도 scheduler : 무시 max_grad_norm : gradient vanishing 방지를 위한 설정 🚫 주의 사항 num_steps.. 2022. 6. 17. [경량화 패키지] TextBrewer 학습 Process Total loss 정의 KD loss : Knowledge Distillation loss로 학생 모델의 logits이 교사 모델의 logits 분포를 따라가도록 학습 HL loss : Hard Label로 학생 모델의 logits이 groud truth of label을 따라가도록 학습 Intermediate_losses : 학생 모델의 encoder layer 분포가 교사 모델의 encoder layer 분포를 따라가도록 학습 다양한 기능 제공 > 자세한 사항은 textbrewer docs 참고 KD loss 관련 기능 KD loss weight 설정 temperature 관련 Parameters loss type 관련 Parameters HL loss 관련 기능 (+ Inermediate_loss.. 2022. 6. 17. 이전 1 2 다음 반응형