import{S as $h,i as zh,s as Eh,e as o,k as m,w as E,t as i,l as kh,M as yh,c as l,d as t,m as c,x as y,a as d,h as r,b as h,N as We,G as n,g as a,y as D,o as k,p as ut,q as v,B as M,v as Dh,n as ft}from"../../chunks/vendor-hf-doc-builder.js";import{T as vh}from"../../chunks/Tip-hf-doc-builder.js";import{Y as Pm}from"../../chunks/Youtube-hf-doc-builder.js";import{I as Yt}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{C as H}from"../../chunks/CodeBlock-hf-doc-builder.js";import{D as wh}from"../../chunks/DocNotebookDropdown-hf-doc-builder.js";import{F as Mh}from"../../chunks/FrameworkSwitchCourse-hf-doc-builder.js";function jh(P){let f,p;return f=new wh({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(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Ah(P){let f,p;return f=new wh({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(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Ph(P){let f,p;return f=new Pm({props:{id:"pUh5cGmNV8Y"}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Oh(P){let f,p;return f=new Pm({props:{id:"Zh0FfmVrKX0"}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Rh(P){let f,p,u,g,$,R,S,j,C,T,A,b,z,_,w,I,F,W,B,V,Y,re,U,se,be,ne,L,ie,oe,K,ke,le;return T=new H({props:{code:`from transformers import PushToHubCallback

callback = PushToHubCallback(
    "bert-finetuned-mrpc", save_strategy="epoch", tokenizer=tokenizer
)`,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
)`}}),{c(){f=o("p"),p=i("Wenn du f\xFCr das Modell-Training Keras benutzt, ist der einfachste Weg, um das Modell aud den Hub hochzuladen, den "),u=o("code"),g=i("PushToHubCallback"),$=i(" zu setzen, wenn du "),R=o("code"),S=i("model.fit()"),j=i(" aufrufst."),C=m(),E(T.$$.fragment),A=m(),b=o("p"),z=i("Danach must du noch "),_=o("code"),w=i("callbacks=[callback]"),I=i(" beim "),F=o("code"),W=i("model.fit()"),B=i(` 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\xE4hlt hast (hier `),V=o("code"),Y=i("bert-finetuned-mrpc"),re=i("). Nat\xFCrlich kannst du dir aber einen anderen Namen ausdenken und mit "),U=o("code"),se=i('hub_model_id = "a_different_name"'),be=i(" setzen."),ne=m(),L=o("p"),ie=i("Um dein Modell zu einer Organisation, wovon du Mitglied bist, hochzuladen, kannst du einfach "),oe=o("code"),K=i('hub_model_id = "my_organization/my_repo_name"'),ke=i(" mit eingeben.")},l(N){f=l(N,"P",{});var G=d(f);p=r(G,"Wenn du f\xFCr das Modell-Training Keras benutzt, ist der einfachste Weg, um das Modell aud den Hub hochzuladen, den "),u=l(G,"CODE",{});var ve=d(u);g=r(ve,"PushToHubCallback"),ve.forEach(t),$=r(G," zu setzen, wenn du "),R=l(G,"CODE",{});var J=d(R);S=r(J,"model.fit()"),J.forEach(t),j=r(G," aufrufst."),G.forEach(t),C=c(N),y(T.$$.fragment,N),A=c(N),b=l(N,"P",{});var x=d(b);z=r(x,"Danach must du noch "),_=l(x,"CODE",{});var me=d(_);w=r(me,"callbacks=[callback]"),me.forEach(t),I=r(x," beim "),F=l(x,"CODE",{});var Ne=d(F);W=r(Ne,"model.fit()"),Ne.forEach(t),B=r(x,` 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\xE4hlt hast (hier `),V=l(x,"CODE",{});var ce=d(V);Y=r(ce,"bert-finetuned-mrpc"),ce.forEach(t),re=r(x,"). Nat\xFCrlich kannst du dir aber einen anderen Namen ausdenken und mit "),U=l(x,"CODE",{});var we=d(U);se=r(we,'hub_model_id = "a_different_name"'),we.forEach(t),be=r(x," setzen."),x.forEach(t),ne=c(N),L=l(N,"P",{});var X=d(L);ie=r(X,"Um dein Modell zu einer Organisation, wovon du Mitglied bist, hochzuladen, kannst du einfach "),oe=l(X,"CODE",{});var Q=d(oe);K=r(Q,'hub_model_id = "my_organization/my_repo_name"'),Q.forEach(t),ke=r(X," mit eingeben."),X.forEach(t)},m(N,G){a(N,f,G),n(f,p),n(f,u),n(u,g),n(f,$),n(f,R),n(R,S),n(f,j),a(N,C,G),D(T,N,G),a(N,A,G),a(N,b,G),n(b,z),n(b,_),n(_,w),n(b,I),n(b,F),n(F,W),n(b,B),n(b,V),n(V,Y),n(b,re),n(b,U),n(U,se),n(b,be),a(N,ne,G),a(N,L,G),n(L,ie),n(L,oe),n(oe,K),n(L,ke),le=!0},i(N){le||(v(T.$$.fragment,N),le=!0)},o(N){k(T.$$.fragment,N),le=!1},d(N){N&&t(f),N&&t(C),M(T,N),N&&t(A),N&&t(b),N&&t(ne),N&&t(L)}}}function Th(P){let f,p,u,g,$,R,S,j,C,T,A,b,z,_,w,I,F,W,B,V,Y,re,U,se,be,ne,L,ie,oe,K,ke,le,N,G,ve,J,x,me,Ne,ce,we,X,Q,fi,Qe;return z=new H({props:{code:`from transformers import TrainingArguments

training_args = TrainingArguments(
    "bert-finetuned-mrpc", save_strategy="epoch", push_to_hub=True
)`,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>
)`}}),{c(){f=o("p"),p=i("Wenn du schon Modelle mit der "),u=o("code"),g=i("Trainer"),$=i(" API trainiert hast, dann ist der einfachste Weg, um Modelle hochzuladen, das Argument "),R=o("code"),S=i("push_to_hub=True"),j=i(" in "),C=o("code"),T=i("TrainingArguments"),A=i(" einzustellen."),b=m(),E(z.$$.fragment),_=m(),w=o("p"),I=i("Wenn du "),F=o("code"),W=i("trainer.train()"),B=i(" aufrufst, l\xE4dt der "),V=o("code"),Y=i("Trainer"),re=i(" 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\xE4hlt hast (hier "),U=o("code"),se=i("bert-finetuned-mrpc"),be=i("). Nat\xFCrlich kannst du dir aber einen anderen Namen ausdenken und mit "),ne=o("code"),L=i('hub_model_id = "a_different_name"'),ie=i(" setzen."),oe=m(),K=o("p"),ke=i("Um dein Modell zu einer Organisation, wovon du Mitglied bist, hochzuladen, kannst du einfach "),le=o("code"),N=i('hub_model_id = "my_organization/my_repo_name"'),G=i(" mit eingeben."),ve=m(),J=o("p"),x=i("Wenn das Training durch ist, must du noch einmal "),me=o("code"),Ne=i("trainer.push_to_hub()"),ce=i(" ausf\xFChren, 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:"),we=m(),X=o("div"),Q=o("img"),this.h()},l(O){f=l(O,"P",{});var q=d(f);p=r(q,"Wenn du schon Modelle mit der "),u=l(q,"CODE",{});var mt=d(u);g=r(mt,"Trainer"),mt.forEach(t),$=r(q," API trainiert hast, dann ist der einfachste Weg, um Modelle hochzuladen, das Argument "),R=l(q,"CODE",{});var Be=d(R);S=r(Be,"push_to_hub=True"),Be.forEach(t),j=r(q," in "),C=l(q,"CODE",{});var mi=d(C);T=r(mi,"TrainingArguments"),mi.forEach(t),A=r(q," einzustellen."),q.forEach(t),b=c(O),y(z.$$.fragment,O),_=c(O),w=l(O,"P",{});var Z=d(w);I=r(Z,"Wenn du "),F=l(Z,"CODE",{});var ci=d(F);W=r(ci,"trainer.train()"),ci.forEach(t),B=r(Z," aufrufst, l\xE4dt der "),V=l(Z,"CODE",{});var ct=d(V);Y=r(ct,"Trainer"),ct.forEach(t),re=r(Z," 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\xE4hlt hast (hier "),U=l(Z,"CODE",{});var pi=d(U);se=r(pi,"bert-finetuned-mrpc"),pi.forEach(t),be=r(Z,"). Nat\xFCrlich kannst du dir aber einen anderen Namen ausdenken und mit "),ne=l(Z,"CODE",{});var hi=d(ne);L=r(hi,'hub_model_id = "a_different_name"'),hi.forEach(t),ie=r(Z," setzen."),Z.forEach(t),oe=c(O),K=l(O,"P",{});var et=d(K);ke=r(et,"Um dein Modell zu einer Organisation, wovon du Mitglied bist, hochzuladen, kannst du einfach "),le=l(et,"CODE",{});var ae=d(le);N=r(ae,'hub_model_id = "my_organization/my_repo_name"'),ae.forEach(t),G=r(et," mit eingeben."),et.forEach(t),ve=c(O),J=l(O,"P",{});var te=d(J);x=r(te,"Wenn das Training durch ist, must du noch einmal "),me=l(te,"CODE",{});var tt=d(me);Ne=r(tt,"trainer.push_to_hub()"),tt.forEach(t),ce=r(te," ausf\xFChren, 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:"),te.forEach(t),we=c(O),X=l(O,"DIV",{class:!0});var ee=d(X);Q=l(ee,"IMG",{src:!0,alt:!0,width:!0}),ee.forEach(t),this.h()},h(){We(Q.src,fi="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/model_card.png")||h(Q,"src",fi),h(Q,"alt","An example of an auto-generated model card."),h(Q,"width","100%"),h(X,"class","flex justify-center")},m(O,q){a(O,f,q),n(f,p),n(f,u),n(u,g),n(f,$),n(f,R),n(R,S),n(f,j),n(f,C),n(C,T),n(f,A),a(O,b,q),D(z,O,q),a(O,_,q),a(O,w,q),n(w,I),n(w,F),n(F,W),n(w,B),n(w,V),n(V,Y),n(w,re),n(w,U),n(U,se),n(w,be),n(w,ne),n(ne,L),n(w,ie),a(O,oe,q),a(O,K,q),n(K,ke),n(K,le),n(le,N),n(K,G),a(O,ve,q),a(O,J,q),n(J,x),n(J,me),n(me,Ne),n(J,ce),a(O,we,q),a(O,X,q),n(X,Q),Qe=!0},i(O){Qe||(v(z.$$.fragment,O),Qe=!0)},o(O){k(z.$$.fragment,O),Qe=!1},d(O){O&&t(f),O&&t(b),M(z,O),O&&t(_),O&&t(w),O&&t(oe),O&&t(K),O&&t(ve),O&&t(J),O&&t(we),O&&t(X)}}}function Ch(P){let f,p;return f=new H({props:{code:`from transformers import TFAutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

model = TFAutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,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)`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Sh(P){let f,p;return f=new H({props:{code:`from transformers import AutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

model = AutoModelForMaskedLM.from_pretrained(checkpoint)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)`,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)`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Hh(P){let f,p,u;return{c(){f=o("div"),p=o("img"),this.h()},l(g){f=l(g,"DIV",{class:!0});var $=d(f);p=l($,"IMG",{src:!0,alt:!0,width:!0}),$.forEach(t),this.h()},h(){We(p.src,u="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model_tf.png")||h(p,"src",u),h(p,"alt","Dummy model containing both the tokenizer and model files."),h(p,"width","80%"),h(f,"class","flex justify-center")},m(g,$){a(g,f,$),n(f,p)},d(g){g&&t(f)}}}function Ih(P){let f,p,u;return{c(){f=o("div"),p=o("img"),this.h()},l(g){f=l(g,"DIV",{class:!0});var $=d(f);p=l($,"IMG",{src:!0,alt:!0,width:!0}),$.forEach(t),this.h()},h(){We(p.src,u="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/push_to_hub_dummy_model.png")||h(p,"src",u),h(p,"alt","Dummy model containing both the tokenizer and model files."),h(p,"width","80%"),h(f,"class","flex justify-center")},m(g,$){a(g,f,$),n(f,p)},d(g){g&&t(f)}}}function Wh(P){let f,p,u,g,$,R,S,j,C,T,A;return{c(){f=o("p"),p=i("\u270F\uFE0F "),u=o("strong"),g=i("Probier das selber aus!"),$=i(" Lade das Modell und den Tokenizer vom Checkpoint "),R=o("code"),S=i("bert-base-cased"),j=i(" mit der Methode "),C=o("code"),T=i("push_to_hub()"),A=i(" hoch. \xDCberpr\xFCfe, dass der Repository auf deiner Seite richtig erscheint, bevor du den l\xF6schst.")},l(b){f=l(b,"P",{});var z=d(f);p=r(z,"\u270F\uFE0F "),u=l(z,"STRONG",{});var _=d(u);g=r(_,"Probier das selber aus!"),_.forEach(t),$=r(z," Lade das Modell und den Tokenizer vom Checkpoint "),R=l(z,"CODE",{});var w=d(R);S=r(w,"bert-base-cased"),w.forEach(t),j=r(z," mit der Methode "),C=l(z,"CODE",{});var I=d(C);T=r(I,"push_to_hub()"),I.forEach(t),A=r(z," hoch. \xDCberpr\xFCfe, dass der Repository auf deiner Seite richtig erscheint, bevor du den l\xF6schst."),z.forEach(t)},m(b,z){a(b,f,z),n(f,p),n(f,u),n(u,g),n(f,$),n(f,R),n(R,S),n(f,j),n(f,C),n(C,T),n(f,A)},d(b){b&&t(f)}}}function Nh(P){let f,p;return f=new H({props:{code:`from transformers import TFAutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

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

# Mach was du m\xF6chtest mit dem Modell, z.B. trainieren, fine-tunen.

model.save_pretrained("<path_to_dummy_folder>")
tokenizer.save_pretrained("<path_to_dummy_folder>")`,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\xF6chtest 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>)`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Bh(P){let f,p;return f=new H({props:{code:`from transformers import AutoModelForMaskedLM, AutoTokenizer

checkpoint = "camembert-base"

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

# Mach was du m\xF6chtest mit dem Modell, z.B. trainieren, fine-tunen.

model.save_pretrained("<path_to_dummy_folder>")
tokenizer.save_pretrained("<path_to_dummy_folder>")`,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\xF6chtest 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>)`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Fh(P){let f,p,u,g,$,R,S,j,C,T,A;return f=new H({props:{code:"config.json  README.md  sentencepiece.bpe.model  special_tokens_map.json  tf_model.h5  tokenizer_config.json  tokenizer.json",highlighted:"config.json  README.md  sentencepiece.bpe.model  special_tokens_map.json  tf_model.h5  tokenizer_config.json  tokenizer.json"}}),{c(){E(f.$$.fragment),p=m(),u=o("p"),g=i("Wenn du dir die Dateigr\xF6\xDFen anschaust (z.B. mit "),$=o("code"),R=i("ls -lh"),S=i("), solltest du sehen, dass die Modell-Statedict Datei ("),j=o("em"),C=i("t5_model.h5"),T=i(") der einzige Ausrei\xDFer ist mit \xFCber 400 MB.")},l(b){y(f.$$.fragment,b),p=c(b),u=l(b,"P",{});var z=d(u);g=r(z,"Wenn du dir die Dateigr\xF6\xDFen anschaust (z.B. mit "),$=l(z,"CODE",{});var _=d($);R=r(_,"ls -lh"),_.forEach(t),S=r(z,"), solltest du sehen, dass die Modell-Statedict Datei ("),j=l(z,"EM",{});var w=d(j);C=r(w,"t5_model.h5"),w.forEach(t),T=r(z,") der einzige Ausrei\xDFer ist mit \xFCber 400 MB."),z.forEach(t)},m(b,z){D(f,b,z),a(b,p,z),a(b,u,z),n(u,g),n(u,$),n($,R),n(u,S),n(u,j),n(j,C),n(u,T),A=!0},i(b){A||(v(f.$$.fragment,b),A=!0)},o(b){k(f.$$.fragment,b),A=!1},d(b){M(f,b),b&&t(p),b&&t(u)}}}function qh(P){let f,p,u,g,$,R,S,j,C,T,A;return f=new H({props:{code:"config.json  pytorch_model.bin  README.md  sentencepiece.bpe.model  special_tokens_map.json tokenizer_config.json  tokenizer.json",highlighted:"config.json  pytorch_model.bin  README.md  sentencepiece.bpe.model  special_tokens_map.json tokenizer_config.json  tokenizer.json"}}),{c(){E(f.$$.fragment),p=m(),u=o("p"),g=i("Wenn du dir die Dateigr\xF6\xDFen anschaust (z.B. mit "),$=o("code"),R=i("ls -lh"),S=i("), solltest du sehen, dass die Modell-Statedict Datei ("),j=o("em"),C=i("pytorch_model.bin"),T=i(") der einzige Ausrei\xDFer ist mit \xFCber 400 MB.")},l(b){y(f.$$.fragment,b),p=c(b),u=l(b,"P",{});var z=d(u);g=r(z,"Wenn du dir die Dateigr\xF6\xDFen anschaust (z.B. mit "),$=l(z,"CODE",{});var _=d($);R=r(_,"ls -lh"),_.forEach(t),S=r(z,"), solltest du sehen, dass die Modell-Statedict Datei ("),j=l(z,"EM",{});var w=d(j);C=r(w,"pytorch_model.bin"),w.forEach(t),T=r(z,") der einzige Ausrei\xDFer ist mit \xFCber 400 MB."),z.forEach(t)},m(b,z){D(f,b,z),a(b,p,z),a(b,u,z),n(u,g),n(u,$),n($,R),n(u,S),n(u,j),n(j,C),n(u,T),A=!0},i(b){A||(v(f.$$.fragment,b),A=!0)},o(b){k(f.$$.fragment,b),A=!1},d(b){M(f,b),b&&t(p),b&&t(u)}}}function Gh(P){let f;return{c(){f=i("\u270F\uFE0F  Wenn ein Repository mittels der Webinterface kreiert wird, wird die *.gitattributes* Datei automatisch gesetzt, um bestimmte Dateiendungen wie *.bin* und *.h5* als gro\xDFe Dateien zu betrachten, sodass git-lfs sie tracken kann, ohne dass du weiteres konfigurieren musst.")},l(p){f=r(p,"\u270F\uFE0F  Wenn ein Repository mittels der Webinterface kreiert wird, wird die *.gitattributes* Datei automatisch gesetzt, um bestimmte Dateiendungen wie *.bin* und *.h5* als gro\xDFe Dateien zu betrachten, sodass git-lfs sie tracken kann, ohne dass du weiteres konfigurieren musst.")},m(p,u){a(p,f,u)},d(p){p&&t(f)}}}function Lh(P){let f,p;return f=new H({props:{code:`On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." 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`,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`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Vh(P){let f,p;return f=new H({props:{code:`On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." 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`,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`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Uh(P){let f,p,u,g,$,R,S,j,C,T,A,b,z,_;return f=new H({props:{code:`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 for commit:

`,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:

`}}),{c(){E(f.$$.fragment),p=m(),u=o("p"),g=i("Da sehen wir, dass alle Dateien "),$=o("code"),R=i("Git"),S=i(" als Handler haben. Nur die "),j=o("em"),C=i("t5_model.h5"),T=i(" hat "),A=o("code"),b=i("LFS"),z=i(". Sehr gut!")},l(w){y(f.$$.fragment,w),p=c(w),u=l(w,"P",{});var I=d(u);g=r(I,"Da sehen wir, dass alle Dateien "),$=l(I,"CODE",{});var F=d($);R=r(F,"Git"),F.forEach(t),S=r(I," als Handler haben. Nur die "),j=l(I,"EM",{});var W=d(j);C=r(W,"t5_model.h5"),W.forEach(t),T=r(I," hat "),A=l(I,"CODE",{});var B=d(A);b=r(B,"LFS"),B.forEach(t),z=r(I,". Sehr gut!"),I.forEach(t)},m(w,I){D(f,w,I),a(w,p,I),a(w,u,I),n(u,g),n(u,$),n($,R),n(u,S),n(u,j),n(j,C),n(u,T),n(u,A),n(A,b),n(u,z),_=!0},i(w){_||(v(f.$$.fragment,w),_=!0)},o(w){k(f.$$.fragment,w),_=!1},d(w){M(f,w),w&&t(p),w&&t(u)}}}function Kh(P){let f,p,u,g,$,R,S,j,C,T,A,b,z,_,w,I,F;return f=new H({props:{code:`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 for commit:

`,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:

`}}),{c(){E(f.$$.fragment),p=m(),u=o("p"),g=i("Da sehen wir, dass alle Dateien "),$=o("code"),R=i("Git"),S=i(" als Handler haben. Nur die "),j=o("em"),C=i("pytorch_model.bin"),T=i(" und "),A=o("em"),b=i("sentencepiece.bpe.model"),z=i(" Dateien haben "),_=o("code"),w=i("LFS"),I=i(". Toll!")},l(W){y(f.$$.fragment,W),p=c(W),u=l(W,"P",{});var B=d(u);g=r(B,"Da sehen wir, dass alle Dateien "),$=l(B,"CODE",{});var V=d($);R=r(V,"Git"),V.forEach(t),S=r(B," als Handler haben. Nur die "),j=l(B,"EM",{});var Y=d(j);C=r(Y,"pytorch_model.bin"),Y.forEach(t),T=r(B," und "),A=l(B,"EM",{});var re=d(A);b=r(re,"sentencepiece.bpe.model"),re.forEach(t),z=r(B," Dateien haben "),_=l(B,"CODE",{});var U=d(_);w=r(U,"LFS"),U.forEach(t),I=r(B,". Toll!"),B.forEach(t)},m(W,B){D(f,W,B),a(W,p,B),a(W,u,B),n(u,g),n(u,$),n($,R),n(u,S),n(u,j),n(j,C),n(u,T),n(u,A),n(A,b),n(u,z),n(u,_),n(_,w),n(u,I),F=!0},i(W){F||(v(f.$$.fragment,W),F=!0)},o(W){k(f.$$.fragment,W),F=!1},d(W){M(f,W),W&&t(p),W&&t(u)}}}function xh(P){let f,p;return f=new H({props:{code:`[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`,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`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Zh(P){let f,p;return f=new H({props:{code:`[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`,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`}}),{c(){E(f.$$.fragment)},l(u){y(f.$$.fragment,u)},m(u,g){D(f,u,g),p=!0},i(u){p||(v(f.$$.fragment,u),p=!0)},o(u){k(f.$$.fragment,u),p=!1},d(u){M(f,u)}}}function Yh(P){let f,p,u,g,$,R,S,j,C,T,A,b,z;return{c(){f=o("p"),p=i("Wenn alles durch ist, k\xF6nnen wir uns den Repository anschauen und die eben hinzugef\xFCgten Dateien finden:"),u=m(),g=o("div"),$=o("img"),S=m(),j=o("p"),C=i("Mit der UI kannst du die Modell-Dateien und die Commits explorieren, um die Differenz bei jedem Commit zu sehen:"),T=m(),A=o("div"),b=o("img"),this.h()},l(_){f=l(_,"P",{});var w=d(f);p=r(w,"Wenn alles durch ist, k\xF6nnen wir uns den Repository anschauen und die eben hinzugef\xFCgten Dateien finden:"),w.forEach(t),u=c(_),g=l(_,"DIV",{class:!0});var I=d(g);$=l(I,"IMG",{src:!0,alt:!0,width:!0}),I.forEach(t),S=c(_),j=l(_,"P",{});var F=d(j);C=r(F,"Mit der UI kannst du die Modell-Dateien und die Commits explorieren, um die Differenz bei jedem Commit zu sehen:"),F.forEach(t),T=c(_),A=l(_,"DIV",{class:!0});var W=d(A);b=l(W,"IMG",{src:!0,alt:!0,width:!0}),W.forEach(t),this.h()},h(){We($.src,R="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model_tf.png")||h($,"src",R),h($,"alt","The 'Files and versions' tab now contains all the recently uploaded files."),h($,"width","80%"),h(g,"class","flex justify-center"),We(b.src,z="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffstf.gif")||h(b,"src",z),h(b,"alt","The diff introduced by the recent commit."),h(b,"width","80%"),h(A,"class","flex justify-center")},m(_,w){a(_,f,w),n(f,p),a(_,u,w),a(_,g,w),n(g,$),a(_,S,w),a(_,j,w),n(j,C),a(_,T,w),a(_,A,w),n(A,b)},d(_){_&&t(f),_&&t(u),_&&t(g),_&&t(S),_&&t(j),_&&t(T),_&&t(A)}}}function Jh(P){let f,p,u,g,$,R,S,j,C,T,A,b,z;return{c(){f=o("p"),p=i("Wenn alles durch ist, k\xF6nnen wir uns den Repository anschauen und die eben hinzugef\xFCgten Dateien finden:"),u=m(),g=o("div"),$=o("img"),S=m(),j=o("p"),C=i("Mit der UI kannst du die Modell-Dateien und die Commits explorieren, um die Differenz bei jedem Commit zu sehen:"),T=m(),A=o("div"),b=o("img"),this.h()},l(_){f=l(_,"P",{});var w=d(f);p=r(w,"Wenn alles durch ist, k\xF6nnen wir uns den Repository anschauen und die eben hinzugef\xFCgten Dateien finden:"),w.forEach(t),u=c(_),g=l(_,"DIV",{class:!0});var I=d(g);$=l(I,"IMG",{src:!0,alt:!0,width:!0}),I.forEach(t),S=c(_),j=l(_,"P",{});var F=d(j);C=r(F,"Mit der UI kannst du die Modell-Dateien und die Commits explorieren, um die Differenz bei jedem Commit zu sehen:"),F.forEach(t),T=c(_),A=l(_,"DIV",{class:!0});var W=d(A);b=l(W,"IMG",{src:!0,alt:!0,width:!0}),W.forEach(t),this.h()},h(){We($.src,R="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/full_model.png")||h($,"src",R),h($,"alt","The 'Files and versions' tab now contains all the recently uploaded files."),h($,"width","80%"),h(g,"class","flex justify-center"),We(b.src,z="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/diffs.gif")||h(b,"src",z),h(b,"alt","The diff introduced by the recent commit."),h(b,"width","80%"),h(A,"class","flex justify-center")},m(_,w){a(_,f,w),n(f,p),a(_,u,w),a(_,g,w),n(g,$),a(_,S,w),a(_,j,w),n(j,C),a(_,T,w),a(_,A,w),n(A,b)},d(_){_&&t(f),_&&t(u),_&&t(g),_&&t(S),_&&t(j),_&&t(T),_&&t(A)}}}function Xh(P){let f,p,u,g,$,R,S,j,C,T,A,b,z,_,w,I,F,W,B,V,Y,re,U,se,be,ne,L,ie,oe,K,ke,le,N,G,ve,J,x,me,Ne,ce,we,X,Q,fi,Qe,O,q,mt,Be,mi,Z,ci,ct,pi,hi,et,ae,te,tt,ee,ba,_r,ka,va,gr,wa,$a,br,za,Ea,_i,ya,Da,Ws,Jt,Ns,gi,Ma,Bs,Xt,Fs,pt,ja,Qt,Aa,Pa,qs,bi,Oa,Gs,$e,ze,ki,ht,Ra,kr,Ta,Ca,Ls,vi,Sa,Vs,Ee,ye,wi,Fe,Ha,vr,Ia,Wa,wr,Na,Ba,Us,en,Ks,_t,Fa,$r,qa,Ga,xs,tn,Zs,gt,La,zr,Va,Ua,Ys,nn,Js,bt,Ka,Er,xa,Za,Xs,rn,Qs,kt,Ya,yr,sn,Ja,Xa,eo,$i,Qa,to,zi,vt,no,qe,ed,Dr,td,nd,on,id,rd,io,pe,sd,Mr,od,ld,ln,jr,ad,dd,an,Ar,ud,fd,ro,nt,wt,Pr,dn,md,un,cd,Or,pd,hd,so,he,_d,Rr,gd,bd,Tr,kd,vd,Cr,wd,$d,oo,fn,lo,$t,zd,Sr,Ed,yd,ao,mn,uo,zt,Dd,Hr,Md,jd,fo,Et,Ad,Ir,Pd,Od,mo,cn,co,Ge,Rd,Wr,Td,Cd,Nr,Sd,Hd,po,pn,ho,Le,Id,Br,Wd,Nd,Fr,Bd,Fd,_o,Ve,Ei,qr,qd,Gd,Ld,yi,Gr,Vd,Ud,Kd,de,Lr,xd,Zd,Vr,Yd,Jd,Ur,Xd,Qd,Kr,eu,tu,xr,nu,iu,go,Di,ru,bo,it,yt,Zr,hn,su,Yr,ou,ko,Mi,lu,vo,Dt,au,_n,du,uu,wo,gn,bn,Om,$o,ji,fu,zo,Ai,mu,Eo,Pi,cu,yo,kn,vn,Rm,Do,Oi,pu,Mo,wn,$n,Tm,jo,Ri,hu,Ao,Ue,_u,Jr,gu,bu,Xr,ku,vu,Po,zn,En,Cm,Oo,Ti,wu,Ro,rt,Mt,Qr,yn,$u,es,zu,To,jt,Eu,Dn,yu,Du,Co,At,Mu,ts,ju,Au,So,st,Pt,ns,Mn,Pu,jn,Ou,is,Ru,Tu,Ho,Ot,Cu,rs,Su,Hu,Io,Ci,Iu,Wo,An,No,ue,Wu,ss,Nu,Bu,os,Fu,qu,ls,Gu,Lu,as,Vu,Uu,Bo,Rt,Si,ds,Ku,xu,Zu,fe,us,Yu,Ju,fs,Xu,Qu,ms,ef,tf,cs,nf,rf,ps,sf,of,Fo,ot,Tt,hs,Pn,lf,On,af,_s,df,uf,qo,Ct,ff,gs,mf,cf,Go,St,pf,Rn,hf,_f,Lo,Hi,gf,Vo,Tn,Uo,_e,bf,bs,kf,vf,ks,wf,$f,vs,zf,Ef,Ko,Ii,yf,xo,Cn,Zo,Ke,Df,ws,Mf,jf,Sn,Af,Pf,Yo,Wi,Of,Jo,Ni,Rf,Xo,Hn,Qo,Bi,Tf,el,In,tl,Ht,Cf,$s,Sf,Hf,nl,Wn,il,Fi,If,rl,lt,It,zs,Nn,Wf,Es,Nf,sl,qi,Bf,ol,Wt,Ff,Bn,qf,Gf,ll,Gi,Lf,al,Fn,dl,qn,ul,Li,Vf,fl,Gn,ml,xe,Uf,ys,Kf,xf,Ds,Zf,Yf,cl,Ln,pl,Ze,Jf,Ms,Xf,Qf,js,em,tm,hl,Vn,_l,Un,gl,ge,nm,As,im,rm,Ps,sm,om,Os,lm,am,bl,Nt,dm,Rs,um,fm,kl,Vi,mm,vl,De,Me,Ui,Bt,cm,Ts,pm,hm,wl,Kn,$l,je,Ae,Ki,Ft,zl,qt,_m,Cs,gm,bm,El,xn,yl,xi,km,Dl,Zn,Ml,Pe,Oe,Zi,Gt,vm,Ss,wm,$m,jl,Yn,Al,Re,Te,Yi,Lt,zm,Hs,Em,ym,Pl,Jn,Ol,Ce,Se,Ji,Xi,Dm,Rl,Xn,Tl,Qn,Cl,Qi,Sl;u=new Mh({props:{fw:P[0]}}),j=new Yt({});const Sm=[Ah,jh],ei=[];function Hm(e,s){return e[0]==="pt"?0:1}z=Hm(P),_=ei[z]=Sm[z](P),B=new Pm({props:{id:"9yY3RB_GSPM"}}),Be=new Yt({});const Im=[Oh,Ph],ti=[];function Wm(e,s){return e[0]==="pt"?0:1}ae=Wm(P),te=ti[ae]=Im[ae](P),Jt=new H({props:{code:`from huggingface_hub import notebook_login

notebook_login()`,highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> notebook_login

notebook_login()`}}),Xt=new H({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}});const Nm=[Th,Rh],ni=[];function Bm(e,s){return e[0]==="pt"?0:1}$e=Bm(P),ze=ni[$e]=Nm[$e](P);const Fm=[Sh,Ch],ii=[];function qm(e,s){return e[0]==="pt"?0:1}Ee=qm(P),ye=ii[Ee]=Fm[Ee](P),en=new H({props:{code:'model.push_to_hub("dummy-model")',highlighted:'model.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)'}}),tn=new H({props:{code:'tokenizer.push_to_hub("dummy-model")',highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>)'}}),nn=new H({props:{code:'tokenizer.push_to_hub("dummy-model", organization="huggingface")',highlighted:'tokenizer.push_to_hub(<span class="hljs-string">&quot;dummy-model&quot;</span>, organization=<span class="hljs-string">&quot;huggingface&quot;</span>)'}}),rn=new H({props:{code:'tokenizer.push_to_hub("dummy-model", organization="huggingface", use_auth_token="<TOKEN>")',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>)'}});function Gm(e,s){return e[0]==="pt"?Ih:Hh}let Hl=Gm(P),at=Hl(P);vt=new vh({props:{$$slots:{default:[Wh]},$$scope:{ctx:P}}}),dn=new Yt({}),fn=new H({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),mn=new H({props:{code:`from huggingface_hub import (
    # User-Management
    login,
    logout,
    whoami,

    # Repository erstellen und managen
    create_repo,
    delete_repo,
    update_repo_visibility,

    # Methoden, um inhaltliche Information abzufragen/abzu\xE4ndern
    list_models,
    list_datasets,
    list_metrics,
    list_repo_files,
    upload_file,
    delete_file,
)`,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\xE4ndern</span>
    list_models,
    list_datasets,
    list_metrics,
    list_repo_files,
    upload_file,
    delete_file,
)`}}),cn=new H({props:{code:`from huggingface_hub import create_repo

create_repo("dummy-model")`,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>)`}}),pn=new H({props:{code:`from huggingface_hub import create_repo

create_repo("dummy-model", organization="huggingface")`,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>)`}}),hn=new Yt({}),yn=new Yt({}),Mn=new Yt({}),An=new H({props:{code:`from huggingface_hub import upload_file

upload_file(
    "<path_to_file>/config.json",
    path_in_repo="config.json",
    repo_id="<namespace>/dummy-model",
)`,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>,
)`}}),Pn=new Yt({}),Tn=new H({props:{code:`from huggingface_hub import Repository

repo = Repository("<path_to_dummy_folder>", clone_from="<namespace>/dummy-model")`,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>)`}}),Cn=new H({props:{code:`repo.git_pull()
repo.git_add()
repo.git_commit()
repo.git_push()
repo.git_tag()`,highlighted:`repo.git_pull()
repo.git_add()
repo.git_commit()
repo.git_push()
repo.git_tag()`}}),Hn=new H({props:{code:"repo.git_pull()",highlighted:"repo.git_pull()"}}),In=new H({props:{code:`model.save_pretrained("<path_to_dummy_folder>")
tokenizer.save_pretrained("<path_to_dummy_folder>")`,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>)`}}),Wn=new H({props:{code:`repo.git_add()
repo.git_commit("Add model and tokenizer files")
repo.git_push()`,highlighted:`repo.git_add()
repo.git_commit(<span class="hljs-string">&quot;Add model and tokenizer files&quot;</span>)
repo.git_push()`}}),Nn=new Yt({}),Fn=new H({props:{code:"git lfs install",highlighted:"git lfs install"}}),qn=new H({props:{code:`Updated git hooks.
Git LFS initialized.`,highlighted:`Updated git hooks.
Git LFS initialized.`}}),Gn=new H({props:{code:"git clone https://huggingface.co/<namespace>/<your-model-id>",highlighted:'git <span class="hljs-built_in">clone</span> https://huggingface.co/&lt;namespace&gt;/&lt;your-model-id&gt;'}}),Ln=new H({props:{code:"git clone https://huggingface.co/lysandre/dummy",highlighted:'git clone https:<span class="hljs-regexp">//</span>huggingface.co<span class="hljs-regexp">/lysandre/</span>dummy'}}),Vn=new H({props:{code:"cd dummy && ls",highlighted:'<span class="hljs-built_in">cd</span> dummy &amp;&amp; <span class="hljs-built_in">ls</span>'}}),Un=new H({props:{code:"README.md",highlighted:"README.md"}});const Lm=[Bh,Nh],ri=[];function Vm(e,s){return e[0]==="pt"?0:1}De=Vm(P),Me=ri[De]=Lm[De](P),Kn=new H({props:{code:"ls",highlighted:'<span class="hljs-built_in">ls</span>'}});const Um=[qh,Fh],si=[];function Km(e,s){return e[0]==="pt"?0:1}je=Km(P),Ae=si[je]=Um[je](P),Ft=new vh({props:{$$slots:{default:[Gh]},$$scope:{ctx:P}}}),xn=new H({props:{code:"git add .",highlighted:"git add ."}}),Zn=new H({props:{code:"git status",highlighted:"git status"}});const xm=[Vh,Lh],oi=[];function Zm(e,s){return e[0]==="pt"?0:1}Pe=Zm(P),Oe=oi[Pe]=xm[Pe](P),Yn=new H({props:{code:"git lfs status",highlighted:"git lfs status"}});const Ym=[Kh,Uh],li=[];function Jm(e,s){return e[0]==="pt"?0:1}Re=Jm(P),Te=li[Re]=Ym[Re](P),Jn=new H({props:{code:'git commit -m "First model version"',highlighted:'git commit -m <span class="hljs-string">&quot;First model version&quot;</span>'}});const Xm=[Zh,xh],ai=[];function Qm(e,s){return e[0]==="pt"?0:1}Ce=Qm(P),Se=ai[Ce]=Xm[Ce](P),Xn=new H({props:{code:"git push",highlighted:"git push"}}),Qn=new H({props:{code:`Uploading LFS objects: 100% (1/1), 433 MB | 1.3 MB/s, done.
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 12 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 288.27 KiB | 6.27 MiB/s, done.
Total 9 (delta 1), reused 0 (delta 0), pack-reused 0
To https://huggingface.co/lysandre/dummy
   891b41d..b08aab1  main -> main`,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`}});function ec(e,s){return e[0]==="pt"?Jh:Yh}let Il=ec(P),dt=Il(P);return{c(){f=o("meta"),p=m(),E(u.$$.fragment),g=m(),$=o("h1"),R=o("a"),S=o("span"),E(j.$$.fragment),C=m(),T=o("span"),A=i("Vortrainierte Modelle teilen"),b=m(),_.c(),w=m(),I=o("p"),F=i(`Demn\xE4chst schauen wir uns an, wie man am einfachsten vortrainierte Modelle auf dem \u{1F917} 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.`),W=m(),E(B.$$.fragment),V=m(),Y=o("p"),re=i("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\xE4tze trainiert wurden, werden anderen Nutzer:innen helfen, weil man Zeit und Rechenressourcen spart und Zugang zu n\xFCtzlichen Trainingsartifakten bekommt. Also eventuell kannst du auch von der Arbeit anderer Nutzer:innen auch profitieren!"),U=m(),se=o("p"),be=i("Es gibt drei Wege, um Repositories zu neuen Modellen zu kreieren:"),ne=m(),L=o("ul"),ie=o("li"),oe=i("Mittels der "),K=o("code"),ke=i("push_to_hub"),le=i(" API"),N=m(),G=o("li"),ve=i("Mittels der "),J=o("code"),x=i("huggingface_hub"),me=i(" Python Bibliothek"),Ne=m(),ce=o("li"),we=i("Mittels der Web-Oberfl\xE4che"),X=m(),Q=o("p"),fi=i("Nachdem du einen Repository erstellst hast, kannst du die Dateien \xFCber git und git-lfs hochladen. Demn\xE4chst zeigen wir dir die genauen Schritte, um Modell-Repositories zu erstellenund Dateien hochzuladen."),Qe=m(),O=o("h2"),q=o("a"),mt=o("span"),E(Be.$$.fragment),mi=m(),Z=o("span"),ci=i("Hochladen mit der "),ct=o("code"),pi=i("push_to_hub"),hi=i(" API"),et=m(),te.c(),tt=m(),ee=o("p"),ba=i("Die einfachste Variante, um Dateien auf den Hub hochzuladen, ist mittels der "),_r=o("code"),ka=i("push_to_hub"),va=i(" API. Bevor du weitermachst, must du einen Autentifizierungstoken generieren, damit die "),gr=o("code"),wa=i("huggingface_hub"),$a=i(" API wei\xDFt, wer du bist und auf welche Namespaces du zugreifen darfst. Stell sicher, dass du in einer Umgebung mit "),br=o("code"),za=i("transformers"),Ea=i(" installiert bist (siehe "),_i=o("a"),ya=i("Setup"),Da=i("). Wenn du auf einem Notebook bist, kannst du diese Funktion benutzen, um dich einzuloggen:"),Ws=m(),E(Jt.$$.fragment),Ns=m(),gi=o("p"),Ma=i("Im Terminal kannst folgendes ausf\xFChren:"),Bs=m(),E(Xt.$$.fragment),Fs=m(),pt=o("p"),ja=i("In beiden F\xE4llen 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 "),Qt=o("a"),Aa=i("hier"),Pa=i(" erstellen."),qs=m(),bi=o("p"),Oa=i("Gro\xDFartig! Nun hast du deinen Autentifizierungstoken in deinem Cache-Ordner gespeichert. Lass uns ein paar Repositories erstellen!"),Gs=m(),ze.c(),ki=m(),ht=o("p"),Ra=i("Auf einer tieferen Ebene kann man auf Modelle, Tokenizers und Konfigurationen auf dem Model-Hub direkt zugreifen, indem man die Methode "),kr=o("code"),Ta=i("push_to_hub()"),Ca=i(` benutzt.
Diese Methode k\xFCmmert 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\xE4chst sehen werden).`),Ls=m(),vi=o("p"),Sa=i("Um uns eine Vorstellung zu schaffen, wie es funktioniert, lass uns zuerst ein Modell und einen Tokenizer initialisieren:"),Vs=m(),ye.c(),wi=m(),Fe=o("p"),Ha=i("Dir steht frei, was du mit diesen machst, z.B. Tokens zum Tokenizer hinzuzuf\xFCgen, das Modell zu trainineren oder zu finetunen. Wenn du mit dem Modell, Gewichten und Tokenizer zufrieden bist, kannst du die Methode "),vr=o("code"),Ia=i("push_to_hub()"),Wa=i(" vom "),wr=o("code"),Na=i("model"),Ba=i(" Objekt benutzten:"),Us=m(),E(en.$$.fragment),Ks=m(),_t=o("p"),Fa=i("Das wird den neuen Repository "),$r=o("code"),qa=i("dummy-model"),Ga=i(" in deinem Profil erstellen und den mit deinen Model-Dateien bef\xFCllen. Mach das gliche mit dem Tokenizer, sodass jetzt alle Dateien in diesem Repository verf\xFCgbar sind."),xs=m(),E(tn.$$.fragment),Zs=m(),gt=o("p"),La=i("Wenn du Teil einer Organisation bist, kannst du einfach das Argument "),zr=o("code"),Va=i("organization"),Ua=i(" mit eingeben, um die Artifakte auf den Namespace dieser Organisation hochzuladen."),Ys=m(),E(nn.$$.fragment),Js=m(),bt=o("p"),Ka=i("Wenn du einen bestimmten Hugging Face Token benutzten m\xF6chtest, kannst du ihn auch in der Methode "),Er=o("code"),xa=i("push_to_hub()"),Za=i(" spezifizieren:"),Xs=m(),E(rn.$$.fragment),Qs=m(),kt=o("p"),Ya=i("Nun geh auf den Model Hub, um dein hochgeladenes Modell zu finden: "),yr=o("em"),sn=o("a"),Ja=i("https://huggingface.co/user-or-organization/dummy-model"),Xa=i("."),eo=m(),$i=o("p"),Qa=i("Click auf den Tab \u201CFiles and versions\u201D und da solltest du die Dateien finden, die auf diesem Screenshot zu sehen sind:"),to=m(),at.c(),zi=m(),E(vt.$$.fragment),no=m(),qe=o("p"),ed=i("Wie du schon gesehen hast, akzeptiert die Methode "),Dr=o("code"),td=i("push_to_hub()"),nd=i(" mehrere Argumente. Dies erlaub das Hochladen auf den Namespace eines spezifischen Repositorys oder einer Organisation, sowie die M\xF6glichkeit, einen anderen API Token zu benutzten. Wir empfehlen dir, die Dokumentation der Methode direkt auf "),on=o("a"),id=i("\u{1F917} Transformers documentation"),rd=i(" zu lesen, um dir eine Vorstellung zu schaffen, was alles damit m\xF6glich ist."),io=m(),pe=o("p"),sd=i("Die "),Mr=o("code"),od=i("push_to_hub()"),ld=i(" Methode funktioniert im Hintergrund mit der Python Bibliothek "),ln=o("a"),jr=o("code"),ad=i("huggingface_hub"),dd=i(", die eine direkte API zum Hugging Face Hub anbietet. Sie ist auch drin in der \u{1F917} Transformers Bibliothek und mehreren anderen Machine Learning Bibliotheken, z.B. "),an=o("a"),Ar=o("code"),ud=i("allenlp"),fd=i(". Obwohl wir in diesem Kapitel den Fokus auf die Integration mit \u{1F917} 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!"),ro=m(),nt=o("h2"),wt=o("a"),Pr=o("span"),E(dn.$$.fragment),md=m(),un=o("span"),cd=i("Verwendung der "),Or=o("code"),pd=i("huggingface_hub"),hd=i(" Python Bibliothek"),so=i(`

Die \`huggingface_hub\` Python Bibliothek ist ein Python Packet, das einige Werkzeuge f\xFCr das Nutzen von Modell- und Datasethub anbietet.  Es bietet simple Methoden und Klassen f\xFCr g\xE4ngige 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.
`),he=o("p"),_d=i("\xC4hnlich wie bei der Verwendung der"),Rr=o("code"),gd=i("push_to_hub"),bd=i(" API ist es bei diesen Aktionen erforderlich, dass dein API Token schon in deinem Cache gespeichert ist. Daf\xFCr musst du den "),Tr=o("code"),kd=i("login"),vd=i(" Befehl aus der CLI ausf\xFChren so wie in dem vorherigen Teil erkl\xE4rt wurde (nochmal: Vergiss nicht, das "),Cr=o("code"),wd=i("!"),$d=i(" Zeichen vor die Befehle zu setzen, wenn du im Google Colab arbeitest)."),oo=m(),E(fn.$$.fragment),lo=m(),$t=o("p"),zd=i("Die "),Sr=o("code"),Ed=i("huggingface_hub"),yd=i(" Bibliothek bietet mehrere n\xFCtzliche Methoden und Klassen an. Erstens gibt es einige Methoden, um das Erstellen, L\xF6schen, usw. von Repositories durchzuf\xFChren:"),ao=m(),E(mn.$$.fragment),uo=m(),zt=o("p"),Dd=i("Au\xDFerdem gibt es die sehr m\xE4chtige "),Hr=o("code"),Md=i("Repository"),jd=i(" Klasse, um einen lokalen Repository zu managen. Demn\xE4chst werden wir uns mit diesen Methoden und dieser Klasse besch\xE4ftigen, um zu verstehen, wie man die am besten nutzt."),fo=m(),Et=o("p"),Ad=i("Mit der "),Ir=o("code"),Pd=i("create_repo"),Od=i(" Methode kann ein neuer Repository auf dem Hub erstellt werden:"),mo=m(),E(cn.$$.fragment),co=m(),Ge=o("p"),Rd=i("Das erstellt den Repository "),Wr=o("code"),Td=i("dummy-model"),Cd=i(" unter deinem Namespace. Wenn du m\xF6chtest, kannst du auch die Organisation spezifizieren, zu der der Repository geh\xF6ren sollte, indem du das "),Nr=o("code"),Sd=i("organization"),Hd=i(" Argument setzt:"),po=m(),E(pn.$$.fragment),ho=m(),Le=o("p"),Id=i("Das erstellt den Repository "),Br=o("code"),Wd=i("dummy-model"),Nd=i(" unter dem "),Fr=o("code"),Bd=i("huggingface"),Fd=i(` Namespace \u2013 angenommen du geh\xF6rst zu dieser Organisation.
Andere eventuell n\xFCtzliche Argumente sind:`),_o=m(),Ve=o("ul"),Ei=o("li"),qr=o("code"),qd=i("private"),Gd=i(": um zu spezifizieren, ob der Repository f\xFCr andere sichtbar sein sollte oder nicht."),Ld=m(),yi=o("li"),Gr=o("code"),Vd=i("token"),Ud=i(": um den Token, der im Zwischenspeicher (Cache) liegt, mit einem neuen Token zu \xFCberscheiben."),Kd=m(),de=o("li"),Lr=o("code"),xd=i("repo_type"),Zd=i(": zum Ausw\xE4hlen, ob du einen "),Vr=o("code"),Yd=i("dataset"),Jd=i(" oder einen "),Ur=o("code"),Xd=i("space"),Qd=i(" anstatt von einem Modell kreieren m\xF6chtest. Erlaubte Werte sind "),Kr=o("code"),eu=i('"dataset"'),tu=i(" und "),xr=o("code"),nu=i('"space"'),iu=i("."),go=m(),Di=o("p"),ru=i("Nachdem der Repository erstellt wurde, k\xF6nnen wir Dateien hinzuf\xFCgen! Spring zum n\xE4chsten Abschnitt, um drei Varianten dazu zu lernen, wie man das machen kann."),bo=m(),it=o("h2"),yt=o("a"),Zr=o("span"),E(hn.$$.fragment),su=m(),Yr=o("span"),ou=i("Mit der Webinterface"),ko=m(),Mi=o("p"),lu=i("Die Webinterface bietet Tools an, um Repositories direkt auf dem Hub zu managen. Damit kannst du ganz einfach Repositories erstellen, Dateien hinzuf\xFCgen (sogar gro\xDFe Dateien), Modelle explorieren, Unterschiede (\u201Cdiffs\u201D) visualisieren und viel mehr."),vo=m(),Dt=o("p"),au=i("Um einen Repository zu erstellen, geh auf "),_n=o("a"),du=i("huggingface.co/new"),uu=i(":"),wo=m(),gn=o("div"),bn=o("img"),$o=m(),ji=o("p"),fu=i("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\xF6rst. Wenn du eine Organisation ausw\xE4hlst, wird das Modell auf der Seite der Organisation pr\xE4sentiert und jedes Mitglied der Organisation wird zu diesem Repository beitragen k\xF6nnen."),zo=m(),Ai=o("p"),mu=i("Als n\xE4chstes gib den Namen deines Modells ein. So wird der Repository auch hei\xDFen. Zuletzt kannst du spezifizieren, ob das Modell \xF6ffentlich oder privat sein soll. Private Modelle sind von der \xD6ffentlichkeit unsichtbar."),Eo=m(),Pi=o("p"),cu=i("Nach der Erstellung des Repositorys solltest du so eine Seite sehen k\xF6nnen:"),yo=m(),kn=o("div"),vn=o("img"),Do=m(),Oi=o("p"),pu=i("Hier wird dein Modell gehostet. Um mit dem Auff\xFCllen zu beginnen, kannst du direkt \xFCber die Weboberfl\xE4che eine README-Datei hinzuf\xFCgen."),Mo=m(),wn=o("div"),$n=o("img"),jo=m(),Ri=o("p"),hu=i(`Die README-Datei ist im Markdown Format \u2014 du kannst dich damit gerne austoben!
Der dritte Teil dieses Kapitels zielt darauf hin, eine \u201Cmodel card\u201D (Steckbrief) zu bauen. Steckbriefe haben eine entscheidende Relevanz, um dein Modell wertvoll zu machen, denn du kannst dort anderen erz\xE4hlen, was das Modell kann.`),Ao=m(),Ue=o("p"),_u=i("Wenn du dir den \u201CFiles and versions\u201D Tab anschaust, wirst du sehen, dass noch nicht viele Dateien darauf sind \u2013 n\xE4mlich nur die von dir eben kreierte "),Jr=o("em"),gu=i("README.md"),bu=i(" und die "),Xr=o("em"),ku=i(".gitattributes"),vu=i(" (wo gro\xDFe Dateien geloggt werden)."),Po=m(),zn=o("div"),En=o("img"),Oo=m(),Ti=o("p"),wu=i("Gleich werden wir sehen, wie wir neue Dateien hinzuf\xFCgen k\xF6nnen."),Ro=m(),rt=o("h2"),Mt=o("a"),Qr=o("span"),E(yn.$$.fragment),$u=m(),es=o("span"),zu=i("Hochladen von Modell-Dateien"),To=m(),jt=o("p"),Eu=i("Das System zum Managen der Dateien auf Hugging Face Hub basiert auf git f\xFCr normale Dateien und auf git-lfs ("),Dn=o("a"),yu=i("Git Large File Storage"),Du=i(") f\xFCr gr\xF6\xDFere Dateien."),Co=m(),At=o("p"),Mu=i("Im n\xE4chsten Teil schauen wir uns drei M\xF6glichkeitein an, um Dateien mittels "),ts=o("code"),ju=i("huggingface_hub"),Au=i(" und git-Befehle auf den Hub hochzuladen."),So=m(),st=o("h3"),Pt=o("a"),ns=o("span"),E(Mn.$$.fragment),Pu=m(),jn=o("span"),Ou=i("Die "),is=o("code"),Ru=i("upload_file"),Tu=i(" Variante"),Ho=m(),Ot=o("p"),Cu=i("Um "),rs=o("code"),Su=i("upload_file"),Hu=i(` zu verwenden, muss man nicht unbedingt git und git-lfs installiert haben. Die Funktion l\xE4dt Dateien auf den \u{1F917} Hub mittels HTTP POST Anfragen. Eine Einschr\xE4nkunf dieser Variante ist, dass man nur mit Dateien unter 5GB gro\xDF arbeiten kann.
Wenn deine Dateien gr\xF6\xDFer als 5GB sind, nutz eine von den folgenden zwei Methoden.`),Io=m(),Ci=o("p"),Iu=i("Die API kann folgenderma\xDFen benutzt werden:"),Wo=m(),E(An.$$.fragment),No=m(),ue=o("p"),Wu=i("Das wird die "),ss=o("code"),Nu=i("config.json"),Bu=i(" Datei in "),os=o("code"),Fu=i("<path_to_file>"),qu=i(" auf das Root-Verzeichnis vom Repository als "),ls=o("code"),Gu=i("config.json"),Lu=i(" vom "),as=o("code"),Vu=i("dummy-model"),Uu=i(` Repository.
Andere n\xFCtzliche Argumente :`),Bo=m(),Rt=o("ul"),Si=o("li"),ds=o("code"),Ku=i("token"),xu=i(", um den Token zu \xFCberscheiben, der in deinem Cache gespeichert ist"),Zu=m(),fe=o("li"),us=o("code"),Yu=i("repo_type"),Ju=i(", wenn du anstatt von einem Modell Dateien auf einen "),fs=o("code"),Xu=i("dataset"),Qu=i(" oder "),ms=o("code"),ef=i("space"),tf=i(" hochladen m\xF6chtest. Valide Werte sind "),cs=o("code"),nf=i('"dataset"'),rf=i(" und "),ps=o("code"),sf=i('"space"'),of=i("."),Fo=m(),ot=o("h3"),Tt=o("a"),hs=o("span"),E(Pn.$$.fragment),lf=m(),On=o("span"),af=i("Die "),_s=o("code"),df=i("Repository"),uf=i(" Klasse"),qo=m(),Ct=o("p"),ff=i("Die "),gs=o("code"),mf=i("Repository"),cf=i(" Klasse verwaltet einen lokalen Repository so wie git. Sie abstrahiert aber die meisten schwierigen Punkte, auf die man sto\xDFen w\xFCrde, wenn man eine \xE4hnliche Funktionalit\xE4t mit git erreichen m\xF6chte."),Go=m(),St=o("p"),pf=i("Diese Klasse braucht git und git-lfs im System schon installiert. Also stell sicher, dass du git-lfs installiert hast (siehe "),Rn=o("a"),hf=i("hier"),_f=i(" f\xFCr Installationsanweisungen) und richte alles ein, bevor du loslegst."),Lo=m(),Hi=o("p"),gf=i("Um mit dem Repository rumspielen zu starten, k\xF6nnen wir den in einem lokalen Ordner initialisieren, in dem wir den Remote-Repository klonen:"),Vo=m(),E(Tn.$$.fragment),Uo=m(),_e=o("p"),bf=i("Das hat den Ordner "),bs=o("code"),kf=i("<path_to_dummy_folder>"),vf=i(" in unserem Arbeitsverzeichnis erstellt. Dieser Ordner enth\xE4lt bisher nur die "),ks=o("code"),wf=i(".gitattributes"),$f=i(" Datel, da diese die einzige Datei ist, die wir mit "),vs=o("code"),zf=i("create_repo"),Ef=i(" kreiert haben."),Ko=m(),Ii=o("p"),yf=i("Ab jetzt k\xF6nnen mehrere g\xE4ngige Methoden benutzten:"),xo=m(),E(Cn.$$.fragment),Zo=m(),Ke=o("p"),Df=i("Und andere Optionen auch! Wir empfehlen, dass du dir die Dokumentation zu "),ws=o("code"),Mf=i("Repository"),jf=i(", die dir "),Sn=o("a"),Af=i("hier"),Pf=i(" zur Verf\xFCgung steht, anschaust, um dir eine \xDCbersicht aller verf\xFCgbaren Methoden zu verschaffen."),Yo=m(),Wi=o("p"),Of=i("Bisher haben wir ein Modell und einen Tokenizer, die wir gerne auf den Hub pushen w\xFCrden. Wir haben auch den Repository geklont, sodass wir die Dateien in dem Repository speichern k\xF6nnen."),Jo=m(),Ni=o("p"),Rf=i("Zuerst stellen wir sicher, dass unser lokaler Repository einen aktuellen Stand hat, in dem wir die letzten \xC4nderungen pullen:"),Xo=m(),E(Hn.$$.fragment),Qo=m(),Bi=o("p"),Tf=i("Wenn das durch ist, speichern wir die Dateien vom Modell und Tokenizer:"),el=m(),E(In.$$.fragment),tl=m(),Ht=o("p"),Cf=i("Der Pfad "),$s=o("code"),Sf=i("<path_to_dummy_folder>"),Hf=i(" beinhaltet jetzt alle Modell- und Tokenizerdateien. Wir folgen dem g\xE4ngigen Git-Workflow, indem wir die Dateien in die \u201Cstaging area\u201D bringen, wir committen und pushen sie auf den hub:"),nl=m(),E(Wn.$$.fragment),il=m(),Fi=o("p"),If=i("Gl\xFCckwunsch! Du hast gerade deine ersten Dateien auf den Hub hochgeladen."),rl=m(),lt=o("h3"),It=o("a"),zs=o("span"),E(Nn.$$.fragment),Wf=m(),Es=o("span"),Nf=i("Die git-basierte Variante"),sl=m(),qi=o("p"),Bf=i("Das ist der einfachste Weg zum Hochladen von Dateien: Wir werden es direkt mit git und git-lfs tun. Der Gr\xF6\xDFtenteil der Schwierigkeit wird durch die fr\xFCheren Ans\xE4tze abstrahiert, aber es gibt ein paar Vorbehalte bei der folgenden Methode, deswegen werden wir einem komplexeren Anwendungsfall folgen."),ol=m(),Wt=o("p"),Ff=i("Um diese Klasse zu benutzten, mussen wir git und git-lfs installiert haben. Also stell sicher, dass du "),Bn=o("a"),qf=i("git-lfs"),Gf=i(" installiert und aufgesetzt hast, bevor du beginst."),ll=m(),Gi=o("p"),Lf=i("Zuerst initialisiere git-lfs:"),al=m(),E(Fn.$$.fragment),dl=m(),E(qn.$$.fragment),ul=m(),Li=o("p"),Vf=i("Danach musst du den Modell-Repository klonen:"),fl=m(),E(Gn.$$.fragment),ml=m(),xe=o("p"),Uf=i("Mein Username ist "),ys=o("code"),Kf=i("lysandre"),xf=i(" und ich habe den Modellnamen "),Ds=o("code"),Zf=i("dummy"),Yf=i(" benutzt. Also bei bei sieht der Befehl so aus:"),cl=m(),E(Ln.$$.fragment),pl=m(),Ze=o("p"),Jf=i("Ich habe jetzt einen Ordner namens "),Ms=o("em"),Xf=i("dummy"),Qf=i(" in meinem Arbeitsverzeichnis. Ich kann jetzt "),js=o("code"),em=i("cd"),tm=i(" in den Ordner und mir den Inhalt anschauen:"),hl=m(),E(Vn.$$.fragment),_l=m(),E(Un.$$.fragment),gl=m(),ge=o("p"),nm=i("Wenn du eben einen Repository mit der Hugging Face Hubs Methode "),As=o("code"),im=i("create_repo"),rm=i(" erstellt hast, dann sollte dieser Ordner nur eine versteckte "),Ps=o("code"),sm=i(".gitattributes"),om=i(" 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 "),Os=o("code"),lm=i(".gitattributes"),am=i(" enthalten \u2013 so wie hier angezeigt wird."),bl=m(),Nt=o("p"),dm=i("Das Hinzuf\xFCgen einer Datei mit normaler Gr\xF6\xDFe, z.B. Konfiguration- oder Vokabulardatei, wird so gemach wie in einem git-basierten System. Aber gr\xF6\xDFere Dateien m\xFCssen mit git-lfs registriert werden, um sie zu "),Rs=o("em"),um=i("huggingface.co"),fm=i(" zu pushen."),kl=m(),Vi=o("p"),mm=i("Lass uns kurz zur\xFCck zu Python, um ein Modell und einen Tokenizer zu generieren, die wir zu unserem dummy repository committen m\xF6chten:"),vl=m(),Me.c(),Ui=m(),Bt=o("p"),cm=i("Jetzt haben wir die Modell- und Tokenizer-Artifakte gespeichert und k\xF6nnen wir uns nochmal den "),Ts=o("em"),pm=i("dummy"),hm=i(" Ordner anschauen:"),wl=m(),E(Kn.$$.fragment),$l=m(),Ae.c(),Ki=m(),E(Ft.$$.fragment),zl=m(),qt=o("p"),_m=i("Nun k\xF6nnen wir weitermachen und so arbeiten wie wir es mit normalen Git Repositories machen. Wir k\xF6nnen die Dateien stagen mit dem Git-Befehl "),Cs=o("code"),gm=i("git add"),bm=i(":"),El=m(),E(xn.$$.fragment),yl=m(),xi=o("p"),km=i("Jetzt schauen wir, welche Dateien gestaged wurden:"),Dl=m(),E(Zn.$$.fragment),Ml=m(),Oe.c(),Zi=m(),Gt=o("p"),vm=i("\xC4hnlicherweise k\xF6nnen wir sicherstellen, dass git-lfs die richtigen Dateien trackt mit dem "),Ss=o("code"),wm=i("status"),$m=i(" Befehl:"),jl=m(),E(Yn.$$.fragment),Al=m(),Te.c(),Yi=m(),Lt=o("p"),zm=i("Lass uns mit den letzten Schritten weitermachen, indem wir die \xC4nderungen commiten und zum "),Hs=o("em"),Em=i("huggingface.co"),ym=i(" Remote-Repository pushen:"),Pl=m(),E(Jn.$$.fragment),Ol=m(),Se.c(),Ji=m(),Xi=o("p"),Dm=i("Das Pushen kann ein bisschen dauern, je nach dem wie schnell deine Internetverbindung ist und wie gro\xDF deine Dateien sind:"),Rl=m(),E(Xn.$$.fragment),Tl=m(),E(Qn.$$.fragment),Cl=m(),dt.c(),Qi=kh(),this.h()},l(e){const s=yh('[data-svelte="svelte-1phssyn"]',document.head);f=l(s,"META",{name:!0,content:!0}),s.forEach(t),p=c(e),y(u.$$.fragment,e),g=c(e),$=l(e,"H1",{class:!0});var di=d($);R=l(di,"A",{id:!0,class:!0,href:!0});var er=d(R);S=l(er,"SPAN",{});var tr=d(S);y(j.$$.fragment,tr),tr.forEach(t),er.forEach(t),C=c(di),T=l(di,"SPAN",{});var nr=d(T);A=r(nr,"Vortrainierte Modelle teilen"),nr.forEach(t),di.forEach(t),b=c(e),_.l(e),w=c(e),I=l(e,"P",{});var ir=d(I);F=r(ir,`Demn\xE4chst schauen wir uns an, wie man am einfachsten vortrainierte Modelle auf dem \u{1F917} 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.`),ir.forEach(t),W=c(e),y(B.$$.fragment,e),V=c(e),Y=l(e,"P",{});var Is=d(Y);re=r(Is,"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\xE4tze trainiert wurden, werden anderen Nutzer:innen helfen, weil man Zeit und Rechenressourcen spart und Zugang zu n\xFCtzlichen Trainingsartifakten bekommt. Also eventuell kannst du auch von der Arbeit anderer Nutzer:innen auch profitieren!"),Is.forEach(t),U=c(e),se=l(e,"P",{});var rr=d(se);be=r(rr,"Es gibt drei Wege, um Repositories zu neuen Modellen zu kreieren:"),rr.forEach(t),ne=c(e),L=l(e,"UL",{});var Ye=d(L);ie=l(Ye,"LI",{});var ui=d(ie);oe=r(ui,"Mittels der "),K=l(ui,"CODE",{});var sr=d(K);ke=r(sr,"push_to_hub"),sr.forEach(t),le=r(ui," API"),ui.forEach(t),N=c(Ye),G=l(Ye,"LI",{});var Vt=d(G);ve=r(Vt,"Mittels der "),J=l(Vt,"CODE",{});var or=d(J);x=r(or,"huggingface_hub"),or.forEach(t),me=r(Vt," Python Bibliothek"),Vt.forEach(t),Ne=c(Ye),ce=l(Ye,"LI",{});var tc=d(ce);we=r(tc,"Mittels der Web-Oberfl\xE4che"),tc.forEach(t),Ye.forEach(t),X=c(e),Q=l(e,"P",{});var nc=d(Q);fi=r(nc,"Nachdem du einen Repository erstellst hast, kannst du die Dateien \xFCber git und git-lfs hochladen. Demn\xE4chst zeigen wir dir die genauen Schritte, um Modell-Repositories zu erstellenund Dateien hochzuladen."),nc.forEach(t),Qe=c(e),O=l(e,"H2",{class:!0});var Wl=d(O);q=l(Wl,"A",{id:!0,class:!0,href:!0});var ic=d(q);mt=l(ic,"SPAN",{});var rc=d(mt);y(Be.$$.fragment,rc),rc.forEach(t),ic.forEach(t),mi=c(Wl),Z=l(Wl,"SPAN",{});var Nl=d(Z);ci=r(Nl,"Hochladen mit der "),ct=l(Nl,"CODE",{});var sc=d(ct);pi=r(sc,"push_to_hub"),sc.forEach(t),hi=r(Nl," API"),Nl.forEach(t),Wl.forEach(t),et=c(e),te.l(e),tt=c(e),ee=l(e,"P",{});var Je=d(ee);ba=r(Je,"Die einfachste Variante, um Dateien auf den Hub hochzuladen, ist mittels der "),_r=l(Je,"CODE",{});var oc=d(_r);ka=r(oc,"push_to_hub"),oc.forEach(t),va=r(Je," API. Bevor du weitermachst, must du einen Autentifizierungstoken generieren, damit die "),gr=l(Je,"CODE",{});var lc=d(gr);wa=r(lc,"huggingface_hub"),lc.forEach(t),$a=r(Je," API wei\xDFt, wer du bist und auf welche Namespaces du zugreifen darfst. Stell sicher, dass du in einer Umgebung mit "),br=l(Je,"CODE",{});var ac=d(br);za=r(ac,"transformers"),ac.forEach(t),Ea=r(Je," installiert bist (siehe "),_i=l(Je,"A",{href:!0});var dc=d(_i);ya=r(dc,"Setup"),dc.forEach(t),Da=r(Je,"). Wenn du auf einem Notebook bist, kannst du diese Funktion benutzen, um dich einzuloggen:"),Je.forEach(t),Ws=c(e),y(Jt.$$.fragment,e),Ns=c(e),gi=l(e,"P",{});var uc=d(gi);Ma=r(uc,"Im Terminal kannst folgendes ausf\xFChren:"),uc.forEach(t),Bs=c(e),y(Xt.$$.fragment,e),Fs=c(e),pt=l(e,"P",{});var Bl=d(pt);ja=r(Bl,"In beiden F\xE4llen 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 "),Qt=l(Bl,"A",{href:!0,rel:!0});var fc=d(Qt);Aa=r(fc,"hier"),fc.forEach(t),Pa=r(Bl," erstellen."),Bl.forEach(t),qs=c(e),bi=l(e,"P",{});var mc=d(bi);Oa=r(mc,"Gro\xDFartig! Nun hast du deinen Autentifizierungstoken in deinem Cache-Ordner gespeichert. Lass uns ein paar Repositories erstellen!"),mc.forEach(t),Gs=c(e),ze.l(e),ki=c(e),ht=l(e,"P",{});var Fl=d(ht);Ra=r(Fl,"Auf einer tieferen Ebene kann man auf Modelle, Tokenizers und Konfigurationen auf dem Model-Hub direkt zugreifen, indem man die Methode "),kr=l(Fl,"CODE",{});var cc=d(kr);Ta=r(cc,"push_to_hub()"),cc.forEach(t),Ca=r(Fl,` benutzt.
Diese Methode k\xFCmmert 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\xE4chst sehen werden).`),Fl.forEach(t),Ls=c(e),vi=l(e,"P",{});var pc=d(vi);Sa=r(pc,"Um uns eine Vorstellung zu schaffen, wie es funktioniert, lass uns zuerst ein Modell und einen Tokenizer initialisieren:"),pc.forEach(t),Vs=c(e),ye.l(e),wi=c(e),Fe=l(e,"P",{});var lr=d(Fe);Ha=r(lr,"Dir steht frei, was du mit diesen machst, z.B. Tokens zum Tokenizer hinzuzuf\xFCgen, das Modell zu trainineren oder zu finetunen. Wenn du mit dem Modell, Gewichten und Tokenizer zufrieden bist, kannst du die Methode "),vr=l(lr,"CODE",{});var hc=d(vr);Ia=r(hc,"push_to_hub()"),hc.forEach(t),Wa=r(lr," vom "),wr=l(lr,"CODE",{});var _c=d(wr);Na=r(_c,"model"),_c.forEach(t),Ba=r(lr," Objekt benutzten:"),lr.forEach(t),Us=c(e),y(en.$$.fragment,e),Ks=c(e),_t=l(e,"P",{});var ql=d(_t);Fa=r(ql,"Das wird den neuen Repository "),$r=l(ql,"CODE",{});var gc=d($r);qa=r(gc,"dummy-model"),gc.forEach(t),Ga=r(ql," in deinem Profil erstellen und den mit deinen Model-Dateien bef\xFCllen. Mach das gliche mit dem Tokenizer, sodass jetzt alle Dateien in diesem Repository verf\xFCgbar sind."),ql.forEach(t),xs=c(e),y(tn.$$.fragment,e),Zs=c(e),gt=l(e,"P",{});var Gl=d(gt);La=r(Gl,"Wenn du Teil einer Organisation bist, kannst du einfach das Argument "),zr=l(Gl,"CODE",{});var bc=d(zr);Va=r(bc,"organization"),bc.forEach(t),Ua=r(Gl," mit eingeben, um die Artifakte auf den Namespace dieser Organisation hochzuladen."),Gl.forEach(t),Ys=c(e),y(nn.$$.fragment,e),Js=c(e),bt=l(e,"P",{});var Ll=d(bt);Ka=r(Ll,"Wenn du einen bestimmten Hugging Face Token benutzten m\xF6chtest, kannst du ihn auch in der Methode "),Er=l(Ll,"CODE",{});var kc=d(Er);xa=r(kc,"push_to_hub()"),kc.forEach(t),Za=r(Ll," spezifizieren:"),Ll.forEach(t),Xs=c(e),y(rn.$$.fragment,e),Qs=c(e),kt=l(e,"P",{});var Vl=d(kt);Ya=r(Vl,"Nun geh auf den Model Hub, um dein hochgeladenes Modell zu finden: "),yr=l(Vl,"EM",{});var vc=d(yr);sn=l(vc,"A",{href:!0,rel:!0});var wc=d(sn);Ja=r(wc,"https://huggingface.co/user-or-organization/dummy-model"),wc.forEach(t),vc.forEach(t),Xa=r(Vl,"."),Vl.forEach(t),eo=c(e),$i=l(e,"P",{});var $c=d($i);Qa=r($c,"Click auf den Tab \u201CFiles and versions\u201D und da solltest du die Dateien finden, die auf diesem Screenshot zu sehen sind:"),$c.forEach(t),to=c(e),at.l(e),zi=c(e),y(vt.$$.fragment,e),no=c(e),qe=l(e,"P",{});var ar=d(qe);ed=r(ar,"Wie du schon gesehen hast, akzeptiert die Methode "),Dr=l(ar,"CODE",{});var zc=d(Dr);td=r(zc,"push_to_hub()"),zc.forEach(t),nd=r(ar," mehrere Argumente. Dies erlaub das Hochladen auf den Namespace eines spezifischen Repositorys oder einer Organisation, sowie die M\xF6glichkeit, einen anderen API Token zu benutzten. Wir empfehlen dir, die Dokumentation der Methode direkt auf "),on=l(ar,"A",{href:!0,rel:!0});var Ec=d(on);id=r(Ec,"\u{1F917} Transformers documentation"),Ec.forEach(t),rd=r(ar," zu lesen, um dir eine Vorstellung zu schaffen, was alles damit m\xF6glich ist."),ar.forEach(t),io=c(e),pe=l(e,"P",{});var Ut=d(pe);sd=r(Ut,"Die "),Mr=l(Ut,"CODE",{});var yc=d(Mr);od=r(yc,"push_to_hub()"),yc.forEach(t),ld=r(Ut," Methode funktioniert im Hintergrund mit der Python Bibliothek "),ln=l(Ut,"A",{href:!0,rel:!0});var Dc=d(ln);jr=l(Dc,"CODE",{});var Mc=d(jr);ad=r(Mc,"huggingface_hub"),Mc.forEach(t),Dc.forEach(t),dd=r(Ut,", die eine direkte API zum Hugging Face Hub anbietet. Sie ist auch drin in der \u{1F917} Transformers Bibliothek und mehreren anderen Machine Learning Bibliotheken, z.B. "),an=l(Ut,"A",{href:!0,rel:!0});var jc=d(an);Ar=l(jc,"CODE",{});var Ac=d(Ar);ud=r(Ac,"allenlp"),Ac.forEach(t),jc.forEach(t),fd=r(Ut,". Obwohl wir in diesem Kapitel den Fokus auf die Integration mit \u{1F917} 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!"),Ut.forEach(t),ro=c(e),nt=l(e,"H2",{class:!0});var Ul=d(nt);wt=l(Ul,"A",{id:!0,class:!0,href:!0});var Pc=d(wt);Pr=l(Pc,"SPAN",{});var Oc=d(Pr);y(dn.$$.fragment,Oc),Oc.forEach(t),Pc.forEach(t),md=c(Ul),un=l(Ul,"SPAN",{});var Kl=d(un);cd=r(Kl,"Verwendung der "),Or=l(Kl,"CODE",{});var Rc=d(Or);pd=r(Rc,"huggingface_hub"),Rc.forEach(t),hd=r(Kl," Python Bibliothek"),Kl.forEach(t),Ul.forEach(t),so=r(e,`

Die \`huggingface_hub\` Python Bibliothek ist ein Python Packet, das einige Werkzeuge f\xFCr das Nutzen von Modell- und Datasethub anbietet.  Es bietet simple Methoden und Klassen f\xFCr g\xE4ngige 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.
`),he=l(e,"P",{});var Kt=d(he);_d=r(Kt,"\xC4hnlich wie bei der Verwendung der"),Rr=l(Kt,"CODE",{});var Tc=d(Rr);gd=r(Tc,"push_to_hub"),Tc.forEach(t),bd=r(Kt," API ist es bei diesen Aktionen erforderlich, dass dein API Token schon in deinem Cache gespeichert ist. Daf\xFCr musst du den "),Tr=l(Kt,"CODE",{});var Cc=d(Tr);kd=r(Cc,"login"),Cc.forEach(t),vd=r(Kt," Befehl aus der CLI ausf\xFChren so wie in dem vorherigen Teil erkl\xE4rt wurde (nochmal: Vergiss nicht, das "),Cr=l(Kt,"CODE",{});var Sc=d(Cr);wd=r(Sc,"!"),Sc.forEach(t),$d=r(Kt," Zeichen vor die Befehle zu setzen, wenn du im Google Colab arbeitest)."),Kt.forEach(t),oo=c(e),y(fn.$$.fragment,e),lo=c(e),$t=l(e,"P",{});var xl=d($t);zd=r(xl,"Die "),Sr=l(xl,"CODE",{});var Hc=d(Sr);Ed=r(Hc,"huggingface_hub"),Hc.forEach(t),yd=r(xl," Bibliothek bietet mehrere n\xFCtzliche Methoden und Klassen an. Erstens gibt es einige Methoden, um das Erstellen, L\xF6schen, usw. von Repositories durchzuf\xFChren:"),xl.forEach(t),ao=c(e),y(mn.$$.fragment,e),uo=c(e),zt=l(e,"P",{});var Zl=d(zt);Dd=r(Zl,"Au\xDFerdem gibt es die sehr m\xE4chtige "),Hr=l(Zl,"CODE",{});var Ic=d(Hr);Md=r(Ic,"Repository"),Ic.forEach(t),jd=r(Zl," Klasse, um einen lokalen Repository zu managen. Demn\xE4chst werden wir uns mit diesen Methoden und dieser Klasse besch\xE4ftigen, um zu verstehen, wie man die am besten nutzt."),Zl.forEach(t),fo=c(e),Et=l(e,"P",{});var Yl=d(Et);Ad=r(Yl,"Mit der "),Ir=l(Yl,"CODE",{});var Wc=d(Ir);Pd=r(Wc,"create_repo"),Wc.forEach(t),Od=r(Yl," Methode kann ein neuer Repository auf dem Hub erstellt werden:"),Yl.forEach(t),mo=c(e),y(cn.$$.fragment,e),co=c(e),Ge=l(e,"P",{});var dr=d(Ge);Rd=r(dr,"Das erstellt den Repository "),Wr=l(dr,"CODE",{});var Nc=d(Wr);Td=r(Nc,"dummy-model"),Nc.forEach(t),Cd=r(dr," unter deinem Namespace. Wenn du m\xF6chtest, kannst du auch die Organisation spezifizieren, zu der der Repository geh\xF6ren sollte, indem du das "),Nr=l(dr,"CODE",{});var Bc=d(Nr);Sd=r(Bc,"organization"),Bc.forEach(t),Hd=r(dr," Argument setzt:"),dr.forEach(t),po=c(e),y(pn.$$.fragment,e),ho=c(e),Le=l(e,"P",{});var ur=d(Le);Id=r(ur,"Das erstellt den Repository "),Br=l(ur,"CODE",{});var Fc=d(Br);Wd=r(Fc,"dummy-model"),Fc.forEach(t),Nd=r(ur," unter dem "),Fr=l(ur,"CODE",{});var qc=d(Fr);Bd=r(qc,"huggingface"),qc.forEach(t),Fd=r(ur,` Namespace \u2013 angenommen du geh\xF6rst zu dieser Organisation.
Andere eventuell n\xFCtzliche Argumente sind:`),ur.forEach(t),_o=c(e),Ve=l(e,"UL",{});var fr=d(Ve);Ei=l(fr,"LI",{});var Mm=d(Ei);qr=l(Mm,"CODE",{});var Gc=d(qr);qd=r(Gc,"private"),Gc.forEach(t),Gd=r(Mm,": um zu spezifizieren, ob der Repository f\xFCr andere sichtbar sein sollte oder nicht."),Mm.forEach(t),Ld=c(fr),yi=l(fr,"LI",{});var jm=d(yi);Gr=l(jm,"CODE",{});var Lc=d(Gr);Vd=r(Lc,"token"),Lc.forEach(t),Ud=r(jm,": um den Token, der im Zwischenspeicher (Cache) liegt, mit einem neuen Token zu \xFCberscheiben."),jm.forEach(t),Kd=c(fr),de=l(fr,"LI",{});var He=d(de);Lr=l(He,"CODE",{});var Vc=d(Lr);xd=r(Vc,"repo_type"),Vc.forEach(t),Zd=r(He,": zum Ausw\xE4hlen, ob du einen "),Vr=l(He,"CODE",{});var Uc=d(Vr);Yd=r(Uc,"dataset"),Uc.forEach(t),Jd=r(He," oder einen "),Ur=l(He,"CODE",{});var Kc=d(Ur);Xd=r(Kc,"space"),Kc.forEach(t),Qd=r(He," anstatt von einem Modell kreieren m\xF6chtest. Erlaubte Werte sind "),Kr=l(He,"CODE",{});var xc=d(Kr);eu=r(xc,'"dataset"'),xc.forEach(t),tu=r(He," und "),xr=l(He,"CODE",{});var Zc=d(xr);nu=r(Zc,'"space"'),Zc.forEach(t),iu=r(He,"."),He.forEach(t),fr.forEach(t),go=c(e),Di=l(e,"P",{});var Yc=d(Di);ru=r(Yc,"Nachdem der Repository erstellt wurde, k\xF6nnen wir Dateien hinzuf\xFCgen! Spring zum n\xE4chsten Abschnitt, um drei Varianten dazu zu lernen, wie man das machen kann."),Yc.forEach(t),bo=c(e),it=l(e,"H2",{class:!0});var Jl=d(it);yt=l(Jl,"A",{id:!0,class:!0,href:!0});var Jc=d(yt);Zr=l(Jc,"SPAN",{});var Xc=d(Zr);y(hn.$$.fragment,Xc),Xc.forEach(t),Jc.forEach(t),su=c(Jl),Yr=l(Jl,"SPAN",{});var Qc=d(Yr);ou=r(Qc,"Mit der Webinterface"),Qc.forEach(t),Jl.forEach(t),ko=c(e),Mi=l(e,"P",{});var ep=d(Mi);lu=r(ep,"Die Webinterface bietet Tools an, um Repositories direkt auf dem Hub zu managen. Damit kannst du ganz einfach Repositories erstellen, Dateien hinzuf\xFCgen (sogar gro\xDFe Dateien), Modelle explorieren, Unterschiede (\u201Cdiffs\u201D) visualisieren und viel mehr."),ep.forEach(t),vo=c(e),Dt=l(e,"P",{});var Xl=d(Dt);au=r(Xl,"Um einen Repository zu erstellen, geh auf "),_n=l(Xl,"A",{href:!0,rel:!0});var tp=d(_n);du=r(tp,"huggingface.co/new"),tp.forEach(t),uu=r(Xl,":"),Xl.forEach(t),wo=c(e),gn=l(e,"DIV",{class:!0});var np=d(gn);bn=l(np,"IMG",{src:!0,alt:!0,width:!0}),np.forEach(t),$o=c(e),ji=l(e,"P",{});var ip=d(ji);fu=r(ip,"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\xF6rst. Wenn du eine Organisation ausw\xE4hlst, wird das Modell auf der Seite der Organisation pr\xE4sentiert und jedes Mitglied der Organisation wird zu diesem Repository beitragen k\xF6nnen."),ip.forEach(t),zo=c(e),Ai=l(e,"P",{});var rp=d(Ai);mu=r(rp,"Als n\xE4chstes gib den Namen deines Modells ein. So wird der Repository auch hei\xDFen. Zuletzt kannst du spezifizieren, ob das Modell \xF6ffentlich oder privat sein soll. Private Modelle sind von der \xD6ffentlichkeit unsichtbar."),rp.forEach(t),Eo=c(e),Pi=l(e,"P",{});var sp=d(Pi);cu=r(sp,"Nach der Erstellung des Repositorys solltest du so eine Seite sehen k\xF6nnen:"),sp.forEach(t),yo=c(e),kn=l(e,"DIV",{class:!0});var op=d(kn);vn=l(op,"IMG",{src:!0,alt:!0,width:!0}),op.forEach(t),Do=c(e),Oi=l(e,"P",{});var lp=d(Oi);pu=r(lp,"Hier wird dein Modell gehostet. Um mit dem Auff\xFCllen zu beginnen, kannst du direkt \xFCber die Weboberfl\xE4che eine README-Datei hinzuf\xFCgen."),lp.forEach(t),Mo=c(e),wn=l(e,"DIV",{class:!0});var ap=d(wn);$n=l(ap,"IMG",{src:!0,alt:!0,width:!0}),ap.forEach(t),jo=c(e),Ri=l(e,"P",{});var dp=d(Ri);hu=r(dp,`Die README-Datei ist im Markdown Format \u2014 du kannst dich damit gerne austoben!
Der dritte Teil dieses Kapitels zielt darauf hin, eine \u201Cmodel card\u201D (Steckbrief) zu bauen. Steckbriefe haben eine entscheidende Relevanz, um dein Modell wertvoll zu machen, denn du kannst dort anderen erz\xE4hlen, was das Modell kann.`),dp.forEach(t),Ao=c(e),Ue=l(e,"P",{});var mr=d(Ue);_u=r(mr,"Wenn du dir den \u201CFiles and versions\u201D Tab anschaust, wirst du sehen, dass noch nicht viele Dateien darauf sind \u2013 n\xE4mlich nur die von dir eben kreierte "),Jr=l(mr,"EM",{});var up=d(Jr);gu=r(up,"README.md"),up.forEach(t),bu=r(mr," und die "),Xr=l(mr,"EM",{});var fp=d(Xr);ku=r(fp,".gitattributes"),fp.forEach(t),vu=r(mr," (wo gro\xDFe Dateien geloggt werden)."),mr.forEach(t),Po=c(e),zn=l(e,"DIV",{class:!0});var mp=d(zn);En=l(mp,"IMG",{src:!0,alt:!0,width:!0}),mp.forEach(t),Oo=c(e),Ti=l(e,"P",{});var cp=d(Ti);wu=r(cp,"Gleich werden wir sehen, wie wir neue Dateien hinzuf\xFCgen k\xF6nnen."),cp.forEach(t),Ro=c(e),rt=l(e,"H2",{class:!0});var Ql=d(rt);Mt=l(Ql,"A",{id:!0,class:!0,href:!0});var pp=d(Mt);Qr=l(pp,"SPAN",{});var hp=d(Qr);y(yn.$$.fragment,hp),hp.forEach(t),pp.forEach(t),$u=c(Ql),es=l(Ql,"SPAN",{});var _p=d(es);zu=r(_p,"Hochladen von Modell-Dateien"),_p.forEach(t),Ql.forEach(t),To=c(e),jt=l(e,"P",{});var ea=d(jt);Eu=r(ea,"Das System zum Managen der Dateien auf Hugging Face Hub basiert auf git f\xFCr normale Dateien und auf git-lfs ("),Dn=l(ea,"A",{href:!0,rel:!0});var gp=d(Dn);yu=r(gp,"Git Large File Storage"),gp.forEach(t),Du=r(ea,") f\xFCr gr\xF6\xDFere Dateien."),ea.forEach(t),Co=c(e),At=l(e,"P",{});var ta=d(At);Mu=r(ta,"Im n\xE4chsten Teil schauen wir uns drei M\xF6glichkeitein an, um Dateien mittels "),ts=l(ta,"CODE",{});var bp=d(ts);ju=r(bp,"huggingface_hub"),bp.forEach(t),Au=r(ta," und git-Befehle auf den Hub hochzuladen."),ta.forEach(t),So=c(e),st=l(e,"H3",{class:!0});var na=d(st);Pt=l(na,"A",{id:!0,class:!0,href:!0});var kp=d(Pt);ns=l(kp,"SPAN",{});var vp=d(ns);y(Mn.$$.fragment,vp),vp.forEach(t),kp.forEach(t),Pu=c(na),jn=l(na,"SPAN",{});var ia=d(jn);Ou=r(ia,"Die "),is=l(ia,"CODE",{});var wp=d(is);Ru=r(wp,"upload_file"),wp.forEach(t),Tu=r(ia," Variante"),ia.forEach(t),na.forEach(t),Ho=c(e),Ot=l(e,"P",{});var ra=d(Ot);Cu=r(ra,"Um "),rs=l(ra,"CODE",{});var $p=d(rs);Su=r($p,"upload_file"),$p.forEach(t),Hu=r(ra,` zu verwenden, muss man nicht unbedingt git und git-lfs installiert haben. Die Funktion l\xE4dt Dateien auf den \u{1F917} Hub mittels HTTP POST Anfragen. Eine Einschr\xE4nkunf dieser Variante ist, dass man nur mit Dateien unter 5GB gro\xDF arbeiten kann.
Wenn deine Dateien gr\xF6\xDFer als 5GB sind, nutz eine von den folgenden zwei Methoden.`),ra.forEach(t),Io=c(e),Ci=l(e,"P",{});var zp=d(Ci);Iu=r(zp,"Die API kann folgenderma\xDFen benutzt werden:"),zp.forEach(t),Wo=c(e),y(An.$$.fragment,e),No=c(e),ue=l(e,"P",{});var Xe=d(ue);Wu=r(Xe,"Das wird die "),ss=l(Xe,"CODE",{});var Ep=d(ss);Nu=r(Ep,"config.json"),Ep.forEach(t),Bu=r(Xe," Datei in "),os=l(Xe,"CODE",{});var yp=d(os);Fu=r(yp,"<path_to_file>"),yp.forEach(t),qu=r(Xe," auf das Root-Verzeichnis vom Repository als "),ls=l(Xe,"CODE",{});var Dp=d(ls);Gu=r(Dp,"config.json"),Dp.forEach(t),Lu=r(Xe," vom "),as=l(Xe,"CODE",{});var Mp=d(as);Vu=r(Mp,"dummy-model"),Mp.forEach(t),Uu=r(Xe,` Repository.
Andere n\xFCtzliche Argumente :`),Xe.forEach(t),Bo=c(e),Rt=l(e,"UL",{});var sa=d(Rt);Si=l(sa,"LI",{});var Am=d(Si);ds=l(Am,"CODE",{});var jp=d(ds);Ku=r(jp,"token"),jp.forEach(t),xu=r(Am,", um den Token zu \xFCberscheiben, der in deinem Cache gespeichert ist"),Am.forEach(t),Zu=c(sa),fe=l(sa,"LI",{});var Ie=d(fe);us=l(Ie,"CODE",{});var Ap=d(us);Yu=r(Ap,"repo_type"),Ap.forEach(t),Ju=r(Ie,", wenn du anstatt von einem Modell Dateien auf einen "),fs=l(Ie,"CODE",{});var Pp=d(fs);Xu=r(Pp,"dataset"),Pp.forEach(t),Qu=r(Ie," oder "),ms=l(Ie,"CODE",{});var Op=d(ms);ef=r(Op,"space"),Op.forEach(t),tf=r(Ie," hochladen m\xF6chtest. Valide Werte sind "),cs=l(Ie,"CODE",{});var Rp=d(cs);nf=r(Rp,'"dataset"'),Rp.forEach(t),rf=r(Ie," und "),ps=l(Ie,"CODE",{});var Tp=d(ps);sf=r(Tp,'"space"'),Tp.forEach(t),of=r(Ie,"."),Ie.forEach(t),sa.forEach(t),Fo=c(e),ot=l(e,"H3",{class:!0});var oa=d(ot);Tt=l(oa,"A",{id:!0,class:!0,href:!0});var Cp=d(Tt);hs=l(Cp,"SPAN",{});var Sp=d(hs);y(Pn.$$.fragment,Sp),Sp.forEach(t),Cp.forEach(t),lf=c(oa),On=l(oa,"SPAN",{});var la=d(On);af=r(la,"Die "),_s=l(la,"CODE",{});var Hp=d(_s);df=r(Hp,"Repository"),Hp.forEach(t),uf=r(la," Klasse"),la.forEach(t),oa.forEach(t),qo=c(e),Ct=l(e,"P",{});var aa=d(Ct);ff=r(aa,"Die "),gs=l(aa,"CODE",{});var Ip=d(gs);mf=r(Ip,"Repository"),Ip.forEach(t),cf=r(aa," Klasse verwaltet einen lokalen Repository so wie git. Sie abstrahiert aber die meisten schwierigen Punkte, auf die man sto\xDFen w\xFCrde, wenn man eine \xE4hnliche Funktionalit\xE4t mit git erreichen m\xF6chte."),aa.forEach(t),Go=c(e),St=l(e,"P",{});var da=d(St);pf=r(da,"Diese Klasse braucht git und git-lfs im System schon installiert. Also stell sicher, dass du git-lfs installiert hast (siehe "),Rn=l(da,"A",{href:!0,rel:!0});var Wp=d(Rn);hf=r(Wp,"hier"),Wp.forEach(t),_f=r(da," f\xFCr Installationsanweisungen) und richte alles ein, bevor du loslegst."),da.forEach(t),Lo=c(e),Hi=l(e,"P",{});var Np=d(Hi);gf=r(Np,"Um mit dem Repository rumspielen zu starten, k\xF6nnen wir den in einem lokalen Ordner initialisieren, in dem wir den Remote-Repository klonen:"),Np.forEach(t),Vo=c(e),y(Tn.$$.fragment,e),Uo=c(e),_e=l(e,"P",{});var xt=d(_e);bf=r(xt,"Das hat den Ordner "),bs=l(xt,"CODE",{});var Bp=d(bs);kf=r(Bp,"<path_to_dummy_folder>"),Bp.forEach(t),vf=r(xt," in unserem Arbeitsverzeichnis erstellt. Dieser Ordner enth\xE4lt bisher nur die "),ks=l(xt,"CODE",{});var Fp=d(ks);wf=r(Fp,".gitattributes"),Fp.forEach(t),$f=r(xt," Datel, da diese die einzige Datei ist, die wir mit "),vs=l(xt,"CODE",{});var qp=d(vs);zf=r(qp,"create_repo"),qp.forEach(t),Ef=r(xt," kreiert haben."),xt.forEach(t),Ko=c(e),Ii=l(e,"P",{});var Gp=d(Ii);yf=r(Gp,"Ab jetzt k\xF6nnen mehrere g\xE4ngige Methoden benutzten:"),Gp.forEach(t),xo=c(e),y(Cn.$$.fragment,e),Zo=c(e),Ke=l(e,"P",{});var cr=d(Ke);Df=r(cr,"Und andere Optionen auch! Wir empfehlen, dass du dir die Dokumentation zu "),ws=l(cr,"CODE",{});var Lp=d(ws);Mf=r(Lp,"Repository"),Lp.forEach(t),jf=r(cr,", die dir "),Sn=l(cr,"A",{href:!0,rel:!0});var Vp=d(Sn);Af=r(Vp,"hier"),Vp.forEach(t),Pf=r(cr," zur Verf\xFCgung steht, anschaust, um dir eine \xDCbersicht aller verf\xFCgbaren Methoden zu verschaffen."),cr.forEach(t),Yo=c(e),Wi=l(e,"P",{});var Up=d(Wi);Of=r(Up,"Bisher haben wir ein Modell und einen Tokenizer, die wir gerne auf den Hub pushen w\xFCrden. Wir haben auch den Repository geklont, sodass wir die Dateien in dem Repository speichern k\xF6nnen."),Up.forEach(t),Jo=c(e),Ni=l(e,"P",{});var Kp=d(Ni);Rf=r(Kp,"Zuerst stellen wir sicher, dass unser lokaler Repository einen aktuellen Stand hat, in dem wir die letzten \xC4nderungen pullen:"),Kp.forEach(t),Xo=c(e),y(Hn.$$.fragment,e),Qo=c(e),Bi=l(e,"P",{});var xp=d(Bi);Tf=r(xp,"Wenn das durch ist, speichern wir die Dateien vom Modell und Tokenizer:"),xp.forEach(t),el=c(e),y(In.$$.fragment,e),tl=c(e),Ht=l(e,"P",{});var ua=d(Ht);Cf=r(ua,"Der Pfad "),$s=l(ua,"CODE",{});var Zp=d($s);Sf=r(Zp,"<path_to_dummy_folder>"),Zp.forEach(t),Hf=r(ua," beinhaltet jetzt alle Modell- und Tokenizerdateien. Wir folgen dem g\xE4ngigen Git-Workflow, indem wir die Dateien in die \u201Cstaging area\u201D bringen, wir committen und pushen sie auf den hub:"),ua.forEach(t),nl=c(e),y(Wn.$$.fragment,e),il=c(e),Fi=l(e,"P",{});var Yp=d(Fi);If=r(Yp,"Gl\xFCckwunsch! Du hast gerade deine ersten Dateien auf den Hub hochgeladen."),Yp.forEach(t),rl=c(e),lt=l(e,"H3",{class:!0});var fa=d(lt);It=l(fa,"A",{id:!0,class:!0,href:!0});var Jp=d(It);zs=l(Jp,"SPAN",{});var Xp=d(zs);y(Nn.$$.fragment,Xp),Xp.forEach(t),Jp.forEach(t),Wf=c(fa),Es=l(fa,"SPAN",{});var Qp=d(Es);Nf=r(Qp,"Die git-basierte Variante"),Qp.forEach(t),fa.forEach(t),sl=c(e),qi=l(e,"P",{});var eh=d(qi);Bf=r(eh,"Das ist der einfachste Weg zum Hochladen von Dateien: Wir werden es direkt mit git und git-lfs tun. Der Gr\xF6\xDFtenteil der Schwierigkeit wird durch die fr\xFCheren Ans\xE4tze abstrahiert, aber es gibt ein paar Vorbehalte bei der folgenden Methode, deswegen werden wir einem komplexeren Anwendungsfall folgen."),eh.forEach(t),ol=c(e),Wt=l(e,"P",{});var ma=d(Wt);Ff=r(ma,"Um diese Klasse zu benutzten, mussen wir git und git-lfs installiert haben. Also stell sicher, dass du "),Bn=l(ma,"A",{href:!0,rel:!0});var th=d(Bn);qf=r(th,"git-lfs"),th.forEach(t),Gf=r(ma," installiert und aufgesetzt hast, bevor du beginst."),ma.forEach(t),ll=c(e),Gi=l(e,"P",{});var nh=d(Gi);Lf=r(nh,"Zuerst initialisiere git-lfs:"),nh.forEach(t),al=c(e),y(Fn.$$.fragment,e),dl=c(e),y(qn.$$.fragment,e),ul=c(e),Li=l(e,"P",{});var ih=d(Li);Vf=r(ih,"Danach musst du den Modell-Repository klonen:"),ih.forEach(t),fl=c(e),y(Gn.$$.fragment,e),ml=c(e),xe=l(e,"P",{});var pr=d(xe);Uf=r(pr,"Mein Username ist "),ys=l(pr,"CODE",{});var rh=d(ys);Kf=r(rh,"lysandre"),rh.forEach(t),xf=r(pr," und ich habe den Modellnamen "),Ds=l(pr,"CODE",{});var sh=d(Ds);Zf=r(sh,"dummy"),sh.forEach(t),Yf=r(pr," benutzt. Also bei bei sieht der Befehl so aus:"),pr.forEach(t),cl=c(e),y(Ln.$$.fragment,e),pl=c(e),Ze=l(e,"P",{});var hr=d(Ze);Jf=r(hr,"Ich habe jetzt einen Ordner namens "),Ms=l(hr,"EM",{});var oh=d(Ms);Xf=r(oh,"dummy"),oh.forEach(t),Qf=r(hr," in meinem Arbeitsverzeichnis. Ich kann jetzt "),js=l(hr,"CODE",{});var lh=d(js);em=r(lh,"cd"),lh.forEach(t),tm=r(hr," in den Ordner und mir den Inhalt anschauen:"),hr.forEach(t),hl=c(e),y(Vn.$$.fragment,e),_l=c(e),y(Un.$$.fragment,e),gl=c(e),ge=l(e,"P",{});var Zt=d(ge);nm=r(Zt,"Wenn du eben einen Repository mit der Hugging Face Hubs Methode "),As=l(Zt,"CODE",{});var ah=d(As);im=r(ah,"create_repo"),ah.forEach(t),rm=r(Zt," erstellt hast, dann sollte dieser Ordner nur eine versteckte "),Ps=l(Zt,"CODE",{});var dh=d(Ps);sm=r(dh,".gitattributes"),dh.forEach(t),om=r(Zt," 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 "),Os=l(Zt,"CODE",{});var uh=d(Os);lm=r(uh,".gitattributes"),uh.forEach(t),am=r(Zt," enthalten \u2013 so wie hier angezeigt wird."),Zt.forEach(t),bl=c(e),Nt=l(e,"P",{});var ca=d(Nt);dm=r(ca,"Das Hinzuf\xFCgen einer Datei mit normaler Gr\xF6\xDFe, z.B. Konfiguration- oder Vokabulardatei, wird so gemach wie in einem git-basierten System. Aber gr\xF6\xDFere Dateien m\xFCssen mit git-lfs registriert werden, um sie zu "),Rs=l(ca,"EM",{});var fh=d(Rs);um=r(fh,"huggingface.co"),fh.forEach(t),fm=r(ca," zu pushen."),ca.forEach(t),kl=c(e),Vi=l(e,"P",{});var mh=d(Vi);mm=r(mh,"Lass uns kurz zur\xFCck zu Python, um ein Modell und einen Tokenizer zu generieren, die wir zu unserem dummy repository committen m\xF6chten:"),mh.forEach(t),vl=c(e),Me.l(e),Ui=c(e),Bt=l(e,"P",{});var pa=d(Bt);cm=r(pa,"Jetzt haben wir die Modell- und Tokenizer-Artifakte gespeichert und k\xF6nnen wir uns nochmal den "),Ts=l(pa,"EM",{});var ch=d(Ts);pm=r(ch,"dummy"),ch.forEach(t),hm=r(pa," Ordner anschauen:"),pa.forEach(t),wl=c(e),y(Kn.$$.fragment,e),$l=c(e),Ae.l(e),Ki=c(e),y(Ft.$$.fragment,e),zl=c(e),qt=l(e,"P",{});var ha=d(qt);_m=r(ha,"Nun k\xF6nnen wir weitermachen und so arbeiten wie wir es mit normalen Git Repositories machen. Wir k\xF6nnen die Dateien stagen mit dem Git-Befehl "),Cs=l(ha,"CODE",{});var ph=d(Cs);gm=r(ph,"git add"),ph.forEach(t),bm=r(ha,":"),ha.forEach(t),El=c(e),y(xn.$$.fragment,e),yl=c(e),xi=l(e,"P",{});var hh=d(xi);km=r(hh,"Jetzt schauen wir, welche Dateien gestaged wurden:"),hh.forEach(t),Dl=c(e),y(Zn.$$.fragment,e),Ml=c(e),Oe.l(e),Zi=c(e),Gt=l(e,"P",{});var _a=d(Gt);vm=r(_a,"\xC4hnlicherweise k\xF6nnen wir sicherstellen, dass git-lfs die richtigen Dateien trackt mit dem "),Ss=l(_a,"CODE",{});var _h=d(Ss);wm=r(_h,"status"),_h.forEach(t),$m=r(_a," Befehl:"),_a.forEach(t),jl=c(e),y(Yn.$$.fragment,e),Al=c(e),Te.l(e),Yi=c(e),Lt=l(e,"P",{});var ga=d(Lt);zm=r(ga,"Lass uns mit den letzten Schritten weitermachen, indem wir die \xC4nderungen commiten und zum "),Hs=l(ga,"EM",{});var gh=d(Hs);Em=r(gh,"huggingface.co"),gh.forEach(t),ym=r(ga," Remote-Repository pushen:"),ga.forEach(t),Pl=c(e),y(Jn.$$.fragment,e),Ol=c(e),Se.l(e),Ji=c(e),Xi=l(e,"P",{});var bh=d(Xi);Dm=r(bh,"Das Pushen kann ein bisschen dauern, je nach dem wie schnell deine Internetverbindung ist und wie gro\xDF deine Dateien sind:"),bh.forEach(t),Rl=c(e),y(Xn.$$.fragment,e),Tl=c(e),y(Qn.$$.fragment,e),Cl=c(e),dt.l(e),Qi=kh(),this.h()},h(){h(f,"name","hf:doc:metadata"),h(f,"content",JSON.stringify(Qh)),h(R,"id","vortrainierte-modelle-teilen"),h(R,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(R,"href","#vortrainierte-modelle-teilen"),h($,"class","relative group"),h(q,"id","hochladen-mit-der-pushtohub-api"),h(q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(q,"href","#hochladen-mit-der-pushtohub-api"),h(O,"class","relative group"),h(_i,"href","/course/chapter0"),h(Qt,"href","https://huggingface.co/join"),h(Qt,"rel","nofollow"),h(sn,"href","https://huggingface.co/user-or-organization/dummy-model"),h(sn,"rel","nofollow"),h(on,"href","https://huggingface.co/transformers/model_sharing.html"),h(on,"rel","nofollow"),h(ln,"href","https://github.com/huggingface/huggingface_hub"),h(ln,"rel","nofollow"),h(an,"href","https://github.com/allenai/allennlp"),h(an,"rel","nofollow"),h(wt,"id","verwendung-der-huggingfacehub-python-bibliothek"),h(wt,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(wt,"href","#verwendung-der-huggingfacehub-python-bibliothek"),h(nt,"class","relative group"),h(yt,"id","mit-der-webinterface"),h(yt,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(yt,"href","#mit-der-webinterface"),h(it,"class","relative group"),h(_n,"href","https://huggingface.co/new"),h(_n,"rel","nofollow"),We(bn.src,Om="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/new_model.png")||h(bn,"src",Om),h(bn,"alt","Beispiel vom Modell, mit dem man einen Repository erstellen kann."),h(bn,"width","80%"),h(gn,"class","flex justify-center"),We(vn.src,Rm="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/empty_model.png")||h(vn,"src",Rm),h(vn,"alt","Leeres Modell nach der Erstellung des Repositorys."),h(vn,"width","80%"),h(kn,"class","flex justify-center"),We($n.src,Tm="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/dummy_model.png")||h($n,"src",Tm),h($n,"alt","The README file showing the Markdown capabilities."),h($n,"width","80%"),h(wn,"class","flex justify-center"),We(En.src,Cm="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/files.png")||h(En,"src",Cm),h(En,"alt","The 'Files and versions' tab only shows the .gitattributes and README.md files."),h(En,"width","80%"),h(zn,"class","flex justify-center"),h(Mt,"id","hochladen-von-modelldateien"),h(Mt,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(Mt,"href","#hochladen-von-modelldateien"),h(rt,"class","relative group"),h(Dn,"href","https://git-lfs.github.com/"),h(Dn,"rel","nofollow"),h(Pt,"id","die-uploadfile-variante"),h(Pt,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(Pt,"href","#die-uploadfile-variante"),h(st,"class","relative group"),h(Tt,"id","die-repository-klasse"),h(Tt,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(Tt,"href","#die-repository-klasse"),h(ot,"class","relative group"),h(Rn,"href","https://git-lfs.github.com/"),h(Rn,"rel","nofollow"),h(Sn,"href","https://github.com/huggingface/huggingface_hub/tree/main/src/huggingface_hub#advanced-programmatic-repository-management"),h(Sn,"rel","nofollow"),h(It,"id","die-gitbasierte-variante"),h(It,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),h(It,"href","#die-gitbasierte-variante"),h(lt,"class","relative group"),h(Bn,"href","https://git-lfs.github.com/"),h(Bn,"rel","nofollow")},m(e,s){n(document.head,f),a(e,p,s),D(u,e,s),a(e,g,s),a(e,$,s),n($,R),n(R,S),D(j,S,null),n($,C),n($,T),n(T,A),a(e,b,s),ei[z].m(e,s),a(e,w,s),a(e,I,s),n(I,F),a(e,W,s),D(B,e,s),a(e,V,s),a(e,Y,s),n(Y,re),a(e,U,s),a(e,se,s),n(se,be),a(e,ne,s),a(e,L,s),n(L,ie),n(ie,oe),n(ie,K),n(K,ke),n(ie,le),n(L,N),n(L,G),n(G,ve),n(G,J),n(J,x),n(G,me),n(L,Ne),n(L,ce),n(ce,we),a(e,X,s),a(e,Q,s),n(Q,fi),a(e,Qe,s),a(e,O,s),n(O,q),n(q,mt),D(Be,mt,null),n(O,mi),n(O,Z),n(Z,ci),n(Z,ct),n(ct,pi),n(Z,hi),a(e,et,s),ti[ae].m(e,s),a(e,tt,s),a(e,ee,s),n(ee,ba),n(ee,_r),n(_r,ka),n(ee,va),n(ee,gr),n(gr,wa),n(ee,$a),n(ee,br),n(br,za),n(ee,Ea),n(ee,_i),n(_i,ya),n(ee,Da),a(e,Ws,s),D(Jt,e,s),a(e,Ns,s),a(e,gi,s),n(gi,Ma),a(e,Bs,s),D(Xt,e,s),a(e,Fs,s),a(e,pt,s),n(pt,ja),n(pt,Qt),n(Qt,Aa),n(pt,Pa),a(e,qs,s),a(e,bi,s),n(bi,Oa),a(e,Gs,s),ni[$e].m(e,s),a(e,ki,s),a(e,ht,s),n(ht,Ra),n(ht,kr),n(kr,Ta),n(ht,Ca),a(e,Ls,s),a(e,vi,s),n(vi,Sa),a(e,Vs,s),ii[Ee].m(e,s),a(e,wi,s),a(e,Fe,s),n(Fe,Ha),n(Fe,vr),n(vr,Ia),n(Fe,Wa),n(Fe,wr),n(wr,Na),n(Fe,Ba),a(e,Us,s),D(en,e,s),a(e,Ks,s),a(e,_t,s),n(_t,Fa),n(_t,$r),n($r,qa),n(_t,Ga),a(e,xs,s),D(tn,e,s),a(e,Zs,s),a(e,gt,s),n(gt,La),n(gt,zr),n(zr,Va),n(gt,Ua),a(e,Ys,s),D(nn,e,s),a(e,Js,s),a(e,bt,s),n(bt,Ka),n(bt,Er),n(Er,xa),n(bt,Za),a(e,Xs,s),D(rn,e,s),a(e,Qs,s),a(e,kt,s),n(kt,Ya),n(kt,yr),n(yr,sn),n(sn,Ja),n(kt,Xa),a(e,eo,s),a(e,$i,s),n($i,Qa),a(e,to,s),at.m(e,s),a(e,zi,s),D(vt,e,s),a(e,no,s),a(e,qe,s),n(qe,ed),n(qe,Dr),n(Dr,td),n(qe,nd),n(qe,on),n(on,id),n(qe,rd),a(e,io,s),a(e,pe,s),n(pe,sd),n(pe,Mr),n(Mr,od),n(pe,ld),n(pe,ln),n(ln,jr),n(jr,ad),n(pe,dd),n(pe,an),n(an,Ar),n(Ar,ud),n(pe,fd),a(e,ro,s),a(e,nt,s),n(nt,wt),n(wt,Pr),D(dn,Pr,null),n(nt,md),n(nt,un),n(un,cd),n(un,Or),n(Or,pd),n(un,hd),a(e,so,s),a(e,he,s),n(he,_d),n(he,Rr),n(Rr,gd),n(he,bd),n(he,Tr),n(Tr,kd),n(he,vd),n(he,Cr),n(Cr,wd),n(he,$d),a(e,oo,s),D(fn,e,s),a(e,lo,s),a(e,$t,s),n($t,zd),n($t,Sr),n(Sr,Ed),n($t,yd),a(e,ao,s),D(mn,e,s),a(e,uo,s),a(e,zt,s),n(zt,Dd),n(zt,Hr),n(Hr,Md),n(zt,jd),a(e,fo,s),a(e,Et,s),n(Et,Ad),n(Et,Ir),n(Ir,Pd),n(Et,Od),a(e,mo,s),D(cn,e,s),a(e,co,s),a(e,Ge,s),n(Ge,Rd),n(Ge,Wr),n(Wr,Td),n(Ge,Cd),n(Ge,Nr),n(Nr,Sd),n(Ge,Hd),a(e,po,s),D(pn,e,s),a(e,ho,s),a(e,Le,s),n(Le,Id),n(Le,Br),n(Br,Wd),n(Le,Nd),n(Le,Fr),n(Fr,Bd),n(Le,Fd),a(e,_o,s),a(e,Ve,s),n(Ve,Ei),n(Ei,qr),n(qr,qd),n(Ei,Gd),n(Ve,Ld),n(Ve,yi),n(yi,Gr),n(Gr,Vd),n(yi,Ud),n(Ve,Kd),n(Ve,de),n(de,Lr),n(Lr,xd),n(de,Zd),n(de,Vr),n(Vr,Yd),n(de,Jd),n(de,Ur),n(Ur,Xd),n(de,Qd),n(de,Kr),n(Kr,eu),n(de,tu),n(de,xr),n(xr,nu),n(de,iu),a(e,go,s),a(e,Di,s),n(Di,ru),a(e,bo,s),a(e,it,s),n(it,yt),n(yt,Zr),D(hn,Zr,null),n(it,su),n(it,Yr),n(Yr,ou),a(e,ko,s),a(e,Mi,s),n(Mi,lu),a(e,vo,s),a(e,Dt,s),n(Dt,au),n(Dt,_n),n(_n,du),n(Dt,uu),a(e,wo,s),a(e,gn,s),n(gn,bn),a(e,$o,s),a(e,ji,s),n(ji,fu),a(e,zo,s),a(e,Ai,s),n(Ai,mu),a(e,Eo,s),a(e,Pi,s),n(Pi,cu),a(e,yo,s),a(e,kn,s),n(kn,vn),a(e,Do,s),a(e,Oi,s),n(Oi,pu),a(e,Mo,s),a(e,wn,s),n(wn,$n),a(e,jo,s),a(e,Ri,s),n(Ri,hu),a(e,Ao,s),a(e,Ue,s),n(Ue,_u),n(Ue,Jr),n(Jr,gu),n(Ue,bu),n(Ue,Xr),n(Xr,ku),n(Ue,vu),a(e,Po,s),a(e,zn,s),n(zn,En),a(e,Oo,s),a(e,Ti,s),n(Ti,wu),a(e,Ro,s),a(e,rt,s),n(rt,Mt),n(Mt,Qr),D(yn,Qr,null),n(rt,$u),n(rt,es),n(es,zu),a(e,To,s),a(e,jt,s),n(jt,Eu),n(jt,Dn),n(Dn,yu),n(jt,Du),a(e,Co,s),a(e,At,s),n(At,Mu),n(At,ts),n(ts,ju),n(At,Au),a(e,So,s),a(e,st,s),n(st,Pt),n(Pt,ns),D(Mn,ns,null),n(st,Pu),n(st,jn),n(jn,Ou),n(jn,is),n(is,Ru),n(jn,Tu),a(e,Ho,s),a(e,Ot,s),n(Ot,Cu),n(Ot,rs),n(rs,Su),n(Ot,Hu),a(e,Io,s),a(e,Ci,s),n(Ci,Iu),a(e,Wo,s),D(An,e,s),a(e,No,s),a(e,ue,s),n(ue,Wu),n(ue,ss),n(ss,Nu),n(ue,Bu),n(ue,os),n(os,Fu),n(ue,qu),n(ue,ls),n(ls,Gu),n(ue,Lu),n(ue,as),n(as,Vu),n(ue,Uu),a(e,Bo,s),a(e,Rt,s),n(Rt,Si),n(Si,ds),n(ds,Ku),n(Si,xu),n(Rt,Zu),n(Rt,fe),n(fe,us),n(us,Yu),n(fe,Ju),n(fe,fs),n(fs,Xu),n(fe,Qu),n(fe,ms),n(ms,ef),n(fe,tf),n(fe,cs),n(cs,nf),n(fe,rf),n(fe,ps),n(ps,sf),n(fe,of),a(e,Fo,s),a(e,ot,s),n(ot,Tt),n(Tt,hs),D(Pn,hs,null),n(ot,lf),n(ot,On),n(On,af),n(On,_s),n(_s,df),n(On,uf),a(e,qo,s),a(e,Ct,s),n(Ct,ff),n(Ct,gs),n(gs,mf),n(Ct,cf),a(e,Go,s),a(e,St,s),n(St,pf),n(St,Rn),n(Rn,hf),n(St,_f),a(e,Lo,s),a(e,Hi,s),n(Hi,gf),a(e,Vo,s),D(Tn,e,s),a(e,Uo,s),a(e,_e,s),n(_e,bf),n(_e,bs),n(bs,kf),n(_e,vf),n(_e,ks),n(ks,wf),n(_e,$f),n(_e,vs),n(vs,zf),n(_e,Ef),a(e,Ko,s),a(e,Ii,s),n(Ii,yf),a(e,xo,s),D(Cn,e,s),a(e,Zo,s),a(e,Ke,s),n(Ke,Df),n(Ke,ws),n(ws,Mf),n(Ke,jf),n(Ke,Sn),n(Sn,Af),n(Ke,Pf),a(e,Yo,s),a(e,Wi,s),n(Wi,Of),a(e,Jo,s),a(e,Ni,s),n(Ni,Rf),a(e,Xo,s),D(Hn,e,s),a(e,Qo,s),a(e,Bi,s),n(Bi,Tf),a(e,el,s),D(In,e,s),a(e,tl,s),a(e,Ht,s),n(Ht,Cf),n(Ht,$s),n($s,Sf),n(Ht,Hf),a(e,nl,s),D(Wn,e,s),a(e,il,s),a(e,Fi,s),n(Fi,If),a(e,rl,s),a(e,lt,s),n(lt,It),n(It,zs),D(Nn,zs,null),n(lt,Wf),n(lt,Es),n(Es,Nf),a(e,sl,s),a(e,qi,s),n(qi,Bf),a(e,ol,s),a(e,Wt,s),n(Wt,Ff),n(Wt,Bn),n(Bn,qf),n(Wt,Gf),a(e,ll,s),a(e,Gi,s),n(Gi,Lf),a(e,al,s),D(Fn,e,s),a(e,dl,s),D(qn,e,s),a(e,ul,s),a(e,Li,s),n(Li,Vf),a(e,fl,s),D(Gn,e,s),a(e,ml,s),a(e,xe,s),n(xe,Uf),n(xe,ys),n(ys,Kf),n(xe,xf),n(xe,Ds),n(Ds,Zf),n(xe,Yf),a(e,cl,s),D(Ln,e,s),a(e,pl,s),a(e,Ze,s),n(Ze,Jf),n(Ze,Ms),n(Ms,Xf),n(Ze,Qf),n(Ze,js),n(js,em),n(Ze,tm),a(e,hl,s),D(Vn,e,s),a(e,_l,s),D(Un,e,s),a(e,gl,s),a(e,ge,s),n(ge,nm),n(ge,As),n(As,im),n(ge,rm),n(ge,Ps),n(Ps,sm),n(ge,om),n(ge,Os),n(Os,lm),n(ge,am),a(e,bl,s),a(e,Nt,s),n(Nt,dm),n(Nt,Rs),n(Rs,um),n(Nt,fm),a(e,kl,s),a(e,Vi,s),n(Vi,mm),a(e,vl,s),ri[De].m(e,s),a(e,Ui,s),a(e,Bt,s),n(Bt,cm),n(Bt,Ts),n(Ts,pm),n(Bt,hm),a(e,wl,s),D(Kn,e,s),a(e,$l,s),si[je].m(e,s),a(e,Ki,s),D(Ft,e,s),a(e,zl,s),a(e,qt,s),n(qt,_m),n(qt,Cs),n(Cs,gm),n(qt,bm),a(e,El,s),D(xn,e,s),a(e,yl,s),a(e,xi,s),n(xi,km),a(e,Dl,s),D(Zn,e,s),a(e,Ml,s),oi[Pe].m(e,s),a(e,Zi,s),a(e,Gt,s),n(Gt,vm),n(Gt,Ss),n(Ss,wm),n(Gt,$m),a(e,jl,s),D(Yn,e,s),a(e,Al,s),li[Re].m(e,s),a(e,Yi,s),a(e,Lt,s),n(Lt,zm),n(Lt,Hs),n(Hs,Em),n(Lt,ym),a(e,Pl,s),D(Jn,e,s),a(e,Ol,s),ai[Ce].m(e,s),a(e,Ji,s),a(e,Xi,s),n(Xi,Dm),a(e,Rl,s),D(Xn,e,s),a(e,Tl,s),D(Qn,e,s),a(e,Cl,s),dt.m(e,s),a(e,Qi,s),Sl=!0},p(e,[s]){const di={};s&1&&(di.fw=e[0]),u.$set(di);let er=z;z=Hm(e),z!==er&&(ft(),k(ei[er],1,1,()=>{ei[er]=null}),ut(),_=ei[z],_||(_=ei[z]=Sm[z](e),_.c()),v(_,1),_.m(w.parentNode,w));let tr=ae;ae=Wm(e),ae!==tr&&(ft(),k(ti[tr],1,1,()=>{ti[tr]=null}),ut(),te=ti[ae],te||(te=ti[ae]=Im[ae](e),te.c()),v(te,1),te.m(tt.parentNode,tt));let nr=$e;$e=Bm(e),$e!==nr&&(ft(),k(ni[nr],1,1,()=>{ni[nr]=null}),ut(),ze=ni[$e],ze||(ze=ni[$e]=Nm[$e](e),ze.c()),v(ze,1),ze.m(ki.parentNode,ki));let ir=Ee;Ee=qm(e),Ee!==ir&&(ft(),k(ii[ir],1,1,()=>{ii[ir]=null}),ut(),ye=ii[Ee],ye||(ye=ii[Ee]=Fm[Ee](e),ye.c()),v(ye,1),ye.m(wi.parentNode,wi)),Hl!==(Hl=Gm(e))&&(at.d(1),at=Hl(e),at&&(at.c(),at.m(zi.parentNode,zi)));const Is={};s&2&&(Is.$$scope={dirty:s,ctx:e}),vt.$set(Is);let rr=De;De=Vm(e),De!==rr&&(ft(),k(ri[rr],1,1,()=>{ri[rr]=null}),ut(),Me=ri[De],Me||(Me=ri[De]=Lm[De](e),Me.c()),v(Me,1),Me.m(Ui.parentNode,Ui));let Ye=je;je=Km(e),je!==Ye&&(ft(),k(si[Ye],1,1,()=>{si[Ye]=null}),ut(),Ae=si[je],Ae||(Ae=si[je]=Um[je](e),Ae.c()),v(Ae,1),Ae.m(Ki.parentNode,Ki));const ui={};s&2&&(ui.$$scope={dirty:s,ctx:e}),Ft.$set(ui);let sr=Pe;Pe=Zm(e),Pe!==sr&&(ft(),k(oi[sr],1,1,()=>{oi[sr]=null}),ut(),Oe=oi[Pe],Oe||(Oe=oi[Pe]=xm[Pe](e),Oe.c()),v(Oe,1),Oe.m(Zi.parentNode,Zi));let Vt=Re;Re=Jm(e),Re!==Vt&&(ft(),k(li[Vt],1,1,()=>{li[Vt]=null}),ut(),Te=li[Re],Te||(Te=li[Re]=Ym[Re](e),Te.c()),v(Te,1),Te.m(Yi.parentNode,Yi));let or=Ce;Ce=Qm(e),Ce!==or&&(ft(),k(ai[or],1,1,()=>{ai[or]=null}),ut(),Se=ai[Ce],Se||(Se=ai[Ce]=Xm[Ce](e),Se.c()),v(Se,1),Se.m(Ji.parentNode,Ji)),Il!==(Il=ec(e))&&(dt.d(1),dt=Il(e),dt&&(dt.c(),dt.m(Qi.parentNode,Qi)))},i(e){Sl||(v(u.$$.fragment,e),v(j.$$.fragment,e),v(_),v(B.$$.fragment,e),v(Be.$$.fragment,e),v(te),v(Jt.$$.fragment,e),v(Xt.$$.fragment,e),v(ze),v(ye),v(en.$$.fragment,e),v(tn.$$.fragment,e),v(nn.$$.fragment,e),v(rn.$$.fragment,e),v(vt.$$.fragment,e),v(dn.$$.fragment,e),v(fn.$$.fragment,e),v(mn.$$.fragment,e),v(cn.$$.fragment,e),v(pn.$$.fragment,e),v(hn.$$.fragment,e),v(yn.$$.fragment,e),v(Mn.$$.fragment,e),v(An.$$.fragment,e),v(Pn.$$.fragment,e),v(Tn.$$.fragment,e),v(Cn.$$.fragment,e),v(Hn.$$.fragment,e),v(In.$$.fragment,e),v(Wn.$$.fragment,e),v(Nn.$$.fragment,e),v(Fn.$$.fragment,e),v(qn.$$.fragment,e),v(Gn.$$.fragment,e),v(Ln.$$.fragment,e),v(Vn.$$.fragment,e),v(Un.$$.fragment,e),v(Me),v(Kn.$$.fragment,e),v(Ae),v(Ft.$$.fragment,e),v(xn.$$.fragment,e),v(Zn.$$.fragment,e),v(Oe),v(Yn.$$.fragment,e),v(Te),v(Jn.$$.fragment,e),v(Se),v(Xn.$$.fragment,e),v(Qn.$$.fragment,e),Sl=!0)},o(e){k(u.$$.fragment,e),k(j.$$.fragment,e),k(_),k(B.$$.fragment,e),k(Be.$$.fragment,e),k(te),k(Jt.$$.fragment,e),k(Xt.$$.fragment,e),k(ze),k(ye),k(en.$$.fragment,e),k(tn.$$.fragment,e),k(nn.$$.fragment,e),k(rn.$$.fragment,e),k(vt.$$.fragment,e),k(dn.$$.fragment,e),k(fn.$$.fragment,e),k(mn.$$.fragment,e),k(cn.$$.fragment,e),k(pn.$$.fragment,e),k(hn.$$.fragment,e),k(yn.$$.fragment,e),k(Mn.$$.fragment,e),k(An.$$.fragment,e),k(Pn.$$.fragment,e),k(Tn.$$.fragment,e),k(Cn.$$.fragment,e),k(Hn.$$.fragment,e),k(In.$$.fragment,e),k(Wn.$$.fragment,e),k(Nn.$$.fragment,e),k(Fn.$$.fragment,e),k(qn.$$.fragment,e),k(Gn.$$.fragment,e),k(Ln.$$.fragment,e),k(Vn.$$.fragment,e),k(Un.$$.fragment,e),k(Me),k(Kn.$$.fragment,e),k(Ae),k(Ft.$$.fragment,e),k(xn.$$.fragment,e),k(Zn.$$.fragment,e),k(Oe),k(Yn.$$.fragment,e),k(Te),k(Jn.$$.fragment,e),k(Se),k(Xn.$$.fragment,e),k(Qn.$$.fragment,e),Sl=!1},d(e){t(f),e&&t(p),M(u,e),e&&t(g),e&&t($),M(j),e&&t(b),ei[z].d(e),e&&t(w),e&&t(I),e&&t(W),M(B,e),e&&t(V),e&&t(Y),e&&t(U),e&&t(se),e&&t(ne),e&&t(L),e&&t(X),e&&t(Q),e&&t(Qe),e&&t(O),M(Be),e&&t(et),ti[ae].d(e),e&&t(tt),e&&t(ee),e&&t(Ws),M(Jt,e),e&&t(Ns),e&&t(gi),e&&t(Bs),M(Xt,e),e&&t(Fs),e&&t(pt),e&&t(qs),e&&t(bi),e&&t(Gs),ni[$e].d(e),e&&t(ki),e&&t(ht),e&&t(Ls),e&&t(vi),e&&t(Vs),ii[Ee].d(e),e&&t(wi),e&&t(Fe),e&&t(Us),M(en,e),e&&t(Ks),e&&t(_t),e&&t(xs),M(tn,e),e&&t(Zs),e&&t(gt),e&&t(Ys),M(nn,e),e&&t(Js),e&&t(bt),e&&t(Xs),M(rn,e),e&&t(Qs),e&&t(kt),e&&t(eo),e&&t($i),e&&t(to),at.d(e),e&&t(zi),M(vt,e),e&&t(no),e&&t(qe),e&&t(io),e&&t(pe),e&&t(ro),e&&t(nt),M(dn),e&&t(so),e&&t(he),e&&t(oo),M(fn,e),e&&t(lo),e&&t($t),e&&t(ao),M(mn,e),e&&t(uo),e&&t(zt),e&&t(fo),e&&t(Et),e&&t(mo),M(cn,e),e&&t(co),e&&t(Ge),e&&t(po),M(pn,e),e&&t(ho),e&&t(Le),e&&t(_o),e&&t(Ve),e&&t(go),e&&t(Di),e&&t(bo),e&&t(it),M(hn),e&&t(ko),e&&t(Mi),e&&t(vo),e&&t(Dt),e&&t(wo),e&&t(gn),e&&t($o),e&&t(ji),e&&t(zo),e&&t(Ai),e&&t(Eo),e&&t(Pi),e&&t(yo),e&&t(kn),e&&t(Do),e&&t(Oi),e&&t(Mo),e&&t(wn),e&&t(jo),e&&t(Ri),e&&t(Ao),e&&t(Ue),e&&t(Po),e&&t(zn),e&&t(Oo),e&&t(Ti),e&&t(Ro),e&&t(rt),M(yn),e&&t(To),e&&t(jt),e&&t(Co),e&&t(At),e&&t(So),e&&t(st),M(Mn),e&&t(Ho),e&&t(Ot),e&&t(Io),e&&t(Ci),e&&t(Wo),M(An,e),e&&t(No),e&&t(ue),e&&t(Bo),e&&t(Rt),e&&t(Fo),e&&t(ot),M(Pn),e&&t(qo),e&&t(Ct),e&&t(Go),e&&t(St),e&&t(Lo),e&&t(Hi),e&&t(Vo),M(Tn,e),e&&t(Uo),e&&t(_e),e&&t(Ko),e&&t(Ii),e&&t(xo),M(Cn,e),e&&t(Zo),e&&t(Ke),e&&t(Yo),e&&t(Wi),e&&t(Jo),e&&t(Ni),e&&t(Xo),M(Hn,e),e&&t(Qo),e&&t(Bi),e&&t(el),M(In,e),e&&t(tl),e&&t(Ht),e&&t(nl),M(Wn,e),e&&t(il),e&&t(Fi),e&&t(rl),e&&t(lt),M(Nn),e&&t(sl),e&&t(qi),e&&t(ol),e&&t(Wt),e&&t(ll),e&&t(Gi),e&&t(al),M(Fn,e),e&&t(dl),M(qn,e),e&&t(ul),e&&t(Li),e&&t(fl),M(Gn,e),e&&t(ml),e&&t(xe),e&&t(cl),M(Ln,e),e&&t(pl),e&&t(Ze),e&&t(hl),M(Vn,e),e&&t(_l),M(Un,e),e&&t(gl),e&&t(ge),e&&t(bl),e&&t(Nt),e&&t(kl),e&&t(Vi),e&&t(vl),ri[De].d(e),e&&t(Ui),e&&t(Bt),e&&t(wl),M(Kn,e),e&&t($l),si[je].d(e),e&&t(Ki),M(Ft,e),e&&t(zl),e&&t(qt),e&&t(El),M(xn,e),e&&t(yl),e&&t(xi),e&&t(Dl),M(Zn,e),e&&t(Ml),oi[Pe].d(e),e&&t(Zi),e&&t(Gt),e&&t(jl),M(Yn,e),e&&t(Al),li[Re].d(e),e&&t(Yi),e&&t(Lt),e&&t(Pl),M(Jn,e),e&&t(Ol),ai[Ce].d(e),e&&t(Ji),e&&t(Xi),e&&t(Rl),M(Xn,e),e&&t(Tl),M(Qn,e),e&&t(Cl),dt.d(e),e&&t(Qi)}}}const Qh={local:"vortrainierte-modelle-teilen",sections:[{local:"hochladen-mit-der-pushtohub-api",title:"Hochladen mit der `push_to_hub` API"},{local:"verwendung-der-huggingfacehub-python-bibliothek",title:"Verwendung der `huggingface_hub` Python Bibliothek"},{local:"mit-der-webinterface",title:"Mit der Webinterface"},{local:"hochladen-von-modelldateien",sections:[{local:"die-uploadfile-variante",title:"Die `upload_file` Variante"},{local:"die-repository-klasse",title:"Die `Repository` Klasse"},{local:"die-gitbasierte-variante",title:"Die git-basierte Variante"}],title:"Hochladen von Modell-Dateien"}],title:"Vortrainierte Modelle teilen"};function e_(P,f,p){let u="pt";return Dh(()=>{const g=new URLSearchParams(window.location.search);p(0,u=g.get("fw")||"pt")}),[u]}class a_ extends $h{constructor(f){super();zh(this,f,e_,Xh,Eh,{})}}export{a_ as default,Qh as metadata};
