使用預訓練的模型
模型中心使選擇合適的模型變得簡單,因此只需幾行代碼即可在任何下游庫中使用它。讓我們來看看如何實際使用這些模型之一,以及如何回饋社區。
假設我們正在尋找一種可以執行mask填充的French-based模型。
我們選擇 camembert-base 檢查點來嘗試一下。我們需要做的僅僅是輸入 camembert-base
標識符!正如您在前幾章中看到的,我們可以使用 pipeline() 功能:
from transformers import pipeline
camembert_fill_mask = pipeline("fill-mask", model="camembert-base")
results = camembert_fill_mask("Le camembert est <mask> :)")
[
{'sequence': 'Le camembert est délicieux :)', 'score': 0.49091005325317383, 'token': 7200, 'token_str': 'délicieux'},
{'sequence': 'Le camembert est excellent :)', 'score': 0.1055697426199913, 'token': 2183, 'token_str': 'excellent'},
{'sequence': 'Le camembert est succulent :)', 'score': 0.03453313186764717, 'token': 26202, 'token_str': 'succulent'},
{'sequence': 'Le camembert est meilleur :)', 'score': 0.0330314114689827, 'token': 528, 'token_str': 'meilleur'},
{'sequence': 'Le camembert est parfait :)', 'score': 0.03007650189101696, 'token': 1654, 'token_str': 'parfait'}
]
如您所見,在管道中加載模型非常簡單。您唯一需要注意的是所選檢查點是否適合它將用於的任務。例如,這裡我們正在加載 camembert-base 檢查點在 fill-mask 管道,這完全沒問題。但是如果我們要在 text-classification 管道,結果沒有任何意義,因為 camembert-base 不適合這個任務!我們建議使用 Hugging Face Hub 界面中的任務選擇器來選擇合適的檢查點:
您還可以直接使用模型架構實例化檢查點:
from transformers import CamembertTokenizer, CamembertForMaskedLM
tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = CamembertForMaskedLM.from_pretrained("camembert-base")
然而,我們建議使用Auto* 類,因為Auto* 類設計與架構無關。前面的代碼示例將只能在 CamemBERT 架構中加載可用的檢查點,但使用 Auto* 類使切換檢查點變得簡單:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("camembert-base")
model = AutoModelForMaskedLM.from_pretrained("camembert-base")
使用預訓練模型時,一定要檢查它是如何訓練的,在哪些數據集上,它的限制和它的偏差。所有這些信息都應在其模型卡片上註明。