import{s as Wr,o as Cr,n as Gr}from"../chunks/scheduler.49e4e380.js";import{S as Br,i as xr,g as d,s as r,r as h,A as Rr,h as u,f as n,c as a,j as Zr,u as g,x as m,k as G,y as Hr,a as l,v as y,t as f,b as ee,d as M,w,m as Nr,n as Vr,p as te}from"../chunks/index.fb15006d.js";import{T as zr}from"../chunks/Tip.f590f2e1.js";import{Y as Li}from"../chunks/Youtube.42918e4e.js";import{C as v}from"../chunks/CodeBlock.3f4fbe91.js";import{D as Jr}from"../chunks/DocNotebookDropdown.ff7a6598.js";import{F as Ar}from"../chunks/FrameworkSwitchCourse.f837e098.js";import{H as oe,E as Lr}from"../chunks/getInferenceSnippets.494e50ac.js";function Dr(_){let i,o;return i=new Jr({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section3_tf.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter4/section3_tf.ipynb"}]}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function Ir(_){let i,o;return i=new Jr({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter4/section3_pt.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter4/section3_pt.ipynb"}]}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function Xr(_){let i,o;return i=new Li({props:{id:"pUh5cGmNV8Y"}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function Sr(_){let i,o;return i=new Li({props:{id:"Zh0FfmVrKX0"}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function Yr(_){let i,o="Wenn du für das Modell-Training Keras benutzt, ist der einfachste Weg, um das Modell aud den Hub hochzuladen, den <code>PushToHubCallback</code> zu setzen, wenn du <code>model.fit()</code> aufrufst.",s,c,$,p,k=`Danach must du noch <code>callbacks=[callback]</code> beim <code>model.fit()</code> Aufruf setzen.
Der Callback wird das Modell auf den Hub hochladen und zwar zu einem Repository in deinem Namespace. Das passiert jedes Mal, wenn das Modell gespeichert wird (in diesem Beispiel jede Epoche). Der Repository wird so benannt werden, wie der Output-Ordner, den du gewählt hast (hier <code>bert-finetuned-mrpc</code>). Natürlich kannst du dir aber einen anderen Namen ausdenken und mit <code>hub_model_id = &quot;a_different_name&quot;</code> setzen.`,J,U,T="Um dein Modell zu einer Organisation, wovon du Mitglied bist, hochzuladen, kannst du einfach <code>hub_model_id = &quot;my_organization/my_repo_name&quot;</code> mit eingeben.",z;return c=new v({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFB1c2hUb0h1YkNhbGxiYWNrJTBBJTBBY2FsbGJhY2slMjAlM0QlMjBQdXNoVG9IdWJDYWxsYmFjayglMEElMjAlMjAlMjAlMjAlMjJiZXJ0LWZpbmV0dW5lZC1tcnBjJTIyJTJDJTIwc2F2ZV9zdHJhdGVneSUzRCUyMmVwb2NoJTIyJTJDJTIwdG9rZW5pemVyJTNEdG9rZW5pemVyJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> PushToHubCallback

callback = PushToHubCallback(
    <span class="hljs-string">&quot;bert-finetuned-mrpc&quot;</span>, save_strategy=<span class="hljs-string">&quot;epoch&quot;</span>, tokenizer=tokenizer
)`,wrap:!1}}),{c(){i=d("p"),i.innerHTML=o,s=r(),h(c.$$.fragment),$=r(),p=d("p"),p.innerHTML=k,J=r(),U=d("p"),U.innerHTML=T},l(b){i=u(b,"P",{"data-svelte-h":!0}),m(i)!=="svelte-z7773h"&&(i.innerHTML=o),s=a(b),g(c.$$.fragment,b),$=a(b),p=u(b,"P",{"data-svelte-h":!0}),m(p)!=="svelte-y2zie5"&&(p.innerHTML=k),J=a(b),U=u(b,"P",{"data-svelte-h":!0}),m(U)!=="svelte-gt8y0x"&&(U.innerHTML=T)},m(b,Z){l(b,i,Z),l(b,s,Z),y(c,b,Z),l(b,$,Z),l(b,p,Z),l(b,J,Z),l(b,U,Z),z=!0},i(b){z||(M(c.$$.fragment,b),z=!0)},o(b){f(c.$$.fragment,b),z=!1},d(b){b&&(n(i),n(s),n($),n(p),n(J),n(U)),w(c,b)}}}function Er(_){let i,o="Wenn du schon Modelle mit der <code>Trainer</code> API trainiert hast, dann ist der einfachste Weg, um Modelle hochzuladen, das Argument <code>push_to_hub=True</code> in <code>TrainingArguments</code> einzustellen.",s,c,$,p,k="Wenn du <code>trainer.train()</code> aufrufst, lädt der <code>Trainer</code> das Modell auf den Hub zu dem Repository in deinem Namespace hoch. Das passiert jedes Mal, wenn das Modell gespeichert wird (in diesem Beispiel jede Epoche). Der Repository wird so benannt werden, wie der Output-Ordner, den du gewählt hast (hier <code>bert-finetuned-mrpc</code>). Natürlich kannst du dir aber einen anderen Namen ausdenken und mit <code>hub_model_id = &quot;a_different_name&quot;</code> setzen.",J,U,T="Um dein Modell zu einer Organisation, wovon du Mitglied bist, hochzuladen, kannst du einfach <code>hub_model_id = &quot;my_organization/my_repo_name&quot;</code> mit eingeben.",z,b,Z="Wenn das Training durch ist, must du noch einmal <code>trainer.push_to_hub()</code> ausführen, um die letzte Version deines Modells hochzuladen. Das wird auch eine Modell-Karte generieren, auf der die relevanten Metadaten mit den benutzten Hyperparametern und Evaluierungsergebnissen! Hier ist ein Beispiel von dem Inhalt, den du auf so einer Modell-Karte finden kannst:",q,W,de='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/model_card.png" alt="An example of an auto-generated model card." width="100%"/>',B;return c=new v({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRyYWluaW5nQXJndW1lbnRzJTBBJTBBdHJhaW5pbmdfYXJncyUyMCUzRCUyMFRyYWluaW5nQXJndW1lbnRzKCUwQSUyMCUyMCUyMCUyMCUyMmJlcnQtZmluZXR1bmVkLW1ycGMlMjIlMkMlMjBzYXZlX3N0cmF0ZWd5JTNEJTIyZXBvY2glMjIlMkMlMjBwdXNoX3RvX2h1YiUzRFRydWUlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TrainingArguments

training_args = TrainingArguments(
    <span class="hljs-string">&quot;bert-finetuned-mrpc&quot;</span>, save_strategy=<span class="hljs-string">&quot;epoch&quot;</span>, push_to_hub=<span class="hljs-literal">True</span>
)`,wrap:!1}}),{c(){i=d("p"),i.innerHTML=o,s=r(),h(c.$$.fragment),$=r(),p=d("p"),p.innerHTML=k,J=r(),U=d("p"),U.innerHTML=T,z=r(),b=d("p"),b.innerHTML=Z,q=r(),W=d("div"),W.innerHTML=de,this.h()},l(j){i=u(j,"P",{"data-svelte-h":!0}),m(i)!=="svelte-1sg38ny"&&(i.innerHTML=o),s=a(j),g(c.$$.fragment,j),$=a(j),p=u(j,"P",{"data-svelte-h":!0}),m(p)!=="svelte-1sei0qw"&&(p.innerHTML=k),J=a(j),U=u(j,"P",{"data-svelte-h":!0}),m(U)!=="svelte-gt8y0x"&&(U.innerHTML=T),z=a(j),b=u(j,"P",{"data-svelte-h":!0}),m(b)!=="svelte-1vmgh26"&&(b.innerHTML=Z),q=a(j),W=u(j,"DIV",{class:!0,"data-svelte-h":!0}),m(W)!=="svelte-1lhrimn"&&(W.innerHTML=de),this.h()},h(){G(W,"class","flex justify-center")},m(j,C){l(j,i,C),l(j,s,C),y(c,j,C),l(j,$,C),l(j,p,C),l(j,J,C),l(j,U,C),l(j,z,C),l(j,b,C),l(j,q,C),l(j,W,C),B=!0},i(j){B||(M(c.$$.fragment,j),B=!0)},o(j){f(c.$$.fragment,j),B=!1},d(j){j&&(n(i),n(s),n($),n(p),n(J),n(U),n(z),n(b),n(q),n(W)),w(c,j)}}}function Qr(_){let i,o;return i=new v({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yTWFza2VkTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmNhbWVtYmVydC1iYXNlJTIyJTBBJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForMaskedLM, AutoTokenizer

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = TFAutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function Fr(_){let i,o;return i=new v({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvck1hc2tlZExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJjYW1lbWJlcnQtYmFzZSUyMiUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCk=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForMaskedLM, AutoTokenizer

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = AutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function Pr(_){let i,o='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model_tf.png" alt="Dummy model containing both the tokenizer and model files." width="80%"/>';return{c(){i=d("div"),i.innerHTML=o,this.h()},l(s){i=u(s,"DIV",{class:!0,"data-svelte-h":!0}),m(i)!=="svelte-5a3kk0"&&(i.innerHTML=o),this.h()},h(){G(i,"class","flex justify-center")},m(s,c){l(s,i,c)},d(s){s&&n(i)}}}function qr(_){let i,o='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model.png" alt="Dummy model containing both the tokenizer and model files." width="80%"/>';return{c(){i=d("div"),i.innerHTML=o,this.h()},l(s){i=u(s,"DIV",{class:!0,"data-svelte-h":!0}),m(i)!=="svelte-19u1vyv"&&(i.innerHTML=o),this.h()},h(){G(i,"class","flex justify-center")},m(s,c){l(s,i,c)},d(s){s&&n(i)}}}function Or(_){let i,o="✏️ <strong>Probier das selber aus!</strong> Lade das Modell und den Tokenizer vom Checkpoint <code>bert-base-cased</code> mit der Methode <code>push_to_hub()</code> hoch. Überprüfe, dass der Repository auf deiner Seite richtig erscheint, bevor du den löschst.";return{c(){i=d("p"),i.innerHTML=o},l(s){i=u(s,"P",{"data-svelte-h":!0}),m(i)!=="svelte-1h6srd0"&&(i.innerHTML=o)},m(s,c){l(s,i,c)},p:Gr,d(s){s&&n(i)}}}function Kr(_){let i,o;return i=new v({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yTWFza2VkTE0lMkMlMjBBdXRvVG9rZW5pemVyJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMmNhbWVtYmVydC1iYXNlJTIyJTBBJTBBbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvck1hc2tlZExNLmZyb21fcHJldHJhaW5lZChjaGVja3BvaW50KSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBJTBBJTIzJTIwTWFjaCUyMHdhcyUyMGR1JTIwbSVDMyVCNmNodGVzdCUyMG1pdCUyMGRlbSUyME1vZGVsbCUyQyUyMHouQi4lMjB0cmFpbmllcmVuJTJDJTIwZmluZS10dW5lbi4lMEElMEFtb2RlbC5zYXZlX3ByZXRyYWluZWQoJTIyJTNDcGF0aF90b19kdW1teV9mb2xkZXIlM0UlMjIpJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZCglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMik=",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForMaskedLM, AutoTokenizer

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = TFAutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

<span class="hljs-comment"># Mach was du möchtest mit dem Modell, z.B. trainieren, fine-tunen.</span>

model.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)
tokenizer.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function ea(_){let i,o;return i=new v({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvck1hc2tlZExNJTJDJTIwQXV0b1Rva2VuaXplciUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJjYW1lbWJlcnQtYmFzZSUyMiUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yTWFza2VkTE0uZnJvbV9wcmV0cmFpbmVkKGNoZWNrcG9pbnQpJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEElMEElMjMlMjBNYWNoJTIwd2FzJTIwZHUlMjBtJUMzJUI2Y2h0ZXN0JTIwbWl0JTIwZGVtJTIwTW9kZWxsJTJDJTIwei5CLiUyMHRyYWluaWVyZW4lMkMlMjBmaW5lLXR1bmVuLiUwQSUwQW1vZGVsLnNhdmVfcHJldHJhaW5lZCglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMiklMEF0b2tlbml6ZXIuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKQ==",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForMaskedLM, AutoTokenizer

checkpoint = <span class="hljs-string">&quot;camembert-base&quot;</span>

model = AutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

<span class="hljs-comment"># Mach was du möchtest mit dem Modell, z.B. trainieren, fine-tunen.</span>

model.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)
tokenizer.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function ta(_){let i,o,s,c="Wenn du dir die Dateigrößen anschaust (z.B. mit <code>ls -lh</code>), solltest du sehen, dass die Modell-Statedict Datei (<em>t5_model.h5</em>) der einzige Ausreißer ist mit über 400 MB.",$;return i=new v({props:{code:"Y29uZmlnLmpzb24lMjAlMjBSRUFETUUubWQlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUyMCUyMHNwZWNpYWxfdG9rZW5zX21hcC5qc29uJTIwJTIwdGZfbW9kZWwuaDUlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAlMjB0b2tlbml6ZXIuanNvbg==",highlighted:"config.json  README.md  sentencepiece.bpe.model  special_tokens_map.json  tf_model.h5  tokenizer_config.json  tokenizer.json",wrap:!1}}),{c(){h(i.$$.fragment),o=r(),s=d("p"),s.innerHTML=c},l(p){g(i.$$.fragment,p),o=a(p),s=u(p,"P",{"data-svelte-h":!0}),m(s)!=="svelte-17fflz8"&&(s.innerHTML=c)},m(p,k){y(i,p,k),l(p,o,k),l(p,s,k),$=!0},i(p){$||(M(i.$$.fragment,p),$=!0)},o(p){f(i.$$.fragment,p),$=!1},d(p){p&&(n(o),n(s)),w(i,p)}}}function na(_){let i,o,s,c="Wenn du dir die Dateigrößen anschaust (z.B. mit <code>ls -lh</code>), solltest du sehen, dass die Modell-Statedict Datei (<em>pytorch_model.bin</em>) der einzige Ausreißer ist mit über 400 MB.",$;return i=new v({props:{code:"Y29uZmlnLmpzb24lMjAlMjBweXRvcmNoX21vZGVsLmJpbiUyMCUyMFJFQURNRS5tZCUyMCUyMHNlbnRlbmNlcGllY2UuYnBlLm1vZGVsJTIwJTIwc3BlY2lhbF90b2tlbnNfbWFwLmpzb24lMjB0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAlMjB0b2tlbml6ZXIuanNvbg==",highlighted:"config.json  pytorch_model.bin  README.md  sentencepiece.bpe.model  special_tokens_map.json tokenizer_config.json  tokenizer.json",wrap:!1}}),{c(){h(i.$$.fragment),o=r(),s=d("p"),s.innerHTML=c},l(p){g(i.$$.fragment,p),o=a(p),s=u(p,"P",{"data-svelte-h":!0}),m(s)!=="svelte-15mt620"&&(s.innerHTML=c)},m(p,k){y(i,p,k),l(p,o,k),l(p,s,k),$=!0},i(p){$||(M(i.$$.fragment,p),$=!0)},o(p){f(i.$$.fragment,p),$=!1},d(p){p&&(n(o),n(s)),w(i,p)}}}function la(_){let i;return{c(){i=Nr("✏️  Wenn ein Repository mittels der Webinterface kreiert wird, wird die *.gitattributes* Datei automatisch gesetzt, um bestimmte Dateiendungen wie *.bin* und *.h5* als große Dateien zu betrachten, sodass git-lfs sie tracken kann, ohne dass du weiteres konfigurieren musst.")},l(o){i=Vr(o,"✏️  Wenn ein Repository mittels der Webinterface kreiert wird, wird die *.gitattributes* Datei automatisch gesetzt, um bestimmte Dateiendungen wie *.bin* und *.h5* als große Dateien zu betrachten, sodass git-lfs sie tracken kann, ohne dass du weiteres konfigurieren musst.")},m(o,s){l(o,i,s)},d(o){o&&n(i)}}}function ia(_){let i,o;return i=new v({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBWW91ciUyMGJyYW5jaCUyMGlzJTIwdXAlMjB0byUyMGRhdGUlMjB3aXRoJTIwJ29yaWdpbiUyRm1haW4nLiUwQSUwQUNoYW5nZXMlMjB0byUyMGJlJTIwY29tbWl0dGVkJTNBJTBBJTIwJTIwKHVzZSUyMCUyMmdpdCUyMHJlc3RvcmUlMjAtLXN0YWdlZCUyMCUzQ2ZpbGUlM0UuLi4lMjIlMjB0byUyMHVuc3RhZ2UpJTBBJTIwJTIwbW9kaWZpZWQlM0ElMjAlMjAlMjAuZ2l0YXR0cmlidXRlcyUwQSUyMCUyMCUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBjb25maWcuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0Zl9tb2RlbC5oNSUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXIuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",highlighted:`On branch main
Your branch is up to <span class="hljs-built_in">date</span> with <span class="hljs-string">&#x27;origin/main&#x27;</span>.

Changes to be committed:
  (use <span class="hljs-string">&quot;git restore --staged &lt;file&gt;...&quot;</span> to unstage)
  modified:   .gitattributes
  	new file:   config.json
	new file:   sentencepiece.bpe.model
	new file:   special_tokens_map.json
	new file:   tf_model.h5
	new file:   tokenizer.json
	new file:   tokenizer_config.json`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function sa(_){let i,o;return i=new v({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBWW91ciUyMGJyYW5jaCUyMGlzJTIwdXAlMjB0byUyMGRhdGUlMjB3aXRoJTIwJ29yaWdpbiUyRm1haW4nLiUwQSUwQUNoYW5nZXMlMjB0byUyMGJlJTIwY29tbWl0dGVkJTNBJTBBJTIwJTIwKHVzZSUyMCUyMmdpdCUyMHJlc3RvcmUlMjAtLXN0YWdlZCUyMCUzQ2ZpbGUlM0UuLi4lMjIlMjB0byUyMHVuc3RhZ2UpJTBBJTIwJTIwbW9kaWZpZWQlM0ElMjAlMjAlMjAuZ2l0YXR0cmlidXRlcyUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBjb25maWcuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBweXRvcmNoX21vZGVsLmJpbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXIuanNvbiUwQSUwOW5ldyUyMGZpbGUlM0ElMjAlMjAlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",highlighted:`On branch main
Your branch is up to <span class="hljs-built_in">date</span> with <span class="hljs-string">&#x27;origin/main&#x27;</span>.

Changes to be committed:
  (use <span class="hljs-string">&quot;git restore --staged &lt;file&gt;...&quot;</span> to unstage)
  modified:   .gitattributes
	new file:   config.json
	new file:   pytorch_model.bin
	new file:   sentencepiece.bpe.model
	new file:   special_tokens_map.json
	new file:   tokenizer.json
	new file:   tokenizer_config.json`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function ra(_){let i,o,s,c="Da sehen wir, dass alle Dateien <code>Git</code> als Handler haben. Nur die <em>t5_model.h5</em> hat <code>LFS</code>. Sehr gut!",$;return i=new v({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBT2JqZWN0cyUyMHRvJTIwYmUlMjBwdXNoZWQlMjB0byUyMG9yaWdpbiUyRm1haW4lM0ElMEElMEElMEFPYmplY3RzJTIwdG8lMjBiZSUyMGNvbW1pdHRlZCUzQSUwQSUwQSUwOWNvbmZpZy5qc29uJTIwKEdpdCUzQSUyMGJjMjBmZjIpJTBBJTA5c2VudGVuY2VwaWVjZS5icGUubW9kZWwlMjAoTEZTJTNBJTIwOTg4YmM1YSklMEElMDlzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUyMChHaXQlM0ElMjBjYjIzOTMxKSUwQSUwOXRmX21vZGVsLmg1JTIwKExGUyUzQSUyMDg2ZmNlMjkpJTBBJTA5dG9rZW5pemVyLmpzb24lMjAoR2l0JTNBJTIwODUxZmYzZSklMEElMDl0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAoR2l0JTNBJTIwZjBmNzc4MyklMEElMEFPYmplY3RzJTIwbm90JTIwc3RhZ2VkJTIwZm9yJTIwY29tbWl0JTNBJTBBJTBB",highlighted:`On branch main
Objects to be pushed to origin/main:


Objects to be committed:

	config.json (Git: bc20ff2)
	sentencepiece.bpe.model (LFS: 988bc5a)
	special_tokens_map.json (Git: cb23931)
	tf_model.h5 (LFS: 86fce29)
	tokenizer.json (Git: 851ff3e)
	tokenizer_config.json (Git: f0f7783)

Objects not staged <span class="hljs-keyword">for</span> commit:

`,wrap:!1}}),{c(){h(i.$$.fragment),o=r(),s=d("p"),s.innerHTML=c},l(p){g(i.$$.fragment,p),o=a(p),s=u(p,"P",{"data-svelte-h":!0}),m(s)!=="svelte-1vyj23a"&&(s.innerHTML=c)},m(p,k){y(i,p,k),l(p,o,k),l(p,s,k),$=!0},i(p){$||(M(i.$$.fragment,p),$=!0)},o(p){f(i.$$.fragment,p),$=!1},d(p){p&&(n(o),n(s)),w(i,p)}}}function aa(_){let i,o,s,c="Da sehen wir, dass alle Dateien <code>Git</code> als Handler haben. Nur die <em>pytorch_model.bin</em> und <em>sentencepiece.bpe.model</em> Dateien haben <code>LFS</code>. Toll!",$;return i=new v({props:{code:"T24lMjBicmFuY2glMjBtYWluJTBBT2JqZWN0cyUyMHRvJTIwYmUlMjBwdXNoZWQlMjB0byUyMG9yaWdpbiUyRm1haW4lM0ElMEElMEElMEFPYmplY3RzJTIwdG8lMjBiZSUyMGNvbW1pdHRlZCUzQSUwQSUwQSUwOWNvbmZpZy5qc29uJTIwKEdpdCUzQSUyMGJjMjBmZjIpJTBBJTA5cHl0b3JjaF9tb2RlbC5iaW4lMjAoTEZTJTNBJTIwMzU2ODZjMiklMEElMDlzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUyMChMRlMlM0ElMjA5ODhiYzVhKSUwQSUwOXNwZWNpYWxfdG9rZW5zX21hcC5qc29uJTIwKEdpdCUzQSUyMGNiMjM5MzEpJTBBJTA5dG9rZW5pemVyLmpzb24lMjAoR2l0JTNBJTIwODUxZmYzZSklMEElMDl0b2tlbml6ZXJfY29uZmlnLmpzb24lMjAoR2l0JTNBJTIwZjBmNzc4MyklMEElMEFPYmplY3RzJTIwbm90JTIwc3RhZ2VkJTIwZm9yJTIwY29tbWl0JTNBJTBBJTBB",highlighted:`On branch main
Objects to be pushed to origin/main:


Objects to be committed:

	config.json (Git: bc20ff2)
	pytorch_model.bin (LFS: 35686c2)
	sentencepiece.bpe.model (LFS: 988bc5a)
	special_tokens_map.json (Git: cb23931)
	tokenizer.json (Git: 851ff3e)
	tokenizer_config.json (Git: f0f7783)

Objects not staged <span class="hljs-keyword">for</span> commit:

`,wrap:!1}}),{c(){h(i.$$.fragment),o=r(),s=d("p"),s.innerHTML=c},l(p){g(i.$$.fragment,p),o=a(p),s=u(p,"P",{"data-svelte-h":!0}),m(s)!=="svelte-g8fu7t"&&(s.innerHTML=c)},m(p,k){y(i,p,k),l(p,o,k),l(p,s,k),$=!0},i(p){$||(M(i.$$.fragment,p),$=!0)},o(p){f(i.$$.fragment,p),$=!1},d(p){p&&(n(o),n(s)),w(i,p)}}}function oa(_){let i,o;return i=new v({props:{code:"JTVCbWFpbiUyMGIwOGFhYjElNUQlMjBGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUwQSUyMDYlMjBmaWxlcyUyMGNoYW5nZWQlMkMlMjAzNiUyMGluc2VydGlvbnMoJTJCKSUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBjb25maWcuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0Zl9tb2RlbC5oNSUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXIuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",highlighted:`[main b08aab1] First model version
 6 files changed, 36 insertions(+)
 create mode 100644 config.json
 create mode 100644 sentencepiece.bpe.model
 create mode 100644 special_tokens_map.json
 create mode 100644 tf_model.h5
 create mode 100644 tokenizer.json
 create mode 100644 tokenizer_config.json`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function da(_){let i,o;return i=new v({props:{code:"JTVCbWFpbiUyMGIwOGFhYjElNUQlMjBGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUwQSUyMDclMjBmaWxlcyUyMGNoYW5nZWQlMkMlMjAyOTAyNyUyMGluc2VydGlvbnMoJTJCKSUwQSUyMCUyMDYlMjBmaWxlcyUyMGNoYW5nZWQlMkMlMjAzNiUyMGluc2VydGlvbnMoJTJCKSUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBjb25maWcuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBweXRvcmNoX21vZGVsLmJpbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzZW50ZW5jZXBpZWNlLmJwZS5tb2RlbCUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjBzcGVjaWFsX3Rva2Vuc19tYXAuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXIuanNvbiUwQSUyMGNyZWF0ZSUyMG1vZGUlMjAxMDA2NDQlMjB0b2tlbml6ZXJfY29uZmlnLmpzb24=",highlighted:`[main b08aab1] First model version
 7 files changed, 29027 insertions(+)
  6 files changed, 36 insertions(+)
 create mode 100644 config.json
 create mode 100644 pytorch_model.bin
 create mode 100644 sentencepiece.bpe.model
 create mode 100644 special_tokens_map.json
 create mode 100644 tokenizer.json
 create mode 100644 tokenizer_config.json`,wrap:!1}}),{c(){h(i.$$.fragment)},l(s){g(i.$$.fragment,s)},m(s,c){y(i,s,c),o=!0},i(s){o||(M(i.$$.fragment,s),o=!0)},o(s){f(i.$$.fragment,s),o=!1},d(s){w(i,s)}}}function ua(_){let i,o="Wenn alles durch ist, können wir uns den Repository anschauen und die eben hinzugefügten Dateien finden:",s,c,$='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model_tf.png" alt="The &#39;Files and versions&#39; tab now contains all the recently uploaded files." width="80%"/>',p,k,J="Mit der UI kannst du die Modell-Dateien und die Commits explorieren, um die Differenz bei jedem Commit zu sehen:",U,T,z='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffstf.gif" alt="The diff introduced by the recent commit." width="80%"/>';return{c(){i=d("p"),i.textContent=o,s=r(),c=d("div"),c.innerHTML=$,p=r(),k=d("p"),k.textContent=J,U=r(),T=d("div"),T.innerHTML=z,this.h()},l(b){i=u(b,"P",{"data-svelte-h":!0}),m(i)!=="svelte-10dv15r"&&(i.textContent=o),s=a(b),c=u(b,"DIV",{class:!0,"data-svelte-h":!0}),m(c)!=="svelte-tz4fi2"&&(c.innerHTML=$),p=a(b),k=u(b,"P",{"data-svelte-h":!0}),m(k)!=="svelte-1kbtwe6"&&(k.textContent=J),U=a(b),T=u(b,"DIV",{class:!0,"data-svelte-h":!0}),m(T)!=="svelte-2jd8bj"&&(T.innerHTML=z),this.h()},h(){G(c,"class","flex justify-center"),G(T,"class","flex justify-center")},m(b,Z){l(b,i,Z),l(b,s,Z),l(b,c,Z),l(b,p,Z),l(b,k,Z),l(b,U,Z),l(b,T,Z)},d(b){b&&(n(i),n(s),n(c),n(p),n(k),n(U),n(T))}}}function ma(_){let i,o="Wenn alles durch ist, können wir uns den Repository anschauen und die eben hinzugefügten Dateien finden:",s,c,$='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model.png" alt="The &#39;Files and versions&#39; tab now contains all the recently uploaded files." width="80%"/>',p,k,J="Mit der UI kannst du die Modell-Dateien und die Commits explorieren, um die Differenz bei jedem Commit zu sehen:",U,T,z='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffs.gif" alt="The diff introduced by the recent commit." width="80%"/>';return{c(){i=d("p"),i.textContent=o,s=r(),c=d("div"),c.innerHTML=$,p=r(),k=d("p"),k.textContent=J,U=r(),T=d("div"),T.innerHTML=z,this.h()},l(b){i=u(b,"P",{"data-svelte-h":!0}),m(i)!=="svelte-10dv15r"&&(i.textContent=o),s=a(b),c=u(b,"DIV",{class:!0,"data-svelte-h":!0}),m(c)!=="svelte-1v39mjb"&&(c.innerHTML=$),p=a(b),k=u(b,"P",{"data-svelte-h":!0}),m(k)!=="svelte-1kbtwe6"&&(k.textContent=J),U=a(b),T=u(b,"DIV",{class:!0,"data-svelte-h":!0}),m(T)!=="svelte-1g561m5"&&(T.innerHTML=z),this.h()},h(){G(c,"class","flex justify-center"),G(T,"class","flex justify-center")},m(b,Z){l(b,i,Z),l(b,s,Z),l(b,c,Z),l(b,p,Z),l(b,k,Z),l(b,U,Z),l(b,T,Z)},d(b){b&&(n(i),n(s),n(c),n(p),n(k),n(U),n(T))}}}function pa(_){let i,o,s,c,$,p,k,J,U,T,z,b,Z=`Demnächst schauen wir uns an, wie man am einfachsten vortrainierte Modelle auf dem 🤗 Hub teilen kann.
Es gibt schon Tools und Hilfsmittel, die das Teilen und Updaten von Modellen auf dem Hub vereinfachen. Die werden wir gleich unten explorieren.`,q,W,de,B,j="Wir empfehlen allen Nutzer:innen, die Modelle trainieren, dass sie der Communinity beitragen, indem sie Modelle teilen. Selbst die Modelle, die auf sehr spezifische Datensätze trainiert wurden, werden anderen Nutzer:innen helfen, weil man Zeit und Rechenressourcen spart und Zugang zu nützlichen Trainingsartifakten bekommt. Also eventuell kannst du auch von der Arbeit anderer Nutzer:innen auch profitieren!",C,ue,Di="Es gibt drei Wege, um Repositories zu neuen Modellen zu kreieren:",jn,me,Ii="<li>Mittels der <code>push_to_hub</code> API</li> <li>Mittels der <code>huggingface_hub</code> Python Bibliothek</li> <li>Mittels der Web-Oberfläche</li>",Zn,pe,Xi="Nachdem du einen Repository erstellst hast, kannst du die Dateien über git und git-lfs hochladen. Demnächst zeigen wir dir die genauen Schritte, um Modell-Repositories zu erstellenund Dateien hochzuladen.",zn,ce,Jn,x,R,bn,fe,Si='Die einfachste Variante, um Dateien auf den Hub hochzuladen, ist mittels der <code>push_to_hub</code> API. Bevor du weitermachst, must du einen Autentifizierungstoken generieren, damit die <code>huggingface_hub</code> API weißt, wer du bist und auf welche Namespaces du zugreifen darfst. Stell sicher, dass du in einer Umgebung mit <code>transformers</code> installiert bist (siehe <a href="/course/chapter0">Setup</a>). Wenn du auf einem Notebook bist, kannst du diese Funktion benutzen, um dich einzuloggen:',Wn,Me,Cn,be,Yi="Im Terminal kannst folgendes ausführen:",Gn,he,Bn,ge,Ei='In beiden Fällen solltest du nach deinem Username und Passwort gefragt werden. Das sind die selben, mit denen du dich auf dem Hub einloggst. Solltest du noch kein Hub-Profil haben, musst du erstmal eins <a href="https://huggingface.co/join" rel="nofollow">hier</a> erstellen.',xn,ye,Qi="Großartig! Nun hast du deinen Autentifizierungstoken in deinem Cache-Ordner gespeichert. Lass uns ein paar Repositories erstellen!",Rn,H,N,hn,we,Fi=`Auf einer tieferen Ebene kann man auf Modelle, Tokenizers und Konfigurationen auf dem Model-Hub direkt zugreifen, indem man die Methode <code>push_to_hub()</code> benutzt.
Diese Methode kümmert sich sowohl um das Erstellen vom Repository als auch das Pushen (Hochladen) von Modell- und Tokenizer-Dateien auf den Repository. Also da ist kein manueller Schritt notwendig (im Gegensatz zu den APIs, die wir demnächst sehen werden).`,Hn,_e,Pi="Um uns eine Vorstellung zu schaffen, wie es funktioniert, lass uns zuerst ein Modell und einen Tokenizer initialisieren:",Nn,V,A,gn,ke,qi="Dir steht frei, was du mit diesen machst, z.B. Tokens zum Tokenizer hinzuzufügen, das Modell zu trainineren oder zu finetunen. Wenn du mit dem Modell, Gewichten und Tokenizer zufrieden bist, kannst du die Methode <code>push_to_hub()</code> vom <code>model</code> Objekt benutzten:",Vn,$e,An,ve,Oi="Das wird den neuen Repository <code>dummy-model</code> in deinem Profil erstellen und den mit deinen Model-Dateien befüllen. Mach das gliche mit dem Tokenizer, sodass jetzt alle Dateien in diesem Repository verfügbar sind.",Ln,Ue,Dn,Te,Ki="Wenn du Teil einer Organisation bist, kannst du einfach das Argument <code>organization</code> mit eingeben, um die Artifakte auf den Namespace dieser Organisation hochzuladen.",In,je,Xn,Ze,es="Wenn du einen bestimmten Hugging Face Token benutzten möchtest, kannst du ihn auch in der Methode <code>push_to_hub()</code> spezifizieren:",Sn,ze,Yn,Je,ts='Nun geh auf den Model Hub, um dein hochgeladenes Modell zu finden: <em><a href="https://huggingface.co/user-or-organization/dummy-model" rel="nofollow">https://huggingface.co/user-or-organization/dummy-model</a></em>.',En,We,ns="Click auf den Tab “Files and versions” und da solltest du die Dateien finden, die auf diesem Screenshot zu sehen sind:",Qn,yn,ne,Fn,Ce,ls='Wie du schon gesehen hast, akzeptiert die Methode <code>push_to_hub()</code> mehrere Argumente. Dies erlaub das Hochladen auf den Namespace eines spezifischen Repositorys oder einer Organisation, sowie die Möglichkeit, einen anderen API Token zu benutzten. Wir empfehlen dir, die Dokumentation der Methode direkt auf <a href="https://huggingface.co/transformers/model_sharing.html" rel="nofollow">🤗 Transformers documentation</a> zu lesen, um dir eine Vorstellung zu schaffen, was alles damit möglich ist.',Pn,Ge,is='Die <code>push_to_hub()</code> Methode funktioniert im Hintergrund mit der Python Bibliothek <a href="https://github.com/huggingface/huggingface_hub" rel="nofollow"><code>huggingface_hub</code></a>, die eine direkte API zum Hugging Face Hub anbietet. Sie ist auch drin in der 🤗 Transformers Bibliothek und mehreren anderen Machine Learning Bibliotheken, z.B. <a href="https://github.com/allenai/allennlp" rel="nofollow"><code>allenlp</code></a>. Obwohl wir in diesem Kapitel den Fokus auf die Integration mit 🤗 Transformers legen, kannst du es in deinen eigenen Code bzw. eigene Bibliothek relativ einfach integrieren. Spring auf den letzten Part, um zu erfahren, wie man Dateien auf einen frisch erstellten Repository hochladen kann!',qn,Be,On,xe,ss="Die <code>huggingface_hub</code> Python Bibliothek ist ein Python Packet, das einige Werkzeuge für das Nutzen von Modell- und Datasethub anbietet.  Es bietet simple Methoden und Klassen für gängige Aufgaben, z.B. um Information zu Repositories auf dem Hub zu bekommen oder um sie zu Verwalten. Es bietet auch simple auf git basierende APIs, um die Inhalte von solchen Repositories zu verwalten sowie um den Hub in deine Projekte und Bibliotheken zu integrieren.",Kn,Re,rs="Ähnlich wie bei der Verwendung der<code>push_to_hub</code> API ist es bei diesen Aktionen erforderlich, dass dein API Token schon in deinem Cache gespeichert ist. Dafür musst du den <code>login</code> Befehl aus der CLI ausführen so wie in dem vorherigen Teil erklärt wurde (nochmal: Vergiss nicht, das <code>!</code> Zeichen vor die Befehle zu setzen, wenn du im Google Colab arbeitest).",el,He,tl,Ne,as="Die <code>huggingface_hub</code> Bibliothek bietet mehrere nützliche Methoden und Klassen an. Erstens gibt es einige Methoden, um das Erstellen, Löschen, usw. von Repositories durchzuführen:",nl,Ve,ll,Ae,os="Außerdem gibt es die sehr mächtige <code>Repository</code> Klasse, um einen lokalen Repository zu managen. Demnächst werden wir uns mit diesen Methoden und dieser Klasse beschäftigen, um zu verstehen, wie man die am besten nutzt.",il,Le,ds="Mit der <code>create_repo</code> Methode kann ein neuer Repository auf dem Hub erstellt werden:",sl,De,rl,Ie,us="Das erstellt den Repository <code>dummy-model</code> unter deinem Namespace. Wenn du möchtest, kannst du auch die Organisation spezifizieren, zu der der Repository gehören sollte, indem du das <code>organization</code> Argument setzt:",al,Xe,ol,Se,ms=`Das erstellt den Repository <code>dummy-model</code> unter dem <code>huggingface</code> Namespace – angenommen du gehörst zu dieser Organisation.
Andere eventuell nützliche Argumente sind:`,dl,Ye,ps="<li><code>private</code>: um zu spezifizieren, ob der Repository für andere sichtbar sein sollte oder nicht.</li> <li><code>token</code>: um den Token, der im Zwischenspeicher (Cache) liegt, mit einem neuen Token zu überscheiben.</li> <li><code>repo_type</code>: zum Auswählen, ob du einen <code>dataset</code> oder einen <code>space</code> anstatt von einem Modell kreieren möchtest. Erlaubte Werte sind <code>&quot;dataset&quot;</code> und <code>&quot;space&quot;</code>.</li>",ul,Ee,cs="Nachdem der Repository erstellt wurde, können wir Dateien hinzufügen! Spring zum nächsten Abschnitt, um drei Varianten dazu zu lernen, wie man das machen kann.",ml,Qe,pl,Fe,fs="Die Webinterface bietet Tools an, um Repositories direkt auf dem Hub zu managen. Damit kannst du ganz einfach Repositories erstellen, Dateien hinzufügen (sogar große Dateien), Modelle explorieren, Unterschiede (“diffs”) visualisieren und viel mehr.",cl,Pe,Ms='Um einen Repository zu erstellen, geh auf <a href="https://huggingface.co/new" rel="nofollow">huggingface.co/new</a>:',fl,le,bs='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/new_model.png" alt="Beispiel vom Modell, mit dem man einen Repository erstellen kann." width="80%"/>',Ml,qe,hs="Erstens muss man den Besitzer vom Repository eingeben: Das kannst entweder du selbst oder jede andere Person von der Organisation sein, zu der du gehörst. Wenn du eine Organisation auswählst, wird das Modell auf der Seite der Organisation präsentiert und jedes Mitglied der Organisation wird zu diesem Repository beitragen können.",bl,Oe,gs="Als nächstes gib den Namen deines Modells ein. So wird der Repository auch heißen. Zuletzt kannst du spezifizieren, ob das Modell öffentlich oder privat sein soll. Private Modelle sind von der Öffentlichkeit unsichtbar.",hl,Ke,ys="Nach der Erstellung des Repositorys solltest du so eine Seite sehen können:",gl,ie,ws='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/empty_model.png" alt="Leeres Modell nach der Erstellung des Repositorys." width="80%"/>',yl,et,_s="Hier wird dein Modell gehostet. Um mit dem Auffüllen zu beginnen, kannst du direkt über die Weboberfläche eine README-Datei hinzufügen.",wl,se,ks='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/dummy_model.png" alt="The README file showing the Markdown capabilities." width="80%"/>',_l,tt,$s=`Die README-Datei ist im Markdown Format — du kannst dich damit gerne austoben!
Der dritte Teil dieses Kapitels zielt darauf hin, eine “model card” (Steckbrief) zu bauen. Steckbriefe haben eine entscheidende Relevanz, um dein Modell wertvoll zu machen, denn du kannst dort anderen erzählen, was das Modell kann.`,kl,nt,vs="Wenn du dir den “Files and versions” Tab anschaust, wirst du sehen, dass noch nicht viele Dateien darauf sind – nämlich nur die von dir eben kreierte <em>README.md</em> und die <em>.gitattributes</em> (wo große Dateien geloggt werden).",$l,re,Us='<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/files.png" alt="The &#39;Files and versions&#39; tab only shows the .gitattributes and README.md files." width="80%"/>',vl,lt,Ts="Gleich werden wir sehen, wie wir neue Dateien hinzufügen können.",Ul,it,Tl,st,js='Das System zum Managen der Dateien auf Hugging Face Hub basiert auf git für normale Dateien und auf git-lfs (<a href="https://git-lfs.github.com/" rel="nofollow">Git Large File Storage</a>) für größere Dateien.',jl,rt,Zs="Im nächsten Teil schauen wir uns drei Möglichkeitein an, um Dateien mittels <code>huggingface_hub</code> und git-Befehle auf den Hub hochzuladen.",Zl,at,zl,ot,zs=`Um <code>upload_file</code> zu verwenden, muss man nicht unbedingt git und git-lfs installiert haben. Die Funktion lädt Dateien auf den 🤗 Hub mittels HTTP POST Anfragen. Eine Einschränkunf dieser Variante ist, dass man nur mit Dateien unter 5GB groß arbeiten kann.
Wenn deine Dateien größer als 5GB sind, nutz eine von den folgenden zwei Methoden.`,Jl,dt,Js="Die API kann folgendermaßen benutzt werden:",Wl,ut,Cl,mt,Ws=`Das wird die <code>config.json</code> Datei in <code>&lt;path_to_file&gt;</code> auf das Root-Verzeichnis vom Repository als <code>config.json</code> vom <code>dummy-model</code> Repository.
Andere nützliche Argumente :`,Gl,pt,Cs="<li><code>token</code>, um den Token zu überscheiben, der in deinem Cache gespeichert ist</li> <li><code>repo_type</code>, wenn du anstatt von einem Modell Dateien auf einen <code>dataset</code> oder <code>space</code> hochladen möchtest. Valide Werte sind <code>&quot;dataset&quot;</code> und <code>&quot;space&quot;</code>.</li>",Bl,ct,xl,ft,Gs="Die <code>Repository</code> Klasse verwaltet einen lokalen Repository so wie git. Sie abstrahiert aber die meisten schwierigen Punkte, auf die man stoßen würde, wenn man eine ähnliche Funktionalität mit git erreichen möchte.",Rl,Mt,Bs='Diese Klasse braucht git und git-lfs im System schon installiert. Also stell sicher, dass du git-lfs installiert hast (siehe <a href="https://git-lfs.github.com/" rel="nofollow">hier</a> für Installationsanweisungen) und richte alles ein, bevor du loslegst.',Hl,bt,xs="Um mit dem Repository rumspielen zu starten, können wir den in einem lokalen Ordner initialisieren, in dem wir den Remote-Repository klonen:",Nl,ht,Vl,gt,Rs="Das hat den Ordner <code>&lt;path_to_dummy_folder&gt;</code> in unserem Arbeitsverzeichnis erstellt. Dieser Ordner enthält bisher nur die <code>.gitattributes</code> Datel, da diese die einzige Datei ist, die wir mit <code>create_repo</code> kreiert haben.",Al,yt,Hs="Ab jetzt können mehrere gängige Methoden benutzten:",Ll,wt,Dl,_t,Ns='Und andere Optionen auch! Wir empfehlen, dass du dir die Dokumentation zu <code>Repository</code>, die dir <a href="https://github.com/huggingface/huggingface_hub/tree/main/src/huggingface_hub#advanced-programmatic-repository-management" rel="nofollow">hier</a> zur Verfügung steht, anschaust, um dir eine Übersicht aller verfügbaren Methoden zu verschaffen.',Il,kt,Vs="Bisher haben wir ein Modell und einen Tokenizer, die wir gerne auf den Hub pushen würden. Wir haben auch den Repository geklont, sodass wir die Dateien in dem Repository speichern können.",Xl,$t,As="Zuerst stellen wir sicher, dass unser lokaler Repository einen aktuellen Stand hat, in dem wir die letzten Änderungen pullen:",Sl,vt,Yl,Ut,Ls="Wenn das durch ist, speichern wir die Dateien vom Modell und Tokenizer:",El,Tt,Ql,jt,Ds="Der Pfad <code>&lt;path_to_dummy_folder&gt;</code> beinhaltet jetzt alle Modell- und Tokenizerdateien. Wir folgen dem gängigen Git-Workflow, indem wir die Dateien in die “staging area” bringen, wir committen und pushen sie auf den hub:",Fl,Zt,Pl,zt,Is="Glückwunsch! Du hast gerade deine ersten Dateien auf den Hub hochgeladen.",ql,Jt,Ol,Wt,Xs="Das ist der einfachste Weg zum Hochladen von Dateien: Wir werden es direkt mit git und git-lfs tun. Der Größtenteil der Schwierigkeit wird durch die früheren Ansätze abstrahiert, aber es gibt ein paar Vorbehalte bei der folgenden Methode, deswegen werden wir einem komplexeren Anwendungsfall folgen.",Kl,Ct,Ss='Um diese Klasse zu benutzten, mussen wir git und git-lfs installiert haben. Also stell sicher, dass du <a href="https://git-lfs.github.com/" rel="nofollow">git-lfs</a> installiert und aufgesetzt hast, bevor du beginst.',ei,Gt,Ys="Zuerst initialisiere git-lfs:",ti,Bt,ni,xt,li,Rt,Es="Danach musst du den Modell-Repository klonen:",ii,Ht,si,Nt,Qs="Mein Username ist <code>lysandre</code> und ich habe den Modellnamen <code>dummy</code> benutzt. Also bei bei sieht der Befehl so aus:",ri,Vt,ai,At,Fs="Ich habe jetzt einen Ordner namens <em>dummy</em> in meinem Arbeitsverzeichnis. Ich kann jetzt <code>cd</code> in den Ordner und mir den Inhalt anschauen:",oi,Lt,di,Dt,ui,It,Ps="Wenn du eben einen Repository mit der Hugging Face Hubs Methode <code>create_repo</code> erstellt hast, dann sollte dieser Ordner nur eine versteckte <code>.gitattributes</code> Datei enthalten. Wenn du es nach den Anweisungen in dem vorherigen Abschnitt mittels der Webinterface gemacht hast, dann sollte der Ordner eine einzige README.md Datei neben der <code>.gitattributes</code> enthalten – so wie hier angezeigt wird.",mi,Xt,qs="Das Hinzufügen einer Datei mit normaler Größe, z.B. Konfiguration- oder Vokabulardatei, wird so gemach wie in einem git-basierten System. Aber größere Dateien müssen mit git-lfs registriert werden, um sie zu <em>huggingface.co</em> zu pushen.",pi,St,Os="Lass uns kurz zurück zu Python, um ein Modell und einen Tokenizer zu generieren, die wir zu unserem dummy repository committen möchten:",ci,L,D,wn,Yt,Ks="Jetzt haben wir die Modell- und Tokenizer-Artifakte gespeichert und können wir uns nochmal den <em>dummy</em> Ordner anschauen:",fi,Et,Mi,I,X,_n,ae,bi,Qt,er="Nun können wir weitermachen und so arbeiten wie wir es mit normalen Git Repositories machen. Wir können die Dateien stagen mit dem Git-Befehl <code>git add</code>:",hi,Ft,gi,Pt,tr="Jetzt schauen wir, welche Dateien gestaged wurden:",yi,qt,wi,S,Y,kn,Ot,nr="Ähnlicherweise können wir sicherstellen, dass git-lfs die richtigen Dateien trackt mit dem <code>status</code> Befehl:",_i,Kt,ki,E,Q,$n,en,lr="Lass uns mit den letzten Schritten weitermachen, indem wir die Änderungen commiten und zum <em>huggingface.co</em> Remote-Repository pushen:",$i,tn,vi,F,P,vn,nn,ir="Das Pushen kann ein bisschen dauern, je nach dem wie schnell deine Internetverbindung ist und wie groß deine Dateien sind:",Ui,ln,Ti,sn,ji,Un,rn,Zi,Tn,zi;$=new Ar({props:{fw:_[0]}}),k=new oe({props:{title:"Vortrainierte Modelle teilen",local:"vortrainierte-modelle-teilen",headingTag:"h1"}});const sr=[Ir,Dr],an=[];function rr(e,t){return e[0]==="pt"?0:1}U=rr(_),T=an[U]=sr[U](_),W=new Li({props:{id:"9yY3RB_GSPM"}}),ce=new oe({props:{title:"Hochladen mit der push_to_hub API",local:"hochladen-mit-der-pushtohub-api",headingTag:"h2"}});const ar=[Sr,Xr],on=[];function or(e,t){return e[0]==="pt"?0:1}x=or(_),R=on[x]=ar[x](_),Me=new v({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

notebook_login()`,wrap:!1}}),he=new v({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}});const dr=[Er,Yr],dn=[];function ur(e,t){return e[0]==="pt"?0:1}H=ur(_),N=dn[H]=dr[H](_);const mr=[Fr,Qr],un=[];function pr(e,t){return e[0]==="pt"?0:1}V=pr(_),A=un[V]=mr[V](_),$e=new v({props:{code:"bW9kZWwucHVzaF90b19odWIoJTIyZHVtbXktbW9kZWwlMjIp",highlighted:'model.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)',wrap:!1}}),Ue=new v({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyKQ==",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)',wrap:!1}}),je=new v({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyJTJDJTIwb3JnYW5pemF0aW9uJTNEJTIyaHVnZ2luZ2ZhY2UlMjIp",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>)',wrap:!1}}),ze=new v({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmR1bW15LW1vZGVsJTIyJTJDJTIwb3JnYW5pemF0aW9uJTNEJTIyaHVnZ2luZ2ZhY2UlMjIlMkMlMjB1c2VfYXV0aF90b2tlbiUzRCUyMiUzQ1RPS0VOJTNFJTIyKQ==",highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>, use_auth_token=<span class="hljs-string">&quot;&lt;TOKEN&gt;&quot;</span>)',wrap:!1}});function cr(e,t){return e[0]==="pt"?qr:Pr}let Ji=cr(_),O=Ji(_);ne=new zr({props:{$$slots:{default:[Or]},$$scope:{ctx:_}}}),Be=new oe({props:{title:"Verwendung der huggingface_hub Python Bibliothek",local:"verwendung-der-huggingfacehub-python-bibliothek",headingTag:"h2"}}),He=new v({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),Ve=new v({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMCglMEElMjAlMjAlMjAlMjAlMjMlMjBVc2VyLU1hbmFnZW1lbnQlMEElMjAlMjAlMjAlMjBsb2dpbiUyQyUwQSUyMCUyMCUyMCUyMGxvZ291dCUyQyUwQSUyMCUyMCUyMCUyMHdob2FtaSUyQyUwQSUwQSUyMCUyMCUyMCUyMCUyMyUyMFJlcG9zaXRvcnklMjBlcnN0ZWxsZW4lMjB1bmQlMjBtYW5hZ2VuJTBBJTIwJTIwJTIwJTIwY3JlYXRlX3JlcG8lMkMlMEElMjAlMjAlMjAlMjBkZWxldGVfcmVwbyUyQyUwQSUyMCUyMCUyMCUyMHVwZGF0ZV9yZXBvX3Zpc2liaWxpdHklMkMlMEElMEElMjAlMjAlMjAlMjAlMjMlMjBNZXRob2RlbiUyQyUyMHVtJTIwaW5oYWx0bGljaGUlMjBJbmZvcm1hdGlvbiUyMGFienVmcmFnZW4lMkZhYnp1JUMzJUE0bmRlcm4lMEElMjAlMjAlMjAlMjBsaXN0X21vZGVscyUyQyUwQSUyMCUyMCUyMCUyMGxpc3RfZGF0YXNldHMlMkMlMEElMjAlMjAlMjAlMjBsaXN0X21ldHJpY3MlMkMlMEElMjAlMjAlMjAlMjBsaXN0X3JlcG9fZmlsZXMlMkMlMEElMjAlMjAlMjAlMjB1cGxvYWRfZmlsZSUyQyUwQSUyMCUyMCUyMCUyMGRlbGV0ZV9maWxlJTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> (
    <span class="hljs-comment"># User-Management</span>
    login,
    logout,
    whoami,

    <span class="hljs-comment"># Repository erstellen und managen</span>
    create_repo,
    delete_repo,
    update_repo_visibility,

    <span class="hljs-comment"># Methoden, um inhaltliche Information abzufragen/abzuändern</span>
    list_models,
    list_datasets,
    list_metrics,
    list_repo_files,
    upload_file,
    delete_file,
)`,wrap:!1}}),De=new v({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGNyZWF0ZV9yZXBvJTBBJTBBY3JlYXRlX3JlcG8oJTIyZHVtbXktbW9kZWwlMjIp",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> create_repo

create_repo(<span class="hljs-string">&quot;dummy-model&quot;</span>)`,wrap:!1}}),Xe=new v({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGNyZWF0ZV9yZXBvJTBBJTBBY3JlYXRlX3JlcG8oJTIyZHVtbXktbW9kZWwlMjIlMkMlMjBvcmdhbml6YXRpb24lM0QlMjJodWdnaW5nZmFjZSUyMik=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> create_repo

create_repo(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>)`,wrap:!1}}),Qe=new oe({props:{title:"Mit der Webinterface",local:"mit-der-webinterface",headingTag:"h2"}}),it=new oe({props:{title:"Hochladen von Modell-Dateien",local:"hochladen-von-modell-dateien",headingTag:"h2"}}),at=new oe({props:{title:"Die upload_file Variante",local:"die-uploadfile-variante",headingTag:"h3"}}),ut=new v({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMHVwbG9hZF9maWxlJTBBJTBBdXBsb2FkX2ZpbGUoJTBBJTIwJTIwJTIwJTIwJTIyJTNDcGF0aF90b19maWxlJTNFJTJGY29uZmlnLmpzb24lMjIlMkMlMEElMjAlMjAlMjAlMjBwYXRoX2luX3JlcG8lM0QlMjJjb25maWcuanNvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMHJlcG9faWQlM0QlMjIlM0NuYW1lc3BhY2UlM0UlMkZkdW1teS1tb2RlbCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> upload_file

upload_file(
    <span class="hljs-string">&quot;&lt;path_to_file&gt;/config.json&quot;</span>,
    path_in_repo=<span class="hljs-string">&quot;config.json&quot;</span>,
    repo_id=<span class="hljs-string">&quot;&lt;namespace&gt;/dummy-model&quot;</span>,
)`,wrap:!1}}),ct=new oe({props:{title:"Die Repository Klasse",local:"die-repository-klasse",headingTag:"h3"}}),ht=new v({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMFJlcG9zaXRvcnklMEElMEFyZXBvJTIwJTNEJTIwUmVwb3NpdG9yeSglMjIlM0NwYXRoX3RvX2R1bW15X2ZvbGRlciUzRSUyMiUyQyUyMGNsb25lX2Zyb20lM0QlMjIlM0NuYW1lc3BhY2UlM0UlMkZkdW1teS1tb2RlbCUyMik=",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> Repository

repo = Repository(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>, clone_from=<span class="hljs-string">&quot;&lt;namespace&gt;/dummy-model&quot;</span>)`,wrap:!1}}),wt=new v({props:{code:"cmVwby5naXRfcHVsbCgpJTBBcmVwby5naXRfYWRkKCklMEFyZXBvLmdpdF9jb21taXQoKSUwQXJlcG8uZ2l0X3B1c2goKSUwQXJlcG8uZ2l0X3RhZygp",highlighted:`repo.git_pull()
repo.git_add()
repo.git_commit()
repo.git_push()
repo.git_tag()`,wrap:!1}}),vt=new v({props:{code:"cmVwby5naXRfcHVsbCgp",highlighted:"repo.git_pull()",wrap:!1}}),Tt=new v({props:{code:"bW9kZWwuc2F2ZV9wcmV0cmFpbmVkKCUyMiUzQ3BhdGhfdG9fZHVtbXlfZm9sZGVyJTNFJTIyKSUwQXRva2VuaXplci5zYXZlX3ByZXRyYWluZWQoJTIyJTNDcGF0aF90b19kdW1teV9mb2xkZXIlM0UlMjIp",highlighted:`model.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)
tokenizer.save_pretrained(<span class="hljs-string">&quot;&lt;path_to_dummy_folder&gt;&quot;</span>)`,wrap:!1}}),Zt=new v({props:{code:"cmVwby5naXRfYWRkKCklMEFyZXBvLmdpdF9jb21taXQoJTIyQWRkJTIwbW9kZWwlMjBhbmQlMjB0b2tlbml6ZXIlMjBmaWxlcyUyMiklMEFyZXBvLmdpdF9wdXNoKCk=",highlighted:`repo.git_add()
repo.git_commit(<span class="hljs-string">&quot;Add model and tokenizer files&quot;</span>)
repo.git_push()`,wrap:!1}}),Jt=new oe({props:{title:"Die git-basierte Variante",local:"die-git-basierte-variante",headingTag:"h3"}}),Bt=new v({props:{code:"Z2l0JTIwbGZzJTIwaW5zdGFsbA==",highlighted:"git lfs install",wrap:!1}}),xt=new v({props:{code:"VXBkYXRlZCUyMGdpdCUyMGhvb2tzLiUwQUdpdCUyMExGUyUyMGluaXRpYWxpemVkLg==",highlighted:`Updated git hooks.
Git LFS initialized.`,wrap:!1}}),Ht=new v({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGJTNDbmFtZXNwYWNlJTNFJTJGJTNDeW91ci1tb2RlbC1pZCUzRQ==",highlighted:'git <span class="hljs-built_in">clone</span> https://huggingface.co/&lt;namespace&gt;/&lt;your-model-id&gt;',wrap:!1}}),Vt=new v({props:{code:"Z2l0JTIwY2xvbmUlMjBodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGbHlzYW5kcmUlMkZkdW1teQ==",highlighted:'git clone https:<span class="hljs-regexp">//</span>huggingface.co<span class="hljs-regexp">/lysandre/</span>dummy',wrap:!1}}),Lt=new v({props:{code:"Y2QlMjBkdW1teSUyMCUyNiUyNiUyMGxz",highlighted:'<span class="hljs-built_in">cd</span> dummy &amp;&amp; <span class="hljs-built_in">ls</span>',wrap:!1}}),Dt=new v({props:{code:"UkVBRE1FLm1k",highlighted:"README.md",wrap:!1}});const fr=[ea,Kr],mn=[];function Mr(e,t){return e[0]==="pt"?0:1}L=Mr(_),D=mn[L]=fr[L](_),Et=new v({props:{code:"bHM=",highlighted:'<span class="hljs-built_in">ls</span>',wrap:!1}});const br=[na,ta],pn=[];function hr(e,t){return e[0]==="pt"?0:1}I=hr(_),X=pn[I]=br[I](_),ae=new zr({props:{$$slots:{default:[la]},$$scope:{ctx:_}}}),Ft=new v({props:{code:"Z2l0JTIwYWRkJTIwLg==",highlighted:"git add .",wrap:!1}}),qt=new v({props:{code:"Z2l0JTIwc3RhdHVz",highlighted:"git status",wrap:!1}});const gr=[sa,ia],cn=[];function yr(e,t){return e[0]==="pt"?0:1}S=yr(_),Y=cn[S]=gr[S](_),Kt=new v({props:{code:"Z2l0JTIwbGZzJTIwc3RhdHVz",highlighted:"git lfs status",wrap:!1}});const wr=[aa,ra],fn=[];function _r(e,t){return e[0]==="pt"?0:1}E=_r(_),Q=fn[E]=wr[E](_),tn=new v({props:{code:"Z2l0JTIwY29tbWl0JTIwLW0lMjAlMjJGaXJzdCUyMG1vZGVsJTIwdmVyc2lvbiUyMg==",highlighted:'git commit -m <span class="hljs-string">&quot;First model version&quot;</span>',wrap:!1}});const kr=[da,oa],Mn=[];function $r(e,t){return e[0]==="pt"?0:1}F=$r(_),P=Mn[F]=kr[F](_),ln=new v({props:{code:"Z2l0JTIwcHVzaA==",highlighted:"git push",wrap:!1}}),sn=new v({props:{code:"VXBsb2FkaW5nJTIwTEZTJTIwb2JqZWN0cyUzQSUyMDEwMCUyNSUyMCgxJTJGMSklMkMlMjA0MzMlMjBNQiUyMCU3QyUyMDEuMyUyME1CJTJGcyUyQyUyMGRvbmUuJTBBRW51bWVyYXRpbmclMjBvYmplY3RzJTNBJTIwMTElMkMlMjBkb25lLiUwQUNvdW50aW5nJTIwb2JqZWN0cyUzQSUyMDEwMCUyNSUyMCgxMSUyRjExKSUyQyUyMGRvbmUuJTBBRGVsdGElMjBjb21wcmVzc2lvbiUyMHVzaW5nJTIwdXAlMjB0byUyMDEyJTIwdGhyZWFkcyUwQUNvbXByZXNzaW5nJTIwb2JqZWN0cyUzQSUyMDEwMCUyNSUyMCg5JTJGOSklMkMlMjBkb25lLiUwQVdyaXRpbmclMjBvYmplY3RzJTNBJTIwMTAwJTI1JTIwKDklMkY5KSUyQyUyMDI4OC4yNyUyMEtpQiUyMCU3QyUyMDYuMjclMjBNaUIlMkZzJTJDJTIwZG9uZS4lMEFUb3RhbCUyMDklMjAoZGVsdGElMjAxKSUyQyUyMHJldXNlZCUyMDAlMjAoZGVsdGElMjAwKSUyQyUyMHBhY2stcmV1c2VkJTIwMCUwQVRvJTIwaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmx5c2FuZHJlJTJGZHVtbXklMEElMjAlMjAlMjA4OTFiNDFkLi5iMDhhYWIxJTIwJTIwbWFpbiUyMC0lM0UlMjBtYWlu",highlighted:`Uploading LFS objects: 100% (1/1), 433 MB | 1.3 MB/s, <span class="hljs-keyword">done</span>.
Enumerating objects: 11, <span class="hljs-keyword">done</span>.
Counting objects: 100% (11/11), <span class="hljs-keyword">done</span>.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), <span class="hljs-keyword">done</span>.
Writing objects: 100% (9/9), 288.27 KiB | 6.27 MiB/s, <span class="hljs-keyword">done</span>.
Total 9 (delta 1), reused 0 (delta 0), pack-reused 0
To https://huggingface.co/lysandre/dummy
   891b41d..b08aab1  main -&gt; main`,wrap:!1}});function vr(e,t){return e[0]==="pt"?ma:ua}let Wi=vr(_),K=Wi(_);return rn=new Lr({props:{source:"https://github.com/huggingface/course/blob/main/chapters/de/chapter4/3.mdx"}}),{c(){i=d("meta"),o=r(),s=d("p"),c=r(),h($.$$.fragment),p=r(),h(k.$$.fragment),J=r(),T.c(),z=r(),b=d("p"),b.textContent=Z,q=r(),h(W.$$.fragment),de=r(),B=d("p"),B.textContent=j,C=r(),ue=d("p"),ue.textContent=Di,jn=r(),me=d("ul"),me.innerHTML=Ii,Zn=r(),pe=d("p"),pe.textContent=Xi,zn=r(),h(ce.$$.fragment),Jn=r(),R.c(),bn=r(),fe=d("p"),fe.innerHTML=Si,Wn=r(),h(Me.$$.fragment),Cn=r(),be=d("p"),be.textContent=Yi,Gn=r(),h(he.$$.fragment),Bn=r(),ge=d("p"),ge.innerHTML=Ei,xn=r(),ye=d("p"),ye.textContent=Qi,Rn=r(),N.c(),hn=r(),we=d("p"),we.innerHTML=Fi,Hn=r(),_e=d("p"),_e.textContent=Pi,Nn=r(),A.c(),gn=r(),ke=d("p"),ke.innerHTML=qi,Vn=r(),h($e.$$.fragment),An=r(),ve=d("p"),ve.innerHTML=Oi,Ln=r(),h(Ue.$$.fragment),Dn=r(),Te=d("p"),Te.innerHTML=Ki,In=r(),h(je.$$.fragment),Xn=r(),Ze=d("p"),Ze.innerHTML=es,Sn=r(),h(ze.$$.fragment),Yn=r(),Je=d("p"),Je.innerHTML=ts,En=r(),We=d("p"),We.textContent=ns,Qn=r(),O.c(),yn=r(),h(ne.$$.fragment),Fn=r(),Ce=d("p"),Ce.innerHTML=ls,Pn=r(),Ge=d("p"),Ge.innerHTML=is,qn=r(),h(Be.$$.fragment),On=r(),xe=d("p"),xe.innerHTML=ss,Kn=r(),Re=d("p"),Re.innerHTML=rs,el=r(),h(He.$$.fragment),tl=r(),Ne=d("p"),Ne.innerHTML=as,nl=r(),h(Ve.$$.fragment),ll=r(),Ae=d("p"),Ae.innerHTML=os,il=r(),Le=d("p"),Le.innerHTML=ds,sl=r(),h(De.$$.fragment),rl=r(),Ie=d("p"),Ie.innerHTML=us,al=r(),h(Xe.$$.fragment),ol=r(),Se=d("p"),Se.innerHTML=ms,dl=r(),Ye=d("ul"),Ye.innerHTML=ps,ul=r(),Ee=d("p"),Ee.textContent=cs,ml=r(),h(Qe.$$.fragment),pl=r(),Fe=d("p"),Fe.textContent=fs,cl=r(),Pe=d("p"),Pe.innerHTML=Ms,fl=r(),le=d("div"),le.innerHTML=bs,Ml=r(),qe=d("p"),qe.textContent=hs,bl=r(),Oe=d("p"),Oe.textContent=gs,hl=r(),Ke=d("p"),Ke.textContent=ys,gl=r(),ie=d("div"),ie.innerHTML=ws,yl=r(),et=d("p"),et.textContent=_s,wl=r(),se=d("div"),se.innerHTML=ks,_l=r(),tt=d("p"),tt.textContent=$s,kl=r(),nt=d("p"),nt.innerHTML=vs,$l=r(),re=d("div"),re.innerHTML=Us,vl=r(),lt=d("p"),lt.textContent=Ts,Ul=r(),h(it.$$.fragment),Tl=r(),st=d("p"),st.innerHTML=js,jl=r(),rt=d("p"),rt.innerHTML=Zs,Zl=r(),h(at.$$.fragment),zl=r(),ot=d("p"),ot.innerHTML=zs,Jl=r(),dt=d("p"),dt.textContent=Js,Wl=r(),h(ut.$$.fragment),Cl=r(),mt=d("p"),mt.innerHTML=Ws,Gl=r(),pt=d("ul"),pt.innerHTML=Cs,Bl=r(),h(ct.$$.fragment),xl=r(),ft=d("p"),ft.innerHTML=Gs,Rl=r(),Mt=d("p"),Mt.innerHTML=Bs,Hl=r(),bt=d("p"),bt.textContent=xs,Nl=r(),h(ht.$$.fragment),Vl=r(),gt=d("p"),gt.innerHTML=Rs,Al=r(),yt=d("p"),yt.textContent=Hs,Ll=r(),h(wt.$$.fragment),Dl=r(),_t=d("p"),_t.innerHTML=Ns,Il=r(),kt=d("p"),kt.textContent=Vs,Xl=r(),$t=d("p"),$t.textContent=As,Sl=r(),h(vt.$$.fragment),Yl=r(),Ut=d("p"),Ut.textContent=Ls,El=r(),h(Tt.$$.fragment),Ql=r(),jt=d("p"),jt.innerHTML=Ds,Fl=r(),h(Zt.$$.fragment),Pl=r(),zt=d("p"),zt.textContent=Is,ql=r(),h(Jt.$$.fragment),Ol=r(),Wt=d("p"),Wt.textContent=Xs,Kl=r(),Ct=d("p"),Ct.innerHTML=Ss,ei=r(),Gt=d("p"),Gt.textContent=Ys,ti=r(),h(Bt.$$.fragment),ni=r(),h(xt.$$.fragment),li=r(),Rt=d("p"),Rt.textContent=Es,ii=r(),h(Ht.$$.fragment),si=r(),Nt=d("p"),Nt.innerHTML=Qs,ri=r(),h(Vt.$$.fragment),ai=r(),At=d("p"),At.innerHTML=Fs,oi=r(),h(Lt.$$.fragment),di=r(),h(Dt.$$.fragment),ui=r(),It=d("p"),It.innerHTML=Ps,mi=r(),Xt=d("p"),Xt.innerHTML=qs,pi=r(),St=d("p"),St.textContent=Os,ci=r(),D.c(),wn=r(),Yt=d("p"),Yt.innerHTML=Ks,fi=r(),h(Et.$$.fragment),Mi=r(),X.c(),_n=r(),h(ae.$$.fragment),bi=r(),Qt=d("p"),Qt.innerHTML=er,hi=r(),h(Ft.$$.fragment),gi=r(),Pt=d("p"),Pt.textContent=tr,yi=r(),h(qt.$$.fragment),wi=r(),Y.c(),kn=r(),Ot=d("p"),Ot.innerHTML=nr,_i=r(),h(Kt.$$.fragment),ki=r(),Q.c(),$n=r(),en=d("p"),en.innerHTML=lr,$i=r(),h(tn.$$.fragment),vi=r(),P.c(),vn=r(),nn=d("p"),nn.textContent=ir,Ui=r(),h(ln.$$.fragment),Ti=r(),h(sn.$$.fragment),ji=r(),K.c(),Un=r(),h(rn.$$.fragment),Zi=r(),Tn=d("p"),this.h()},l(e){const t=Rr("svelte-u9bgzb",document.head);i=u(t,"META",{name:!0,content:!0}),t.forEach(n),o=a(e),s=u(e,"P",{}),Zr(s).forEach(n),c=a(e),g($.$$.fragment,e),p=a(e),g(k.$$.fragment,e),J=a(e),T.l(e),z=a(e),b=u(e,"P",{"data-svelte-h":!0}),m(b)!=="svelte-1it426n"&&(b.textContent=Z),q=a(e),g(W.$$.fragment,e),de=a(e),B=u(e,"P",{"data-svelte-h":!0}),m(B)!=="svelte-ugznaq"&&(B.textContent=j),C=a(e),ue=u(e,"P",{"data-svelte-h":!0}),m(ue)!=="svelte-1out3a0"&&(ue.textContent=Di),jn=a(e),me=u(e,"UL",{"data-svelte-h":!0}),m(me)!=="svelte-ag9deo"&&(me.innerHTML=Ii),Zn=a(e),pe=u(e,"P",{"data-svelte-h":!0}),m(pe)!=="svelte-heh9nf"&&(pe.textContent=Xi),zn=a(e),g(ce.$$.fragment,e),Jn=a(e),R.l(e),bn=a(e),fe=u(e,"P",{"data-svelte-h":!0}),m(fe)!=="svelte-15hn6p"&&(fe.innerHTML=Si),Wn=a(e),g(Me.$$.fragment,e),Cn=a(e),be=u(e,"P",{"data-svelte-h":!0}),m(be)!=="svelte-e6qzqk"&&(be.textContent=Yi),Gn=a(e),g(he.$$.fragment,e),Bn=a(e),ge=u(e,"P",{"data-svelte-h":!0}),m(ge)!=="svelte-zloxop"&&(ge.innerHTML=Ei),xn=a(e),ye=u(e,"P",{"data-svelte-h":!0}),m(ye)!=="svelte-1rjl50y"&&(ye.textContent=Qi),Rn=a(e),N.l(e),hn=a(e),we=u(e,"P",{"data-svelte-h":!0}),m(we)!=="svelte-1borddb"&&(we.innerHTML=Fi),Hn=a(e),_e=u(e,"P",{"data-svelte-h":!0}),m(_e)!=="svelte-18kr6vf"&&(_e.textContent=Pi),Nn=a(e),A.l(e),gn=a(e),ke=u(e,"P",{"data-svelte-h":!0}),m(ke)!=="svelte-1lmh3t9"&&(ke.innerHTML=qi),Vn=a(e),g($e.$$.fragment,e),An=a(e),ve=u(e,"P",{"data-svelte-h":!0}),m(ve)!=="svelte-ldrmji"&&(ve.innerHTML=Oi),Ln=a(e),g(Ue.$$.fragment,e),Dn=a(e),Te=u(e,"P",{"data-svelte-h":!0}),m(Te)!=="svelte-1jglrmw"&&(Te.innerHTML=Ki),In=a(e),g(je.$$.fragment,e),Xn=a(e),Ze=u(e,"P",{"data-svelte-h":!0}),m(Ze)!=="svelte-6pck8z"&&(Ze.innerHTML=es),Sn=a(e),g(ze.$$.fragment,e),Yn=a(e),Je=u(e,"P",{"data-svelte-h":!0}),m(Je)!=="svelte-15m9dbs"&&(Je.innerHTML=ts),En=a(e),We=u(e,"P",{"data-svelte-h":!0}),m(We)!=="svelte-d3sy4e"&&(We.textContent=ns),Qn=a(e),O.l(e),yn=a(e),g(ne.$$.fragment,e),Fn=a(e),Ce=u(e,"P",{"data-svelte-h":!0}),m(Ce)!=="svelte-9qk05p"&&(Ce.innerHTML=ls),Pn=a(e),Ge=u(e,"P",{"data-svelte-h":!0}),m(Ge)!=="svelte-1fya643"&&(Ge.innerHTML=is),qn=a(e),g(Be.$$.fragment,e),On=a(e),xe=u(e,"P",{"data-svelte-h":!0}),m(xe)!=="svelte-1ai21ye"&&(xe.innerHTML=ss),Kn=a(e),Re=u(e,"P",{"data-svelte-h":!0}),m(Re)!=="svelte-19lb2e7"&&(Re.innerHTML=rs),el=a(e),g(He.$$.fragment,e),tl=a(e),Ne=u(e,"P",{"data-svelte-h":!0}),m(Ne)!=="svelte-9czp6d"&&(Ne.innerHTML=as),nl=a(e),g(Ve.$$.fragment,e),ll=a(e),Ae=u(e,"P",{"data-svelte-h":!0}),m(Ae)!=="svelte-1tpnvul"&&(Ae.innerHTML=os),il=a(e),Le=u(e,"P",{"data-svelte-h":!0}),m(Le)!=="svelte-vr2fy9"&&(Le.innerHTML=ds),sl=a(e),g(De.$$.fragment,e),rl=a(e),Ie=u(e,"P",{"data-svelte-h":!0}),m(Ie)!=="svelte-1xtxm9f"&&(Ie.innerHTML=us),al=a(e),g(Xe.$$.fragment,e),ol=a(e),Se=u(e,"P",{"data-svelte-h":!0}),m(Se)!=="svelte-15l3jio"&&(Se.innerHTML=ms),dl=a(e),Ye=u(e,"UL",{"data-svelte-h":!0}),m(Ye)!=="svelte-y0ie6p"&&(Ye.innerHTML=ps),ul=a(e),Ee=u(e,"P",{"data-svelte-h":!0}),m(Ee)!=="svelte-la01rm"&&(Ee.textContent=cs),ml=a(e),g(Qe.$$.fragment,e),pl=a(e),Fe=u(e,"P",{"data-svelte-h":!0}),m(Fe)!=="svelte-119tdlu"&&(Fe.textContent=fs),cl=a(e),Pe=u(e,"P",{"data-svelte-h":!0}),m(Pe)!=="svelte-tl82ou"&&(Pe.innerHTML=Ms),fl=a(e),le=u(e,"DIV",{class:!0,"data-svelte-h":!0}),m(le)!=="svelte-ynj1le"&&(le.innerHTML=bs),Ml=a(e),qe=u(e,"P",{"data-svelte-h":!0}),m(qe)!=="svelte-1ntevl3"&&(qe.textContent=hs),bl=a(e),Oe=u(e,"P",{"data-svelte-h":!0}),m(Oe)!=="svelte-dhugid"&&(Oe.textContent=gs),hl=a(e),Ke=u(e,"P",{"data-svelte-h":!0}),m(Ke)!=="svelte-1ewk1js"&&(Ke.textContent=ys),gl=a(e),ie=u(e,"DIV",{class:!0,"data-svelte-h":!0}),m(ie)!=="svelte-kxtv2i"&&(ie.innerHTML=ws),yl=a(e),et=u(e,"P",{"data-svelte-h":!0}),m(et)!=="svelte-olwrfn"&&(et.textContent=_s),wl=a(e),se=u(e,"DIV",{class:!0,"data-svelte-h":!0}),m(se)!=="svelte-1jm8l0p"&&(se.innerHTML=ks),_l=a(e),tt=u(e,"P",{"data-svelte-h":!0}),m(tt)!=="svelte-1fwca21"&&(tt.textContent=$s),kl=a(e),nt=u(e,"P",{"data-svelte-h":!0}),m(nt)!=="svelte-zz7gqa"&&(nt.innerHTML=vs),$l=a(e),re=u(e,"DIV",{class:!0,"data-svelte-h":!0}),m(re)!=="svelte-1kuf5jc"&&(re.innerHTML=Us),vl=a(e),lt=u(e,"P",{"data-svelte-h":!0}),m(lt)!=="svelte-dwajcw"&&(lt.textContent=Ts),Ul=a(e),g(it.$$.fragment,e),Tl=a(e),st=u(e,"P",{"data-svelte-h":!0}),m(st)!=="svelte-10hgobr"&&(st.innerHTML=js),jl=a(e),rt=u(e,"P",{"data-svelte-h":!0}),m(rt)!=="svelte-1j4ue0f"&&(rt.innerHTML=Zs),Zl=a(e),g(at.$$.fragment,e),zl=a(e),ot=u(e,"P",{"data-svelte-h":!0}),m(ot)!=="svelte-1v34u74"&&(ot.innerHTML=zs),Jl=a(e),dt=u(e,"P",{"data-svelte-h":!0}),m(dt)!=="svelte-192c5"&&(dt.textContent=Js),Wl=a(e),g(ut.$$.fragment,e),Cl=a(e),mt=u(e,"P",{"data-svelte-h":!0}),m(mt)!=="svelte-1vjmgvy"&&(mt.innerHTML=Ws),Gl=a(e),pt=u(e,"UL",{"data-svelte-h":!0}),m(pt)!=="svelte-2w5vni"&&(pt.innerHTML=Cs),Bl=a(e),g(ct.$$.fragment,e),xl=a(e),ft=u(e,"P",{"data-svelte-h":!0}),m(ft)!=="svelte-p69qdm"&&(ft.innerHTML=Gs),Rl=a(e),Mt=u(e,"P",{"data-svelte-h":!0}),m(Mt)!=="svelte-1jca5b8"&&(Mt.innerHTML=Bs),Hl=a(e),bt=u(e,"P",{"data-svelte-h":!0}),m(bt)!=="svelte-87xs95"&&(bt.textContent=xs),Nl=a(e),g(ht.$$.fragment,e),Vl=a(e),gt=u(e,"P",{"data-svelte-h":!0}),m(gt)!=="svelte-lofikk"&&(gt.innerHTML=Rs),Al=a(e),yt=u(e,"P",{"data-svelte-h":!0}),m(yt)!=="svelte-ruapbe"&&(yt.textContent=Hs),Ll=a(e),g(wt.$$.fragment,e),Dl=a(e),_t=u(e,"P",{"data-svelte-h":!0}),m(_t)!=="svelte-9uhbff"&&(_t.innerHTML=Ns),Il=a(e),kt=u(e,"P",{"data-svelte-h":!0}),m(kt)!=="svelte-19dyres"&&(kt.textContent=Vs),Xl=a(e),$t=u(e,"P",{"data-svelte-h":!0}),m($t)!=="svelte-hykoa8"&&($t.textContent=As),Sl=a(e),g(vt.$$.fragment,e),Yl=a(e),Ut=u(e,"P",{"data-svelte-h":!0}),m(Ut)!=="svelte-rj8yzg"&&(Ut.textContent=Ls),El=a(e),g(Tt.$$.fragment,e),Ql=a(e),jt=u(e,"P",{"data-svelte-h":!0}),m(jt)!=="svelte-som3p"&&(jt.innerHTML=Ds),Fl=a(e),g(Zt.$$.fragment,e),Pl=a(e),zt=u(e,"P",{"data-svelte-h":!0}),m(zt)!=="svelte-ldvifn"&&(zt.textContent=Is),ql=a(e),g(Jt.$$.fragment,e),Ol=a(e),Wt=u(e,"P",{"data-svelte-h":!0}),m(Wt)!=="svelte-bm2yvw"&&(Wt.textContent=Xs),Kl=a(e),Ct=u(e,"P",{"data-svelte-h":!0}),m(Ct)!=="svelte-15byu6v"&&(Ct.innerHTML=Ss),ei=a(e),Gt=u(e,"P",{"data-svelte-h":!0}),m(Gt)!=="svelte-1xomoai"&&(Gt.textContent=Ys),ti=a(e),g(Bt.$$.fragment,e),ni=a(e),g(xt.$$.fragment,e),li=a(e),Rt=u(e,"P",{"data-svelte-h":!0}),m(Rt)!=="svelte-b4tqv0"&&(Rt.textContent=Es),ii=a(e),g(Ht.$$.fragment,e),si=a(e),Nt=u(e,"P",{"data-svelte-h":!0}),m(Nt)!=="svelte-gptbn9"&&(Nt.innerHTML=Qs),ri=a(e),g(Vt.$$.fragment,e),ai=a(e),At=u(e,"P",{"data-svelte-h":!0}),m(At)!=="svelte-15ahkes"&&(At.innerHTML=Fs),oi=a(e),g(Lt.$$.fragment,e),di=a(e),g(Dt.$$.fragment,e),ui=a(e),It=u(e,"P",{"data-svelte-h":!0}),m(It)!=="svelte-1fe5pne"&&(It.innerHTML=Ps),mi=a(e),Xt=u(e,"P",{"data-svelte-h":!0}),m(Xt)!=="svelte-i6jtyu"&&(Xt.innerHTML=qs),pi=a(e),St=u(e,"P",{"data-svelte-h":!0}),m(St)!=="svelte-1j2uin1"&&(St.textContent=Os),ci=a(e),D.l(e),wn=a(e),Yt=u(e,"P",{"data-svelte-h":!0}),m(Yt)!=="svelte-1ol8llx"&&(Yt.innerHTML=Ks),fi=a(e),g(Et.$$.fragment,e),Mi=a(e),X.l(e),_n=a(e),g(ae.$$.fragment,e),bi=a(e),Qt=u(e,"P",{"data-svelte-h":!0}),m(Qt)!=="svelte-txyak0"&&(Qt.innerHTML=er),hi=a(e),g(Ft.$$.fragment,e),gi=a(e),Pt=u(e,"P",{"data-svelte-h":!0}),m(Pt)!=="svelte-7c4i7b"&&(Pt.textContent=tr),yi=a(e),g(qt.$$.fragment,e),wi=a(e),Y.l(e),kn=a(e),Ot=u(e,"P",{"data-svelte-h":!0}),m(Ot)!=="svelte-jk7ywd"&&(Ot.innerHTML=nr),_i=a(e),g(Kt.$$.fragment,e),ki=a(e),Q.l(e),$n=a(e),en=u(e,"P",{"data-svelte-h":!0}),m(en)!=="svelte-1fwwzn5"&&(en.innerHTML=lr),$i=a(e),g(tn.$$.fragment,e),vi=a(e),P.l(e),vn=a(e),nn=u(e,"P",{"data-svelte-h":!0}),m(nn)!=="svelte-1u8ukso"&&(nn.textContent=ir),Ui=a(e),g(ln.$$.fragment,e),Ti=a(e),g(sn.$$.fragment,e),ji=a(e),K.l(e),Un=a(e),g(rn.$$.fragment,e),Zi=a(e),Tn=u(e,"P",{}),Zr(Tn).forEach(n),this.h()},h(){G(i,"name","hf:doc:metadata"),G(i,"content",ca),G(le,"class","flex justify-center"),G(ie,"class","flex justify-center"),G(se,"class","flex justify-center"),G(re,"class","flex justify-center")},m(e,t){Hr(document.head,i),l(e,o,t),l(e,s,t),l(e,c,t),y($,e,t),l(e,p,t),y(k,e,t),l(e,J,t),an[U].m(e,t),l(e,z,t),l(e,b,t),l(e,q,t),y(W,e,t),l(e,de,t),l(e,B,t),l(e,C,t),l(e,ue,t),l(e,jn,t),l(e,me,t),l(e,Zn,t),l(e,pe,t),l(e,zn,t),y(ce,e,t),l(e,Jn,t),on[x].m(e,t),l(e,bn,t),l(e,fe,t),l(e,Wn,t),y(Me,e,t),l(e,Cn,t),l(e,be,t),l(e,Gn,t),y(he,e,t),l(e,Bn,t),l(e,ge,t),l(e,xn,t),l(e,ye,t),l(e,Rn,t),dn[H].m(e,t),l(e,hn,t),l(e,we,t),l(e,Hn,t),l(e,_e,t),l(e,Nn,t),un[V].m(e,t),l(e,gn,t),l(e,ke,t),l(e,Vn,t),y($e,e,t),l(e,An,t),l(e,ve,t),l(e,Ln,t),y(Ue,e,t),l(e,Dn,t),l(e,Te,t),l(e,In,t),y(je,e,t),l(e,Xn,t),l(e,Ze,t),l(e,Sn,t),y(ze,e,t),l(e,Yn,t),l(e,Je,t),l(e,En,t),l(e,We,t),l(e,Qn,t),O.m(e,t),l(e,yn,t),y(ne,e,t),l(e,Fn,t),l(e,Ce,t),l(e,Pn,t),l(e,Ge,t),l(e,qn,t),y(Be,e,t),l(e,On,t),l(e,xe,t),l(e,Kn,t),l(e,Re,t),l(e,el,t),y(He,e,t),l(e,tl,t),l(e,Ne,t),l(e,nl,t),y(Ve,e,t),l(e,ll,t),l(e,Ae,t),l(e,il,t),l(e,Le,t),l(e,sl,t),y(De,e,t),l(e,rl,t),l(e,Ie,t),l(e,al,t),y(Xe,e,t),l(e,ol,t),l(e,Se,t),l(e,dl,t),l(e,Ye,t),l(e,ul,t),l(e,Ee,t),l(e,ml,t),y(Qe,e,t),l(e,pl,t),l(e,Fe,t),l(e,cl,t),l(e,Pe,t),l(e,fl,t),l(e,le,t),l(e,Ml,t),l(e,qe,t),l(e,bl,t),l(e,Oe,t),l(e,hl,t),l(e,Ke,t),l(e,gl,t),l(e,ie,t),l(e,yl,t),l(e,et,t),l(e,wl,t),l(e,se,t),l(e,_l,t),l(e,tt,t),l(e,kl,t),l(e,nt,t),l(e,$l,t),l(e,re,t),l(e,vl,t),l(e,lt,t),l(e,Ul,t),y(it,e,t),l(e,Tl,t),l(e,st,t),l(e,jl,t),l(e,rt,t),l(e,Zl,t),y(at,e,t),l(e,zl,t),l(e,ot,t),l(e,Jl,t),l(e,dt,t),l(e,Wl,t),y(ut,e,t),l(e,Cl,t),l(e,mt,t),l(e,Gl,t),l(e,pt,t),l(e,Bl,t),y(ct,e,t),l(e,xl,t),l(e,ft,t),l(e,Rl,t),l(e,Mt,t),l(e,Hl,t),l(e,bt,t),l(e,Nl,t),y(ht,e,t),l(e,Vl,t),l(e,gt,t),l(e,Al,t),l(e,yt,t),l(e,Ll,t),y(wt,e,t),l(e,Dl,t),l(e,_t,t),l(e,Il,t),l(e,kt,t),l(e,Xl,t),l(e,$t,t),l(e,Sl,t),y(vt,e,t),l(e,Yl,t),l(e,Ut,t),l(e,El,t),y(Tt,e,t),l(e,Ql,t),l(e,jt,t),l(e,Fl,t),y(Zt,e,t),l(e,Pl,t),l(e,zt,t),l(e,ql,t),y(Jt,e,t),l(e,Ol,t),l(e,Wt,t),l(e,Kl,t),l(e,Ct,t),l(e,ei,t),l(e,Gt,t),l(e,ti,t),y(Bt,e,t),l(e,ni,t),y(xt,e,t),l(e,li,t),l(e,Rt,t),l(e,ii,t),y(Ht,e,t),l(e,si,t),l(e,Nt,t),l(e,ri,t),y(Vt,e,t),l(e,ai,t),l(e,At,t),l(e,oi,t),y(Lt,e,t),l(e,di,t),y(Dt,e,t),l(e,ui,t),l(e,It,t),l(e,mi,t),l(e,Xt,t),l(e,pi,t),l(e,St,t),l(e,ci,t),mn[L].m(e,t),l(e,wn,t),l(e,Yt,t),l(e,fi,t),y(Et,e,t),l(e,Mi,t),pn[I].m(e,t),l(e,_n,t),y(ae,e,t),l(e,bi,t),l(e,Qt,t),l(e,hi,t),y(Ft,e,t),l(e,gi,t),l(e,Pt,t),l(e,yi,t),y(qt,e,t),l(e,wi,t),cn[S].m(e,t),l(e,kn,t),l(e,Ot,t),l(e,_i,t),y(Kt,e,t),l(e,ki,t),fn[E].m(e,t),l(e,$n,t),l(e,en,t),l(e,$i,t),y(tn,e,t),l(e,vi,t),Mn[F].m(e,t),l(e,vn,t),l(e,nn,t),l(e,Ui,t),y(ln,e,t),l(e,Ti,t),y(sn,e,t),l(e,ji,t),K.m(e,t),l(e,Un,t),y(rn,e,t),l(e,Zi,t),l(e,Tn,t),zi=!0},p(e,[t]){const Ur={};t&1&&(Ur.fw=e[0]),$.$set(Ur);let Ci=U;U=rr(e),U!==Ci&&(te(),f(an[Ci],1,1,()=>{an[Ci]=null}),ee(),T=an[U],T||(T=an[U]=sr[U](e),T.c()),M(T,1),T.m(z.parentNode,z));let Gi=x;x=or(e),x!==Gi&&(te(),f(on[Gi],1,1,()=>{on[Gi]=null}),ee(),R=on[x],R||(R=on[x]=ar[x](e),R.c()),M(R,1),R.m(bn.parentNode,bn));let Bi=H;H=ur(e),H!==Bi&&(te(),f(dn[Bi],1,1,()=>{dn[Bi]=null}),ee(),N=dn[H],N||(N=dn[H]=dr[H](e),N.c()),M(N,1),N.m(hn.parentNode,hn));let xi=V;V=pr(e),V!==xi&&(te(),f(un[xi],1,1,()=>{un[xi]=null}),ee(),A=un[V],A||(A=un[V]=mr[V](e),A.c()),M(A,1),A.m(gn.parentNode,gn)),Ji!==(Ji=cr(e))&&(O.d(1),O=Ji(e),O&&(O.c(),O.m(yn.parentNode,yn)));const Tr={};t&2&&(Tr.$$scope={dirty:t,ctx:e}),ne.$set(Tr);let Ri=L;L=Mr(e),L!==Ri&&(te(),f(mn[Ri],1,1,()=>{mn[Ri]=null}),ee(),D=mn[L],D||(D=mn[L]=fr[L](e),D.c()),M(D,1),D.m(wn.parentNode,wn));let Hi=I;I=hr(e),I!==Hi&&(te(),f(pn[Hi],1,1,()=>{pn[Hi]=null}),ee(),X=pn[I],X||(X=pn[I]=br[I](e),X.c()),M(X,1),X.m(_n.parentNode,_n));const jr={};t&2&&(jr.$$scope={dirty:t,ctx:e}),ae.$set(jr);let Ni=S;S=yr(e),S!==Ni&&(te(),f(cn[Ni],1,1,()=>{cn[Ni]=null}),ee(),Y=cn[S],Y||(Y=cn[S]=gr[S](e),Y.c()),M(Y,1),Y.m(kn.parentNode,kn));let Vi=E;E=_r(e),E!==Vi&&(te(),f(fn[Vi],1,1,()=>{fn[Vi]=null}),ee(),Q=fn[E],Q||(Q=fn[E]=wr[E](e),Q.c()),M(Q,1),Q.m($n.parentNode,$n));let Ai=F;F=$r(e),F!==Ai&&(te(),f(Mn[Ai],1,1,()=>{Mn[Ai]=null}),ee(),P=Mn[F],P||(P=Mn[F]=kr[F](e),P.c()),M(P,1),P.m(vn.parentNode,vn)),Wi!==(Wi=vr(e))&&(K.d(1),K=Wi(e),K&&(K.c(),K.m(Un.parentNode,Un)))},i(e){zi||(M($.$$.fragment,e),M(k.$$.fragment,e),M(T),M(W.$$.fragment,e),M(ce.$$.fragment,e),M(R),M(Me.$$.fragment,e),M(he.$$.fragment,e),M(N),M(A),M($e.$$.fragment,e),M(Ue.$$.fragment,e),M(je.$$.fragment,e),M(ze.$$.fragment,e),M(ne.$$.fragment,e),M(Be.$$.fragment,e),M(He.$$.fragment,e),M(Ve.$$.fragment,e),M(De.$$.fragment,e),M(Xe.$$.fragment,e),M(Qe.$$.fragment,e),M(it.$$.fragment,e),M(at.$$.fragment,e),M(ut.$$.fragment,e),M(ct.$$.fragment,e),M(ht.$$.fragment,e),M(wt.$$.fragment,e),M(vt.$$.fragment,e),M(Tt.$$.fragment,e),M(Zt.$$.fragment,e),M(Jt.$$.fragment,e),M(Bt.$$.fragment,e),M(xt.$$.fragment,e),M(Ht.$$.fragment,e),M(Vt.$$.fragment,e),M(Lt.$$.fragment,e),M(Dt.$$.fragment,e),M(D),M(Et.$$.fragment,e),M(X),M(ae.$$.fragment,e),M(Ft.$$.fragment,e),M(qt.$$.fragment,e),M(Y),M(Kt.$$.fragment,e),M(Q),M(tn.$$.fragment,e),M(P),M(ln.$$.fragment,e),M(sn.$$.fragment,e),M(rn.$$.fragment,e),zi=!0)},o(e){f($.$$.fragment,e),f(k.$$.fragment,e),f(T),f(W.$$.fragment,e),f(ce.$$.fragment,e),f(R),f(Me.$$.fragment,e),f(he.$$.fragment,e),f(N),f(A),f($e.$$.fragment,e),f(Ue.$$.fragment,e),f(je.$$.fragment,e),f(ze.$$.fragment,e),f(ne.$$.fragment,e),f(Be.$$.fragment,e),f(He.$$.fragment,e),f(Ve.$$.fragment,e),f(De.$$.fragment,e),f(Xe.$$.fragment,e),f(Qe.$$.fragment,e),f(it.$$.fragment,e),f(at.$$.fragment,e),f(ut.$$.fragment,e),f(ct.$$.fragment,e),f(ht.$$.fragment,e),f(wt.$$.fragment,e),f(vt.$$.fragment,e),f(Tt.$$.fragment,e),f(Zt.$$.fragment,e),f(Jt.$$.fragment,e),f(Bt.$$.fragment,e),f(xt.$$.fragment,e),f(Ht.$$.fragment,e),f(Vt.$$.fragment,e),f(Lt.$$.fragment,e),f(Dt.$$.fragment,e),f(D),f(Et.$$.fragment,e),f(X),f(ae.$$.fragment,e),f(Ft.$$.fragment,e),f(qt.$$.fragment,e),f(Y),f(Kt.$$.fragment,e),f(Q),f(tn.$$.fragment,e),f(P),f(ln.$$.fragment,e),f(sn.$$.fragment,e),f(rn.$$.fragment,e),zi=!1},d(e){e&&(n(o),n(s),n(c),n(p),n(J),n(z),n(b),n(q),n(de),n(B),n(C),n(ue),n(jn),n(me),n(Zn),n(pe),n(zn),n(Jn),n(bn),n(fe),n(Wn),n(Cn),n(be),n(Gn),n(Bn),n(ge),n(xn),n(ye),n(Rn),n(hn),n(we),n(Hn),n(_e),n(Nn),n(gn),n(ke),n(Vn),n(An),n(ve),n(Ln),n(Dn),n(Te),n(In),n(Xn),n(Ze),n(Sn),n(Yn),n(Je),n(En),n(We),n(Qn),n(yn),n(Fn),n(Ce),n(Pn),n(Ge),n(qn),n(On),n(xe),n(Kn),n(Re),n(el),n(tl),n(Ne),n(nl),n(ll),n(Ae),n(il),n(Le),n(sl),n(rl),n(Ie),n(al),n(ol),n(Se),n(dl),n(Ye),n(ul),n(Ee),n(ml),n(pl),n(Fe),n(cl),n(Pe),n(fl),n(le),n(Ml),n(qe),n(bl),n(Oe),n(hl),n(Ke),n(gl),n(ie),n(yl),n(et),n(wl),n(se),n(_l),n(tt),n(kl),n(nt),n($l),n(re),n(vl),n(lt),n(Ul),n(Tl),n(st),n(jl),n(rt),n(Zl),n(zl),n(ot),n(Jl),n(dt),n(Wl),n(Cl),n(mt),n(Gl),n(pt),n(Bl),n(xl),n(ft),n(Rl),n(Mt),n(Hl),n(bt),n(Nl),n(Vl),n(gt),n(Al),n(yt),n(Ll),n(Dl),n(_t),n(Il),n(kt),n(Xl),n($t),n(Sl),n(Yl),n(Ut),n(El),n(Ql),n(jt),n(Fl),n(Pl),n(zt),n(ql),n(Ol),n(Wt),n(Kl),n(Ct),n(ei),n(Gt),n(ti),n(ni),n(li),n(Rt),n(ii),n(si),n(Nt),n(ri),n(ai),n(At),n(oi),n(di),n(ui),n(It),n(mi),n(Xt),n(pi),n(St),n(ci),n(wn),n(Yt),n(fi),n(Mi),n(_n),n(bi),n(Qt),n(hi),n(gi),n(Pt),n(yi),n(wi),n(kn),n(Ot),n(_i),n(ki),n($n),n(en),n($i),n(vi),n(vn),n(nn),n(Ui),n(Ti),n(ji),n(Un),n(Zi),n(Tn)),n(i),w($,e),w(k,e),an[U].d(e),w(W,e),w(ce,e),on[x].d(e),w(Me,e),w(he,e),dn[H].d(e),un[V].d(e),w($e,e),w(Ue,e),w(je,e),w(ze,e),O.d(e),w(ne,e),w(Be,e),w(He,e),w(Ve,e),w(De,e),w(Xe,e),w(Qe,e),w(it,e),w(at,e),w(ut,e),w(ct,e),w(ht,e),w(wt,e),w(vt,e),w(Tt,e),w(Zt,e),w(Jt,e),w(Bt,e),w(xt,e),w(Ht,e),w(Vt,e),w(Lt,e),w(Dt,e),mn[L].d(e),w(Et,e),pn[I].d(e),w(ae,e),w(Ft,e),w(qt,e),cn[S].d(e),w(Kt,e),fn[E].d(e),w(tn,e),Mn[F].d(e),w(ln,e),w(sn,e),K.d(e),w(rn,e)}}}const ca='{"title":"Vortrainierte Modelle teilen","local":"vortrainierte-modelle-teilen","sections":[{"title":"Hochladen mit der push_to_hub API","local":"hochladen-mit-der-pushtohub-api","sections":[],"depth":2},{"title":"Verwendung der huggingface_hub Python Bibliothek","local":"verwendung-der-huggingfacehub-python-bibliothek","sections":[],"depth":2},{"title":"Mit der Webinterface","local":"mit-der-webinterface","sections":[],"depth":2},{"title":"Hochladen von Modell-Dateien","local":"hochladen-von-modell-dateien","sections":[{"title":"Die upload_file Variante","local":"die-uploadfile-variante","sections":[],"depth":3},{"title":"Die Repository Klasse","local":"die-repository-klasse","sections":[],"depth":3},{"title":"Die git-basierte Variante","local":"die-git-basierte-variante","sections":[],"depth":3}],"depth":2}],"depth":1}';function fa(_,i,o){let s="pt";return Cr(()=>{const c=new URLSearchParams(window.location.search);o(0,s=c.get("fw")||"pt")}),[s]}class $a extends Br{constructor(i){super(),xr(this,i,fa,pa,Wr,{})}}export{$a as component};
