피드로 돌아가기
SetFit: Efficient Few-Shot Learning Without Prompts
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face가 Sentence Transformer 기반 SetFit 프레임워크를 개발해 8개 레이블 예제로 3,000개 풀셋 학습과 동등한 성능 달성

SetFit: Efficient Few-Shot Learning Without Prompts

2022년 9월 26일8intermediate

Context

레이블된 데이터가 부족한 상황에서 기존 few-shot 학습 방법들은 대규모 모델(T0, GPT-3)이나 수작업으로 작성된 프롬프트·버버라이저를 필요로 한다. 이로 인해 계산 비용이 높고 구현 복잡도가 증가한다.

Technical Solution

  • Sentence Transformer 기반 2단계 학습 프로세스 도입: 첫 단계에서 대조 학습(contrastive training)으로 밀집 임베딩 생성, 두 번째 단계에서 분류 헤드를 임베딩 위에 학습
  • 프롬프트/버버라이저 완전 제거: 제한된 레이블 데이터로 직접 밀집 임베딩 생성해 입력 형식 변환 불필요
  • 다국어 지원 확장: 다국어 Sentence Transformer 체크포인트로 전환하기만 하면 독일어, 일본어, 만다린, 프랑스어, 스페인어 등에서 작동
  • 소형 모델 활용: SetFit MP-Net(110M 파라미터), SetFit RoBERTa Large(355M 파라미터) 등 소규모 모델로 충분해 학습 및 추론 속도 극대화
  • 간편한 구현 제공: SetFitModel, SetFitTrainer 클래스로 8줄 코드만으로 모델 학습 가능

Impact

  • 학습 비용 28배 감소: NVIDIA V100에서 8개 예제로 30초 학습에 $0.025 소요(T-Few 3B는 A100에서 11분, $0.7 소요)
  • 모델 크기 30배 축소: SetFit RoBERTa Large(355M)가 T-Few(11B)보다 RAFT 벤치마크에서 우월한 성능(71.3% vs 75.8% 정확도)
  • RAFT 벤치마크 2위 달성: 355M 파라미터로 235M 파라미터 PET를 정확도 1.7% 상회(71.3% vs 69.6%)
  • 추론 속도 123배 향상: 모델 디스틸링 적용 시
  • CPU 학습 가능: Google Colab 같은 단일 GPU 또는 CPU 환경에서 수 분 내 학습 완료

Key Takeaway

SetFit은 프롬프트 엔지니어링과 대규모 모델을 제거하고 contrastive learning 기반 2단계 학습으로 few-shot 분류 문제를 효율적으로 해결한다. 소수 레이블 데이터로 풀셋 학습과 동등한 성능을 달성하면서 구현 복잡도와 계산 비용을 획기적으로 감소시킨다.


레이블 데이터가 8~16개 수준으로 제한된 텍스트 분류 실무에서 SetFit을 도입하면 RoBERTa Large 같은 대규모 모델 전체 학습 대비 28배 저렴한 비용과 빠른 학습 시간으로 동등 이상의 정확도(71.3%)를 확보할 수 있으며, 프롬프트 작성 오버헤드를 완전히 제거할 수 있다.

원문 읽기