SetFit:高效的少樣本學習(無提示)

Hugging Face 與 Intel Labs 以及 UKP Lab 合作,發布了 SetFit,一個用於高效少樣本微調 Sentence Transformers 的框架。SetFit 讓開發者僅使用極少的標記樣本(有時每類僅需 8 個)即可達到高分類準確率,且不需要少樣本學習中常見的手工提示或語言化器。

對比學習架構

SetFit 採用兩階段的訓練流程,從有限的資料中產生高品質的嵌入向量:

  1. 對比微調:框架首先使用少量標記樣本微調 Sentence Transformer 模型。它透過同類與異類的選取產生正負配對(或三元組),訓練模型生成在同類中聚集的稠密向量。
  2. 分類頭訓練:接著使用微調後的 Sentence Transformer 所產生的嵌入向量,根據相應的類別標籤訓練分類頭。

在推論時,未見過的樣本會通過微調後的 Sentence Transformer 產生嵌入向量,分類頭再利用該向量預測類別標籤。

效能與基準測試

SetFit 展示了高度的樣本效率與對噪聲的韌性,儘管使用的模型規模遠小於其他方法,仍常與最先進的少樣本方法表現相當或更佳。

RAFT 基準測試結果

在 RAFT 少樣本分類基準測試中,SetFit(使用 all-roberta-large-v1 模型,參數量 3.55 億)優於 PET 與 GPT-3。其準確率達 71.3%,僅次於 110 億參數的 T-Few 模型(75.8%)與人類基準(73.5%)。值得注意的是,SetFit 在 11 個 RAFT 任務中有 7 個超過了人類基準。

排名 方法 準確率 模型大小
2 T-Few 75.8 11B
4 Human Baseline 73.5 N/A
6 SetFit (Roberta Large) 71.3 355M
9 PET 69.6 235M
11 SetFit (MP-Net) 66.9 110M
12 GPT-3 62.7 175 B

與其他方法的比較

僅使用每類 8 個樣本時,SetFit 通常優於 PERFECT、ADAPET 與普通微調的 transformer。它的表現亦可與 T-Few 3B 相媲美,且模型規模小 27 倍且無需提示。

訓練與推論效能

SetFit 的訓練與執行速度遠快於大型少樣本模型,且成本更低。

  • 訓練速度:在 NVIDIA V100 上使用 8 個標記樣本訓練 SetFit 約需 30 秒,成本為 $0.025。相比之下,在 NVIDIA A100 上訓練 T-Few 3B 需要 11 分鐘,成本約為 $0.70——成本與時間皆增加了 28 倍。
  • 硬體可及性:SetFit 可在單一 GPU(例如 Google Colab 提供的 GPU)上訓練,甚至在 CPU 上也能在數分鐘內完成。
  • 推論:SetFit 在推論時提供顯著的加速,且模型蒸餾可進一步將加速倍率提升至最高 123 倍。

多語言支援與實作

SetFit 相容於 Hugging Face Hub 上的任何 Sentence Transformer。透過使用多語言的 Sentence Transformer 作為基礎模型,SetFit 可用於多種語言的文本分類,包括德文、日文、中文、法文與西班牙文,且支援語內與跨語言的設定。

要實作 SetFit,Hugging Face 提供了 setfit 套件。訓練工作流程包括:

  1. 安裝套件:pip install setfit
  2. 載入預訓練的 Sentence Transformer(例如 paraphrase-mpnet-base-v2)。
  3. 使用 SetFitTrainer 進行對比學習以及分類頭的訓練。

Sources