SetFit 文件
模型卡片
並獲得增強的文件體驗
開始使用
模型卡
SetFit 帶有大量自動生成的模型卡/README。在本指南中,我們將探討如何充分利用這種自動生成。
例如,tomaarsen/setfit-all-MiniLM-L6-v2-sst2-32-shot 模型已遵循本指南中的所有步驟,以生成最全面的自動生成模型卡。
指定元資料
儘管 SetFit 可以透過其訓練和配置推斷出大量關於模型的資訊,但有些元資料通常無法(輕鬆地)推斷出來。例如:
- 語言:模型語言,例如英語的“en”。
- 許可證:模型許可證,例如“mit”或“apache-2.0”。
- 資料集名稱:資料集的易讀名稱,例如“Amazon Counterfactual”。
- 資料集 ID:資料集的資料集 ID,例如“dair-ai/emotion”。
建議在呼叫 `SetFitModel.from_pretrained()` 時將這些資訊指定給 SetFitModel,以便將這些資訊包含在模型卡及其元資料中。這可以透過 SetFitModelCardData 例項和 `model_card_data` 關鍵字引數來完成,例如:
from setfit import SetFitModel
model = SetFitModel.from_pretrained(
"BAAI/bge-small-en-v1.5",
model_card_data=SetFitModelCardData(
language="en",
license="apache-2.0",
dataset_id="sst2",
dataset_name="SST2",
)
)
有關您可以在 README 中指定的更多資訊,請參閱 SetFitModelCardData 文件。
標籤
如果您的訓練資料集中的標籤都是整數,建議您為 SetFitModel 提供標籤。然後,這些標籤可以 1) 用於推理,以及 2) 用於您的模型卡。例如,如果您的訓練標籤分別是表示負面和正面的 0
和 1
,則可以這樣載入模型:
model = SetFitModel.from_pretrained(
"BAAI/bge-small-en-v1.5",
labels=["negative", "positive"],
model_card_data=SetFitModelCardData(
language="en",
license="apache-2.0",
dataset_id="sst2",
dataset_name="SST2",
)
)
呼叫 SetFitModel.predict() 時,訓練好的模型現在將輸出字串或字串列表,而不是您的整數標籤
model.predict([
"It's a charming and often affecting journey.",
"It's slow -- very, very slow.",
"A sometimes tedious film.",
])
# => ['positive', 'negative', 'negative']
此外,模型卡將包含標籤,例如它將使用下表
標籤 | 示例 |
---|---|
負面 |
|
正面 |
|
而不是這個
標籤 | 示例 |
---|---|
0 |
|
1 |
|
以及下表
標籤 | 訓練樣本數 |
---|---|
負面 | 32 |
正面 | 32 |
而不是這個
標籤 | 訓練樣本數 |
---|---|
0 | 32 |
1 | 32 |
排放跟蹤
可以安裝 codecarbon
Python 包,以在訓練期間自動跟蹤碳排放。此資訊將包含在模型卡中,例如以列表形式如下所示
環境影響
碳排放使用 CodeCarbon 測量。
- 碳排放量:0.003 千克二氧化碳
- 使用小時數:0.072 小時
自定義指標
如果您使用自定義指標,那麼它們也將包含在您的模型卡中!例如,如果您使用以下 metric
函式
from setfit import SetFitModel, Trainer, TrainingArguments
...
def compute_metrics(y_pred, y_test):
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
return { 'accuracy': accuracy, 'precision': precision, 'recall': recall, 'f1': f1}
...
trainer = Trainer(
model=model,
args=args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
metric=compute_metrics,
)
trainer.train()
model.save_pretrained("setfit-bge-small-v1.5-sst2-8-shot")
那麼最終的模型卡將包含您的特殊指標!例如,元資料將包括:
metrics:
- type: accuracy
value: 0.8061504667764964
name: Accuracy
- type: precision
value: 0.7293729372937293
name: Precision
- type: recall
value: 0.9724972497249725
name: Recall
- type: f1
value: 0.8335690711928335
name: F1
此外,“評估”部分將顯示您的指標
指標
標籤 | 準確率 | 精度 | 召回率 | F1 |
---|---|---|---|---|
所有 | 0.8062 | 0.7294 | 0.9725 | 0.8336 |