피드로 돌아가기
Train and Fine-Tune Sentence Transformers Models
Hugging Face BlogHugging Face Blog
Backend

Sentence Transformers 라이브러리를 통해 사전학습 Transformer 모델을 2단계 구조(Transformer → Pooling)로 변환해 BERT 대비 의미론적 검색 속도를 50밀리초에서 5초로 단축

Train and Fine-Tune Sentence Transformers Models

2022년 8월 10일12intermediate

Context

BERT와 같은 사전학습 Transformer 모델을 문장 임베딩 생성에 직접 사용하면 높은 계산 비용이 발생하고 품질도 저하된다. 10,000개 문장에서 가장 유사한 쌍을 찾는 의미론적 검색 작업에서 BERT는 약 65시간(약 50백만 회 추론)이 필요하며, 토큰 임베딩을 평균화한 문장 임베딩은 2014년 GloVe보다 낮은 성능을 보인다.

Technical Solution

  • Sentence Transformers 아키텍처 설계: Transformer 레이어와 Pooling 레이어를 순차적으로 실행하는 모듈 기반 구조로 구성
  • Transformer 레이어: Hugging Face Hub에서 distilroberta-base 같은 사전학습 모델을 로드하여 입력 텍스트를 컨텍스트 단어 임베딩으로 변환
  • Pooling 레이어: 토큰별 임베딩을 평균 풀링으로 집계하여 고정 크기의 문장 수준 단일 임베딩 생성
  • 모듈 확장성: 필요에 따라 Dense, Bag of Words, Convolutional 같은 추가 레이어를 연결 가능하도록 설계
  • 데이터셋 준비 방식: 문장 쌍의 유사도 레이블, 자연어 추론 형식, 트리플릿 구조 등 4가지 데이터셋 포맷과 대응하는 손실 함수 선택 방식 제시

Impact

  • 의미론적 검색 속도: 10,000개 문장 처리 시 BERT 기준 약 65시간 → Sentence Transformers 기준 약 5초 달성

Key Takeaway

텍스트 임베딩 작업에서 사전학습 Transformer 모델 자체 사용보다 Pooling을 통한 문장 수준 임베딩 생성이 속도와 품질 모두에서 우수하며, 데이터셋 구조와 손실 함수의 일치성이 모델 학습 성공의 핵심 조건이다.


의미론적 검색, 문장 유사도 판별, 정보 검색 시스템을 구축하는 엔지니어들은 Sentence Transformers를 사용해 사전학습 모델을 Transformer + Pooling 구조로 변환하면 추론 속도를 대폭 단축하면서도 BERT보다 나은 문장 표현을 얻을 수 있다. 다만 분류 작업(Classification)에는 Transformers 라이브러리가 더 적합하다.

원문 읽기