Transformers documentation
Ein Modell teilen
Ein Modell teilen
Die letzten beiden Tutorials haben gezeigt, wie man ein Modell mit PyTorch, Keras und đ€ Accelerate fĂŒr verteilte Setups feinabstimmen kann. Der nĂ€chste Schritt besteht darin, Ihr Modell mit der Community zu teilen! Bei Hugging Face glauben wir an den offenen Austausch von Wissen und Ressourcen, um kĂŒnstliche Intelligenz fĂŒr alle zu demokratisieren. Wir ermutigen Sie, Ihr Modell mit der Community zu teilen, um anderen zu helfen, Zeit und Ressourcen zu sparen.
In diesem Tutorial lernen Sie zwei Methoden kennen, wie Sie ein trainiertes oder verfeinertes Modell auf dem Model Hub teilen können:
- Programmgesteuertes Ăbertragen Ihrer Dateien auf den Hub.
- Ziehen Sie Ihre Dateien per Drag-and-Drop ĂŒber die WeboberflĂ€che in den Hub.
Um ein Modell mit der Ăffentlichkeit zu teilen, benötigen Sie ein Konto auf huggingface.co. Sie können auch einer bestehenden Organisation beitreten oder eine neue Organisation grĂŒnden.
Repository-Funktionen
Jedes Repository im Model Hub verhÀlt sich wie ein typisches GitHub-Repository. Unsere Repositorys bieten Versionierung, Commit-Historie und die Möglichkeit, Unterschiede zu visualisieren.
Die integrierte Versionierung des Model Hub basiert auf Git und git-lfs. Mit anderen Worten: Sie können ein Modell als ein Repository behandeln, was eine bessere Zugriffskontrolle und Skalierbarkeit ermöglicht. Die Versionskontrolle ermöglicht Revisionen, eine Methode zum Anheften einer bestimmten Version eines Modells mit einem Commit-Hash, Tag oder Branch.
Folglich können Sie eine bestimmte Modellversion mit dem Parameter âRevisionâ laden:
>>> model = AutoModel.from_pretrained(
... "julien-c/EsperBERTo-small", revision="4c77982" # tag name, or branch name, or commit hash
... )
Dateien lassen sich auch in einem Repository leicht bearbeiten, und Sie können die Commit-Historie sowie die Unterschiede einsehen:
Einrichtung
Bevor Sie ein Modell fĂŒr den Hub freigeben, benötigen Sie Ihre Hugging Face-Anmeldedaten. Wenn Sie Zugang zu einem Terminal haben, fĂŒhren Sie den folgenden Befehl in der virtuellen Umgebung aus, in der đ€ Transformers installiert ist. Dadurch werden Ihre Zugangsdaten in Ihrem Hugging Face-Cache-Ordner (standardmĂ€Ăig ~/.cache/
) gespeichert:
hf auth login
Wenn Sie ein Notebook wie Jupyter oder Colaboratory verwenden, stellen Sie sicher, dass Sie die huggingface_hub
Bibliothek installiert haben. Diese Bibliothek ermöglicht Ihnen die programmatische Interaktion mit dem Hub.
pip install huggingface_hub
Verwenden Sie dann notebook_login
, um sich beim Hub anzumelden, und folgen Sie dem Link hier, um ein Token fĂŒr die Anmeldung zu generieren:
>>> from huggingface_hub import notebook_login
>>> notebook_login()
Ein Modell fĂŒr alle Frameworks konvertieren
Um sicherzustellen, dass Ihr Modell von jemandem verwendet werden kann, der mit einem anderen Framework arbeitet, empfehlen wir Ihnen, Ihr Modell sowohl mit PyTorch- als auch mit TensorFlow-Checkpoints zu konvertieren und hochzuladen. WĂ€hrend Benutzer immer noch in der Lage sind, Ihr Modell von einem anderen Framework zu laden, wenn Sie diesen Schritt ĂŒberspringen, wird es langsamer sein, weil đ€ Transformers den Checkpoint on-the-fly konvertieren mĂŒssen.
Die Konvertierung eines Checkpoints fĂŒr ein anderes Framework ist einfach. Stellen Sie sicher, dass Sie PyTorch und TensorFlow installiert haben (siehe hier fĂŒr Installationsanweisungen), und finden Sie dann das spezifische Modell fĂŒr Ihre Aufgabe in dem anderen Framework.
Geben Sie from_tf=True
an, um einen PrĂŒfpunkt von TensorFlow nach PyTorch zu konvertieren:
>>> pt_model = DistilBertForSequenceClassification.from_pretrained("path/to/awesome-name-you-picked", from_tf=True)
>>> pt_model.save_pretrained("path/to/awesome-name-you-picked")
Ein Modell wÀhrend des Trainings hochladen
Die Weitergabe eines Modells an den Hub ist so einfach wie das HinzufĂŒgen eines zusĂ€tzlichen Parameters oder RĂŒckrufs. Erinnern Sie sich an das Feinabstimmungs-Tutorial, in der Klasse TrainingArguments
geben Sie Hyperparameter und zusÀtzliche Trainingsoptionen an. Eine dieser Trainingsoptionen beinhaltet die Möglichkeit, ein Modell direkt an den Hub zu pushen. Setzen Sie push_to_hub=True
in Ihrer TrainingArguments
:
>>> training_args = TrainingArguments(output_dir="my-awesome-model", push_to_hub=True)
Ăbergeben Sie Ihre Trainingsargumente wie gewohnt an Trainer
:
>>> trainer = Trainer(
... model=model,
... args=training_args,
... train_dataset=small_train_dataset,
... eval_dataset=small_eval_dataset,
... compute_metrics=compute_metrics,
... )
Nach der Feinabstimmung Ihres Modells rufen Sie push_to_hub()
auf Trainer
auf, um das trainierte Modell an den Hub zu ĂŒbertragen. Transformers fĂŒgt sogar automatisch Trainings-Hyperparameter, Trainingsergebnisse und Framework-Versionen zu Ihrer Modellkarte hinzu!
>>> trainer.push_to_hub()
Verwenden Sie die Funktion push_to_hub .
Sie können push_to_hub
auch direkt fĂŒr Ihr Modell aufrufen, um es in den Hub hochzuladen.
Geben Sie den Namen Ihres Modells in âpush_to_hubâ an:
>>> pt_model.push_to_hub("my-awesome-model")
Dadurch wird ein Repository unter Ihrem Benutzernamen mit dem Modellnamen my-awesome-model
erstellt. Benutzer können nun Ihr Modell mit der Funktion from_pretrained
laden:
>>> from transformers import AutoModel
>>> model = AutoModel.from_pretrained("your_username/my-awesome-model")
Wenn Sie zu einer Organisation gehören und Ihr Modell stattdessen unter dem Namen der Organisation pushen wollen, fĂŒgen Sie diesen einfach zur repo_id
hinzu:
>>> pt_model.push_to_hub("my-awesome-org/my-awesome-model")
Die Funktion âpush_to_hubâ kann auch verwendet werden, um andere Dateien zu einem Modell-Repository hinzuzufĂŒgen. Zum Beispiel kann man einen Tokenizer zu einem Modell-Repository hinzufĂŒgen:
>>> tokenizer.push_to_hub("my-awesome-model")
Oder vielleicht möchten Sie die TensorFlow-Version Ihres fein abgestimmten PyTorch-Modells hinzufĂŒgen:
>>> tf_model.push_to_hub("my-awesome-model")
Wenn Sie nun zu Ihrem Hugging Face-Profil navigieren, sollten Sie Ihr neu erstelltes Modell-Repository sehen. Wenn Sie auf die Registerkarte Dateien klicken, werden alle Dateien angezeigt, die Sie in das Repository hochgeladen haben.
Weitere Einzelheiten zum Erstellen und Hochladen von Dateien in ein Repository finden Sie in der Hub-Dokumentation hier.
Hochladen mit der WeboberflÀche
Benutzer, die einen no-code Ansatz bevorzugen, können ein Modell ĂŒber das Webinterface des Hubs hochladen. Besuchen Sie huggingface.co/new um ein neues Repository zu erstellen:
FĂŒgen Sie von hier aus einige Informationen ĂŒber Ihr Modell hinzu:
- WÀhlen Sie den Besitzer des Repositorys. Dies können Sie selbst oder eine der Organisationen sein, denen Sie angehören.
- WĂ€hlen Sie einen Namen fĂŒr Ihr Modell, der auch der Name des Repositorys sein wird.
- WÀhlen Sie, ob Ihr Modell öffentlich oder privat ist.
- Geben Sie die Lizenzverwendung fĂŒr Ihr Modell an.
Klicken Sie nun auf die Registerkarte Dateien und klicken Sie auf die SchaltflĂ€che Datei hinzufĂŒgen, um eine neue Datei in Ihr Repository hochzuladen. Ziehen Sie dann eine Datei per Drag-and-Drop hoch und fĂŒgen Sie eine Ăbergabemeldung hinzu.
HinzufĂŒgen einer Modellkarte
Um sicherzustellen, dass die Benutzer die FĂ€higkeiten, Grenzen, möglichen Verzerrungen und ethischen Aspekte Ihres Modells verstehen, fĂŒgen Sie bitte eine Modellkarte zu Ihrem Repository hinzu. Die Modellkarte wird in der Datei README.md
definiert. Sie können eine Modellkarte hinzufĂŒgen, indem Sie:
- Manuelles Erstellen und Hochladen einer âREADME.mdâ-Datei.
- Klicken Sie auf die SchaltflÀche Modellkarte bearbeiten in Ihrem Modell-Repository.
Werfen Sie einen Blick auf die DistilBert model card als gutes Beispiel fĂŒr die Art von Informationen, die eine Modellkarte enthalten sollte. Weitere Details ĂŒber andere Optionen, die Sie in der Datei âREADME.mdâ einstellen können, wie z.B. den Kohlenstoff-FuĂabdruck eines Modells oder Beispiele fĂŒr Widgets, finden Sie in der Dokumentation hier.
Update on GitHub