-
Notifications
You must be signed in to change notification settings - Fork 756
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Translate German Chapter 4 (part 2) #640
Merged
Merged
Changes from 4 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
2ca3e78
translate de-ch-4.4
fabridamicelli 0c66281
translate de-ch4-part2
fabridamicelli 22986cc
finalize de_ch_4_part2
fabridamicelli 7d86ff3
add ch 4 parts to table of contents
fabridamicelli f8af3dd
remove original sentence
fabridamicelli File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# Erstellung einer Modellkarte ("model card") | ||
|
||
<CourseFloatingBanner | ||
chapter={4} | ||
classNames="absolute z-10 right-0 top-0" | ||
/> | ||
|
||
Die Modellkarte (Steckbrief) ist eine Datei, die wahrscheinlich genauso wichtig wie das Modell und der Tokenizer in dem Modell-Repository ist. | ||
Da liegt die zentrale Definition vom Modell und sie trägt dazu bei, dass andere Menschen der Community das wiederverwenden und die Ergebnisse reproduzieren können – also das ist die Basis, auf der Andere ihre Artifakte bauen können. | ||
|
||
Die Dokumentation zum Modell- Training und Evaluierung hilft anderen Nutzer:innen zu verstehen, was sie vom Modell erwarten sollten. | ||
Ausreichende Information zu der Vor- und Nachaufarbeitung der Daten dient auch dazu, dass man die Einschränkungen, Biases und den Kontext identifizieren kann, wann das Modell nützlich ist und wann nicht. | ||
|
||
Deswegen ist die Erstellung einer klar definierten Modellkarte ein sehr wichtiger Schritt. Hier geben wir ein Paar Hinweise, die dir dabei helfen könnten. Die Modellkarte wird durch eine *README.md* Datei (eine Markdown Datei) kreiert, die du schonmal gesehen hast. | ||
|
||
Das Konzept von Modellkarte ("model card") stammt aus einer Forschungsrichtung bei Google, die zuerst in dem Paper ["Model Cards for Model Reporting"](https://arxiv.org/abs/1810.03993) von Margaret Mitchell et al erschien. Vieles von dem, was hier steht, basiert auf dem Paper und wir empfehlen dir, das Paper zu lesen, um besser zu verstehen, warum Modellkarten so wichtig sind, wenn man Wert auf Reproduzierbarkeit, Wiederverwendbarkeit und Fairness legt. | ||
|
||
The model card usually starts with a very brief, high-level overview of what the model is for, followed by additional details in the following sections: | ||
Eine Modellkarte fängt mit einer kurzen, große Übersicht davon, was das Modell kann plus einige Details in den folgenden Abschnitte: | ||
|
||
- Modell-Beschreibung | ||
- Beabsichtigte Nutzung und Einschränkungen | ||
- Modell-Bedienung | ||
- Einschränkungen und Bias | ||
- Trainingsdaten | ||
- Trainingsverfahren | ||
- Evaluierungsergebnisse | ||
|
||
Lass uns anschauen, was genau in jedem Abschnitt stehen sollte. | ||
|
||
### Modell-Beschreibung | ||
|
||
Die Modellbeschreibung enthält grundlegende Details zum Modell. Dazu gehören die Architektur, die Version, ob es in einem Paper vorgestellt wurde, ob eine Originalimplementierung verfügbar ist, der Autor und allgemeine Informationen über das Modell. Eventuelle Urheberrechte sind hier anzugeben. In diesem Abschnitt können auch allgemeine Informationen zu Trainingsverfahren, Parametern und wichtigen Haftungsausschlüssen erwähnt werden. | ||
|
||
### Verwendungszweck und Einschränkungen | ||
|
||
Hier beschreibst du die angedachten Anwendungsfälle fürs Modell, einschließlich der Sprachen, Felder und Domänen, in denen es angewendet werden kann. In diesem Abschnitt der Modellkarte können auch Bereiche dokumentiert werden, die bekanntermaßen außerhalb des Anwendungsbereichs des Modells liegen oder in denen die Leistung wahrscheinlich nicht optimal ist. | ||
|
||
### Modell-Bedienung | ||
|
||
Dieser Abschnitt sollte einige Beispiele für die Verwendung des Modells enthalten. Dies kann die Verwendung der Funktion `pipeline()`, die Verwendung der Modell- und Tokenizer-Klassen und jeden anderen Code zeigen, der deiner Meinung nach hilfreich sein könnte. | ||
|
||
|
||
### Trainingsdaten | ||
|
||
In diesem Teil sollte angegeben werden, auf welchen Datensatz bzw. Datensätze das Modell trainiert wurde. Eine kurze Beschreibung des Datensatzes/der Datensätze ist ebenfalls willkommen. | ||
|
||
### Trainingsverfahren | ||
|
||
In diesem Abschnitt solltest du alle relevanten Aspekte des Modelltrainingsverfahren beschreiben, die für die Reproduzierbarkeit nützlich sind. Dazu gehören alle Vor- und Nachbearbeitungen, die an den Daten durchgeführt wurden, sowie Details wie die Anzahl der Trainingsepochene, Batch-Größe, die Lernrate usw. | ||
|
||
### Variablen und Metriken | ||
|
||
Hier solltest du die Bewertungsmetriken beschreiben und die verschiedenen Faktoren, die du dabei mit berücksichtigst. Durch die Angabe, welche Metrik(en) verwendet wurden, für welchen Datensatz und welche Datensatzaufteilung, kannst du die Leistung deines Modells leicht mit der anderer Modelle vergleichen. Diese sollten durch die vorherigen Abschnitte informiert werden, wie z. B. die beabsichtigten Benutzer und Anwendungsfälle. | ||
|
||
### Evaluierungsergebnisse | ||
|
||
Abschließend gibst du an, wie gut das Modell mit dem Bewertungsdatensatz abschneidet. Wenn das Modell einen Entscheidungsschwellenwert verwendet, gib entweder den in der Bewertung verwendeten Entscheidungsschwellenwert an oder mach Angaben zur Bewertung bei verschiedenen Schwellenwerten für die beabsichtigten Verwendungszwecke. | ||
|
||
## Beispiel | ||
|
||
Im Folgenden findest du einige Beispiele von guten Modellkarten: | ||
|
||
- [`bert-base-cased`](https://huggingface.co/bert-base-cased) | ||
- [`gpt2`](https://huggingface.co/gpt2) | ||
- [`distilbert`](https://huggingface.co/distilbert-base-uncased) | ||
|
||
|
||
Mehr Beispiele von verschiedene Organisationen/Firmen sind hier verfügbar [here](https://github.com/huggingface/model_card/blob/master/examples.md). | ||
|
||
## Hinweis | ||
|
||
Modellkarten sind bei der Veröffentlichung von Modellen nicht erforderlich und du musst bei der Erstellung nicht alle oben beschriebenen Abschnitte einbeziehen. Allerdings kann eine explizite Dokumentation des Modells künftigen Nutzern nur nützen, daher empfehlen wir dir, so viele Abschnitte wie möglich nach bestem Wissen und Gewissen auszufüllen. | ||
|
||
## Modellkarte-Metadaten | ||
|
||
Wenn du den Hugging Face Hub ein wenig erkundet hast, solltest du gesehen haben, dass einige Modelle zu bestimmten Kategorien gehören: Du kannst sie nach Aufgaben, Sprachen, Bibliotheken und mehr filtern. Die Kategorien, zu denen ein Modell gehört, werden anhand der Metadaten identifiziert, die du im Kopf der Modellkarte hinzufügst. | ||
|
||
Zum Beispiel sieh dir dieses an [`camembert-base` model card](https://huggingface.co/camembert-base/blob/main/README.md). Du solltest folgende Zeilen auf der Modellkarte sehen: | ||
|
||
``` | ||
--- | ||
language: fr | ||
license: mit | ||
datasets: | ||
- oscar | ||
--- | ||
``` | ||
|
||
Diese Metadaten werden vom Hugging Face Hub analysiert, der dieses Modell dann als französisches Modell mit einer MIT-Lizenz identifiziert, das auf dem Oscar-Datensatz trainiert wurde. | ||
|
||
Die vollständige [Modellkarte](https://github.com/huggingface/hub-docs/blame/main/modelcard.md) ermöglicht die Angabe von Sprachen, Lizenzen, Tags, Datensätzen, Metriken sowie den Bewertungsergebnissen, die das Modell wann erhalten hat Ausbildung. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Teil 1 abgeschlossen! | ||
|
||
<CourseFloatingBanner | ||
chapter={4} | ||
classNames="absolute z-10 right-0 top-0" | ||
/> | ||
|
||
Dies ist das Ende des ersten Teils des Kurses! Teil 2 wird am 15. November mit einem großen Community-Event veröffentlicht, weitere Informationen findest du [hier](https://huggingface.co/blog/course-launch-event). | ||
|
||
Du solltest nun in der Lage sein, ein vorab trainiertes Modell für ein Textklassifizierungsproblem (einzelne Sätze oder Satzpaare) zu optimieren und das Ergebnis in den Model Hub hochzuladen. Um sicherzustellen, dass du diesen ersten Abschnitt beherrschst, solltest du genau das an einem Problem verwenden, das dich interessiert (und nicht unbedingt auf Englisch, wenn Sie eine andere Sprache sprechen)! Hilfe findest du in den [Hugging Face-Foren](https://discuss.huggingface.co/) und du kannst dein Projekt in [diesem Thema](https://discuss.huggingface.co/t/share-your-projects) teilen /6803), sobald du damit fertig bist. | ||
|
||
Wir freuen uns darauf, zu sehen, was du alles damit baust! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,231 @@ | ||
<FrameworkSwitchCourse {fw} /> | ||
|
||
<!-- DISABLE-FRONTMATTER-SECTIONS --> | ||
|
||
# Quiz am Ende des Kapitels | ||
|
||
<CourseFloatingBanner | ||
chapter={4} | ||
classNames="absolute z-10 right-0 top-0" | ||
/> | ||
|
||
Lass uns testen, was du im vorheringen Kapitel gelernt hast! | ||
|
||
### 1. Auf welche Modelle sind die Hub-Modelle beschränkt? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Modelle aus der 🤗 Transformers Bibliothek.", | ||
explain: "Obwohl Modelle aus der 🤗 Transformers-Bibliothek auf dem Hugging Face Hub unterstützt werden, sind sie nicht die einzigen!" | ||
}, | ||
{ | ||
text: "Alle Modelle mit einer ähnlichen Schnittstelle (Interface) wie 🤗 Transformers.", | ||
explain: "Beim Hochladen von Modellen auf den Hugging Face Hub werden keine Schnittstellenanforderungen festgelegt." | ||
|
||
}, | ||
{ | ||
text: "Es gibt keine", | ||
explain: "Korrekt! Es gibt keine Einschränkungen, um Modelle auf den Hub hochzuladen", | ||
correct: true | ||
}, | ||
{ | ||
text: "Modelle, die in irgendeiner Weise mit NLP zu tun haben", | ||
explain: "Es werden keine Anforderungen an den Einsatzbereich gestellt!" | ||
} | ||
]} | ||
/> | ||
|
||
### 2. Wie kannst du die Modelle auf dem Hub verwalten? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Durch einen GCP-Account.", | ||
explain: "Inkorrekt!" | ||
}, | ||
{ | ||
text: "Durch Peer-to-Peer-Verteilung.", | ||
explain: "Inkorrekt!" | ||
}, | ||
{ | ||
text: "Durch git und git-lfs.", | ||
explain: "Korrekt! Modelle auf dem Hub sind einfach Git-Repositories, die für große Dateien <code>git-lfs</code> benutzen.", | ||
correct: true | ||
} | ||
]} | ||
/> | ||
|
||
### 3. Was kannst du mit der Hugging Face Hub-Weboberfläche tun? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Ein vorhandenes Repository forken.", | ||
explain: "Das Forken eines Repositorys ist auf dem Hugging Face Hub nicht möglich." | ||
}, | ||
{ | ||
text: "Ein neues Modell-Repository erstellen.", | ||
explain: "Richtig! Das ist jedoch nicht alles, was Sie tun können.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Dateien editieren und verwalten.", | ||
explain: "Richtig! Das ist aber nicht die einzige Antwort.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Dateien hochladen.", | ||
explain: "Korrekt! Aber das ist nicht alles.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Unterschiede zwischen Versionen sehen.", | ||
explain: "Korrekt! Aber das ist nicht alles.", | ||
correct: true | ||
} | ||
]} | ||
/> | ||
|
||
### 4. Was ist eine Modellkarte? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Eine grobe Beschreibung des Modells, daher weniger wichtig als die Modell- und Tokenizer-Dateien.", | ||
explain: "Es ist zwar eine Beschreibung des Modells, aber es ist ein wichtiger Teil: Wenn es unvollständig ist oder fehlt, wird der Nutzen des Modells drastisch reduziert." | ||
}, | ||
{ | ||
text: "Eine Möglichkeit, Reproduzierbarkeit, Wiederverwendbarkeit und Fairness sicherzustellen.", | ||
explain: "Richtig! Das Teilen der richtigen Informationen auf der Modellkarte hilft Benutzern, dein Modell zu nutzen und sich seiner Grenzen und Vorurteile bewusst zu werden.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Eine Python-Datei, die ausgeführt werden kann, um Informationen zum Modell zu holen", | ||
explain: "Modellkarten sind einfache Markdown-Dateien." | ||
} | ||
]} | ||
/> | ||
|
||
### 5. Welche dieser Objekte der 🤗 Transformers-Bibliothek können mit `push_to_hub()` direkt auf dem Hub geteilt werden? | ||
|
||
{#if fw === 'pt'} | ||
<Question | ||
choices={[ | ||
{ | ||
text: "Ein Tokenizer", | ||
explain: "Richtig! Alle Tokenizer verfügen über die Methode <code>push_to_hub</code>, und wenn su sie verwendest, werden alle Tokenizer-Dateien (Vokabular, Architektur des Tokenizers usw.) in ein bestimmtes Repo verschoben. Aber das ist nicht die einzig richtige Antwort!", | ||
correct: true | ||
}, | ||
{ | ||
text: "Eine Modell-Konfiguration", | ||
explain: "Richtig! Alle Modellkonfigurationen verfügen über die Methode <code>push_to_hub</code>, und wenn Sie sie verwenden, werden sie an ein bestimmtes Repo gepusht. Was kannst du sonst noch teilen?", | ||
correct: true | ||
}, | ||
{ | ||
text: "Ein Model", | ||
explain: "Richtig! Alle Modelle verfügen über die Methode <code>push_to_hub</code>, und wenn du sie verwendest, werden sie und ihre Konfigurationsdateien in ein bestimmtes Repo gepusht. Das ist jedoch nicht alles, was du teilen kannst.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Ein Trainer", | ||
explain: "Das ist richtig – der <code>Trainer</code> implementiert auch die Methode <code>push_to_hub</code> und lädt mit dieser Methode das Modell, seine Konfiguration, den Tokenizer und einen Modellkartenentwurf auf einen gegebenen Server hoch repo. Versuch es auch mit einer anderen Antwort!", | ||
correct: true | ||
} | ||
]} | ||
/> | ||
{:else} | ||
<Question | ||
choices={[ | ||
{ | ||
text: "Ein tokenizer", | ||
explain: "Correct! All tokenizers have the <code>push_to_hub</code> method, and using it will push all the tokenizer files (vocabulary, architecture of the tokenizer, etc.) to a given repo. That's not the only right answer, though!", | ||
explain: "Richtig! Alle Tokenizer verfügen über die Methode <code>push_to_hub</code>, und wenn du sie verwendest, werden alle Tokenizer-Dateien (Vokabular, Architektur des Tokenizers usw.) in ein bestimmtes Repo verschoben. Das ist aber nicht die einzige richtige Antwort!", | ||
correct: true | ||
}, | ||
{ | ||
text: "Eine Modell-Konfiguration", | ||
explain: "Right! All model configurations have the <code>push_to_hub</code> method, and using it will push them to a given repo. What else can you share?", | ||
explain: "Richtig! Alle Modellkonfigurationen verfügen über die Methode <code>push_to_hub</code>, und wenn du sie verwendest, werden sie an ein bestimmtes Repo gepusht. Was kannst du sonst noch teilen?", | ||
correct: true | ||
}, | ||
{ | ||
text: "Ein Modell", | ||
explain: "Richtig! Alle Modelle verfügen über die Methode <code>push_to_hub</code>, und wenn du sie verwendest, werden sie und ihre Konfigurationsdateien in ein bestimmtes Repo gepusht. Das ist jedoch nicht alles, was du teilen kannst.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Alles oben mit einem speziellen `Callback`", | ||
explain: "Das ist richtig – der <code>PushToHubCallback</code> sendet während des Trainings regelmäßig alle diese Objekte an ein Repo.", | ||
correct: true | ||
} | ||
]} | ||
/> | ||
{/if} | ||
|
||
### 6. Was ist der erste Schritt bei Verwendung der Methode `push_to_hub()` oder der CLI-Tools? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Login auf der Website.", | ||
explain: "Das hilft auf deinem lokalen Rechner nicht." | ||
}, | ||
{ | ||
text: "'huggingface-cli login' im Terminal auszuführen.", | ||
explain: "Richtig – dadurch wird dein persönlicher Token heruntergeladen und zwischengespeichert.", | ||
correct: true | ||
}, | ||
{ | ||
text: "'notebook_login()' im Notebook auszuführen.", | ||
explain: "Richtig – es wird ein Widget angezeigt, mit dem du dichh authentifizieren kannst.", | ||
correct: true | ||
}, | ||
]} | ||
/> | ||
|
||
### 7. Du verwendest ein Modell und einen Tokenizer – wie kannst du diese auf den Hub hochladen? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Mittels der push_to_hub Methode direkt auf dem Model und dem Tokenizer.", | ||
explain: "Korrekt!", | ||
correct: true | ||
}, | ||
{ | ||
text: "Innerhalb der Python-Runtime, indem man sie in ein <code>huggingface_hub</code>-Dienstprogramm einschließt.", | ||
explain: "Modelle und Tokenizer profitieren bereits von den Dienstprogrammen <code>huggingface_hub</code>: kein zusätzlicher Wrapping erforderlich!" | ||
}, | ||
{ | ||
text: "Indem du sie auf der Festplatte speicherst und <code>transformers-cli upload-model</code> aufrufst", | ||
explain: "Der Befehl <code>upload-model</code> existiert nicht." | ||
} | ||
]} | ||
/> | ||
|
||
### 8. Welche Git-Operationen kann man mit der Klasse „Repository“ ausführen? | ||
|
||
<Question | ||
choices={[ | ||
{ | ||
text: "Ein Commit.", | ||
explain: "Richtig, dafür ist die <code>git_commit()</code> Methode da.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Ein Pull", | ||
explain: "Das ist der Zweck der <code>git_pull()</code> Methode.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Ein Push", | ||
explain: "Die Methode <code>git_push()</code> macht das.", | ||
correct: true | ||
}, | ||
{ | ||
text: "Ein Merge", | ||
explain: "Nein, die Operation wird mit dieser API nie möglich sein." | ||
} | ||
]} | ||
/> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you can remove this original sentence.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MKhalusova thanks for taking a look!
well spotted, you're right, that was a leftover and I just removed it :)