如何使用 AutoTrain 微調自定義嵌入模型
AutoTrain 是一款強大的無程式碼工具,可讓您輕鬆地在自己的資料集上訓練或微調許多不同的先進模型,包括 Sentence Transformer 模型。這是一份簡單的指南,幫助您開始使用 AutoTrain 微調自定義嵌入模型。
AutoTrain 中 Sentence Transformer 微調的型別
AutoTrain 支援多種型別的 Sentence Transformer 微調任務
- pair: 資料集包含兩個句子:anchor (錨點) 和 positive (正例)。
- pair_class: 資料集包含兩個句子:premise (前提) 和 hypothesis (假設),以及一個目標標籤。
- pair_score: 資料集包含兩個句子:sentence1 和 sentence2,以及一個目標分數。
- triplet: 資料集包含三個句子:anchor (錨點)、positive (正例) 和 negative (負例)。
- qa: 資料集包含兩個句子:query (問題) 和 answer (回答)。
資料格式
AutoTrain 接受 CSV 或 JSONL 格式的資料。您也可以使用 Hugging Face Hub 上的資料集。讓我們看看每個任務的資料格式。
pair:
| anchor | positive | |---------------------------------|---------------------------------| | hello | hi | | how are you | I am fine | | What is your name? | My name is Abhishek | | Which is the best programming language? | Python |
pair_class:
| premise | hypothesis | label | |---------------------------------|---------------------------------|-------| | hello | hi | 1 | | how are you | I am fine | 0 | | What is your name? | My name is Abhishek | 1 | | Which is the best programming language? | Python | 1 |
pair_score:
| sentence1 | sentence2 | score | |---------------------------------|---------------------------------|-------| | hello | hi | 0.8 | | how are you | I am fine | 0.2 | | What is your name? | My name is Abhishek | 0.9 | | Which is the best programming language? | Python | 0.7 |
triplet:
| anchor | positive | negative | |---------------------------------|---------------------------------|---------------------------------| | hello | hi | bye | | how are you | I am fine | I am not fine | | What is your name? | My name is Abhishek | Whats it to you? | | Which is the best programming language? | Python | Javascript |
qa:
| query | answer | |---------------------------------|---------------------------------| | hello | hi | | how are you | I am fine | | What is your name? | My name is Abhishek | | Which is the best programming language? | Python |
列對映
列對映對於 AutoTrain 理解資料集中每列的角色至關重要。以下是如何為每個任務對映列:
任務 | 列對映 |
---|---|
pair | {"sentence1_column": "anchor", "sentence2_column": "positive"} |
pair_class | {"sentence1_column": "premise", "sentence2_column": "hypothesis", "target_column": "label"} |
pair_score | {"sentence1_column": "sentence1", "sentence2_column": "sentence2", "target_column": "score"} |
triplet | {"sentence1_column": "anchor", "sentence2_column": "positive", "sentence3_column": "negative"} |
qa | {"sentence1_column": "query", "sentence2_column": "answer"} |
準確對映的技巧
- 驗證列名: 確保對映字典中使用的名稱與資料集中的列名相匹配。
- 為新資料集更新對映: 每個資料集可能需要根據其結構進行獨特的對映。
透過遵循這些步驟並確保正確的資料格式和列對映,您可以有效地使用 AutoTrain 微調自定義嵌入模型。
使用 AutoTrain CLI 進行微調
一旦您設定好資料和列對映,就可以使用 AutoTrain CLI 微調您的 Sentence Transformer 模型。以下是 triplet
任務的配置示例。
配置檔案 (config.yml)
建立一個包含以下內容的 config.yml
檔案
task: sentence-transformers:triplet
base_model: microsoft/mpnet-base
project_name: autotrain-st-triplet
log: tensorboard
backend: local
data:
path: sentence-transformers/all-nli
train_split: triplet:train
valid_split: triplet:dev
column_mapping:
sentence1_column: anchor
sentence2_column: positive
sentence3_column: negative
params:
max_seq_length: 512
epochs: 5
batch_size: 8
lr: 2e-5
optimizer: adamw_torch
scheduler: linear
gradient_accumulation: 1
mixed_precision: fp16
hub:
username: ${HF_USERNAME}
token: ${HF_TOKEN}
push_to_hub: true
使用 CLI 進行微調的步驟
安裝 AutoTrain-Advanced: 確保您已安裝
autotrain-advanced
。您可以透過 pip 安裝:pip install autotrain-advanced
準備配置: 將上述 YAML 配置另存為
config.yml
。執行訓練: 執行以下命令開始微調過程
autotrain --config config.yml
不同任務的配置
以下是 config.yml
檔案在不同任務下的變化:
Pair 任務
task: sentence-transformers:pair
data:
column_mapping:
sentence1_column: anchor
sentence2_column: positive
Pair Class 任務
task: sentence-transformers:pair_class
data:
column_mapping:
sentence1_column: premise
sentence2_column: hypothesis
target_column: label
Pair Score 任務
task: sentence-transformers:pair_score
data:
column_mapping:
sentence1_column: sentence1
sentence2_column: sentence2
target_column: score
QA 任務
task: sentence-transformers:qa
data:
column_mapping:
sentence1_column: query
sentence2_column: answer
請注意,對於所有任務,您都需要不同型別的資料集,並且列對映將根據您資料集中可用的列名而改變。這是一個示例資料集,其中包含了上述大多數訓練器型別。
透過 AutoTrain UI 在 Hugging Face Spaces 上訓練
如果您想使用 AutoTrain UI 在 Hugging Face Spaces 上進行訓練,您可以點選這裡,附加適當的硬體並建立空間,然後選擇正確的任務。最終的 UI 介面將如下所示:
點選“開始訓練”將啟動訓練過程 :)
附:您也可以在 Google Colab 上做同樣的事情!檢視 GitHub 倉庫以瞭解更多資訊。
總結
透過遵循這些步驟並確保正確的資料格式和列對映,無論您是透過 Web 介面還是命令列介面,都可以有效地使用 AutoTrain 微調自定義嵌入模型。只需一個簡單的配置檔案,您就可以利用 AutoTrain 訓練出滿足您特定需求的強大 Sentence Transformer 模型。
訓練愉快!