NLP Course documentation

Verwendung vortrainierter Modelle

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Verwendung vortrainierter Modelle

Open In Colab Open In Studio Lab

Der Model Hub erleichtert das Auswählen des passenden Modells, sodass es von downstream Libraries mit wenigen Codezeilen benutzt werden kann. Lass uns anschauen, wie genau man solche Modelle verwendet und wie man der Communinity zurück beitragen kann.

Nehmen wir an, wir suchen nach einem französichbasierten Modell, das die “mask filling” Aufgabe kann.

Selecting the Camembert model.

Wir wählen den camembert-base Checkpoint aus, um es zu auszuprobieren. Das Kennzeichen camembert-base ist alles, was wir brauchen, um loszulegen! Wie in früheren Kapiteln gezeigt wurde, können wir das Modell mit der pipeline() Funktion instanziieren:

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'}
]

So einfach kann man mit einer Pipeline ein Modell laden. Dabei muss man nur darauf achten, den passenden Checkpoint für die gewünschte Aufgabe zu selektieren. Zum Beispiel: Wir laden hier den camembert-base Checkpoint in die fill-mask Pipeline, was schon korrekt ist. Aber würden wir diesen Checkpoint in die text-classification Pipeline laden, wären die Ergebnisse völlig sinnlos, weil der “head” von camembert-base für diese Aufgabe einfach nicht passt! Wir empfehlen, den “Task Selector” auf der Hugging Face Hub Seite zu benutzen, um die richtigen Checkpoints auszuwählen:

The task selector on the web interface.

Du kannst auch den Checkpoint mit der Modell-Architektur direkt instanziieren:

from transformers import CamembertTokenizer, CamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = CamembertForMaskedLM.from_pretrained("camembert-base")

Dennoch empfehlen wir, dass man die Auto* classes stattdessen benutzt, da diese architekturunabhängig sind. Das vorherige Code-Beispiel gilt nur für Checkpoints, die in die CamemBERT Architektur zu laden sind, aber mit den Auto* Klassen kann man Checkpoints ziemlich einfach tauschen:

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("camembert-base")
model = AutoModelForMaskedLM.from_pretrained("camembert-base")
Wenn du ein vortrainiertes Modell verwendest, prüf erstmal, wie genau das traininert wurde, mit welchen Datensätzen, sowie seine Einschränkungen und Biases. All diese Informationen sollten auf der Modellbeschreibungskarte stehen.