본문 바로가기

SBERT7

SBERT → ONNX 변환 및 Test example 들어가며.. 지난 22년 7월 27일, ONNX 란 무엇인지에 관한 소개 글을 올렸었다. 해당 글은 본 블로그에서 항상 top-1 조회수를 차지했다. 필자 생각에는 많은 회사와 산업에서 인공지능 모델을 서빙하려 하기 때문에 많은 관심을 받았다고 생각한다. 이러한 관심에 힘입어 필자가 진행했던 Sentence-BERT 모델을 ONNX 변환시키는 간단한 예시를 포스팅하고자 한다. Sentence-BERT 특징 ONNX 변환 전, Sentence-BERT의 Input/Output 형태를 알아야 한다. 형태는 다음과 같다. Input: text (ex. '나는 어바웃타임 영화를 좋아합니다.') Output: n차원 vector (ex. [0.1754, 0.7749, ...] 보통 768 차원 사용) Input/.. 2022. 11. 9.
[논문 리뷰] 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.
[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.
반응형