import{S as Or,i as Ir,s as Mr,e as a,k as m,w as k,t as i,M as xr,c as r,d as o,m as f,a as n,x as P,h as t,b as d,N as Oi,G as l,g as s,y,q as T,o as C,B as q,v as Nr,L as bl}from"../chunks/vendor-hf-doc-builder.js";import{T as Lr}from"../chunks/Tip-hf-doc-builder.js";import{Y as Rr}from"../chunks/Youtube-hf-doc-builder.js";import{I as Je}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as Y}from"../chunks/CodeBlock-hf-doc-builder.js";import{F as Fr,M as El}from"../chunks/Markdown-hf-doc-builder.js";import"../chunks/IconTensorflow-hf-doc-builder.js";function Ur(I){let p,_,u,h,b;return{c(){p=a("p"),_=i("Per condividere un modello con la community, hai bisogno di un account su "),u=a("a"),h=i("huggingface.co"),b=i(". Puoi anche unirti ad un\u2019organizzazione esistente o crearne una nuova."),this.h()},l($){p=r($,"P",{});var w=n(p);_=t(w,"Per condividere un modello con la community, hai bisogno di un account su "),u=r(w,"A",{href:!0,rel:!0});var H=n(u);h=t(H,"huggingface.co"),H.forEach(o),b=t(w,". Puoi anche unirti ad un\u2019organizzazione esistente o crearne una nuova."),w.forEach(o),this.h()},h(){d(u,"href","https://huggingface.co/join"),d(u,"rel","nofollow")},m($,w){s($,p,w),l(p,_),l(p,u),l(u,h),l(p,b)},d($){$&&o(p)}}}function Gr(I){let p,_,u,h,b,$,w,H;return w=new Y({props:{code:`pt_model = DistilBertForSequenceClassification.from_pretrained(
    "path/verso/il-nome-magnifico-che-hai-scelto", from_tf=True
)
pt_model.save_pretrained("path/verso/il-nome-magnifico-che-hai-scelto")`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = DistilBertForSequenceClassification.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;path/verso/il-nome-magnifico-che-hai-scelto&quot;</span>, from_tf=<span class="hljs-literal">True</span>
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.save_pretrained(<span class="hljs-string">&quot;path/verso/il-nome-magnifico-che-hai-scelto&quot;</span>)`}}),{c(){p=a("p"),_=i("Specifica "),u=a("code"),h=i("from_tf=True"),b=i(" per convertire un checkpoint da TensorFlow a PyTorch:"),$=m(),k(w.$$.fragment)},l(z){p=r(z,"P",{});var A=n(p);_=t(A,"Specifica "),u=r(A,"CODE",{});var D=n(u);h=t(D,"from_tf=True"),D.forEach(o),b=t(A," per convertire un checkpoint da TensorFlow a PyTorch:"),A.forEach(o),$=f(z),P(w.$$.fragment,z)},m(z,A){s(z,p,A),l(p,_),l(p,u),l(u,h),l(p,b),s(z,$,A),y(w,z,A),H=!0},p:bl,i(z){H||(T(w.$$.fragment,z),H=!0)},o(z){C(w.$$.fragment,z),H=!1},d(z){z&&o(p),z&&o($),q(w,z)}}}function Br(I){let p,_;return p=new El({props:{$$slots:{default:[Gr]},$$scope:{ctx:I}}}),{c(){k(p.$$.fragment)},l(u){P(p.$$.fragment,u)},m(u,h){y(p,u,h),_=!0},p(u,h){const b={};h&2&&(b.$$scope={dirty:h,ctx:u}),p.$set(b)},i(u){_||(T(p.$$.fragment,u),_=!0)},o(u){C(p.$$.fragment,u),_=!1},d(u){q(p,u)}}}function Qr(I){let p,_,u,h,b,$,w,H,z,A,D,N,J;return w=new Y({props:{code:`tf_model = TFDistilBertForSequenceClassification.from_pretrained(
    "path/verso/il-nome-magnifico-che-hai-scelto", from_pt=True
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFDistilBertForSequenceClassification.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;path/verso/il-nome-magnifico-che-hai-scelto&quot;</span>, from_pt=<span class="hljs-literal">True</span>
<span class="hljs-meta">... </span>)`}}),N=new Y({props:{code:'tf_model.save_pretrained("path/verso/il-nome-magnifico-che-hai-scelto")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.save_pretrained(<span class="hljs-string">&quot;path/verso/il-nome-magnifico-che-hai-scelto&quot;</span>)'}}),{c(){p=a("p"),_=i("Specifica "),u=a("code"),h=i("from_pt=True"),b=i(" per convertire un checkpoint da PyTorch a TensorFlow:"),$=m(),k(w.$$.fragment),H=m(),z=a("p"),A=i("Poi puoi salvare il tuo nuovo modello in TensorFlow con il suo nuovo checkpoint:"),D=m(),k(N.$$.fragment)},l(v){p=r(v,"P",{});var O=n(p);_=t(O,"Specifica "),u=r(O,"CODE",{});var G=n(u);h=t(G,"from_pt=True"),G.forEach(o),b=t(O," per convertire un checkpoint da PyTorch a TensorFlow:"),O.forEach(o),$=f(v),P(w.$$.fragment,v),H=f(v),z=r(v,"P",{});var L=n(z);A=t(L,"Poi puoi salvare il tuo nuovo modello in TensorFlow con il suo nuovo checkpoint:"),L.forEach(o),D=f(v),P(N.$$.fragment,v)},m(v,O){s(v,p,O),l(p,_),l(p,u),l(u,h),l(p,b),s(v,$,O),y(w,v,O),s(v,H,O),s(v,z,O),l(z,A),s(v,D,O),y(N,v,O),J=!0},p:bl,i(v){J||(T(w.$$.fragment,v),T(N.$$.fragment,v),J=!0)},o(v){C(w.$$.fragment,v),C(N.$$.fragment,v),J=!1},d(v){v&&o(p),v&&o($),q(w,v),v&&o(H),v&&o(z),v&&o(D),q(N,v)}}}function Yr(I){let p,_;return p=new El({props:{$$slots:{default:[Qr]},$$scope:{ctx:I}}}),{c(){k(p.$$.fragment)},l(u){P(p.$$.fragment,u)},m(u,h){y(p,u,h),_=!0},p(u,h){const b={};h&2&&(b.$$scope={dirty:h,ctx:u}),p.$set(b)},i(u){_||(T(p.$$.fragment,u),_=!0)},o(u){C(p.$$.fragment,u),_=!1},d(u){q(p,u)}}}function Jr(I){let p,_,u,h,b;return h=new Y({props:{code:`flax_model = FlaxDistilBertForSequenceClassification.from_pretrained(
    "path/verso/il-nome-magnifico-che-hai-scelto", from_pt=True
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>flax_model = FlaxDistilBertForSequenceClassification.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;path/verso/il-nome-magnifico-che-hai-scelto&quot;</span>, from_pt=<span class="hljs-literal">True</span>
<span class="hljs-meta">... </span>)`}}),{c(){p=a("p"),_=i("Se un modello \xE8 disponibile in Flax, puoi anche convertire un checkpoint da PyTorch a Flax:"),u=m(),k(h.$$.fragment)},l($){p=r($,"P",{});var w=n(p);_=t(w,"Se un modello \xE8 disponibile in Flax, puoi anche convertire un checkpoint da PyTorch a Flax:"),w.forEach(o),u=f($),P(h.$$.fragment,$)},m($,w){s($,p,w),l(p,_),s($,u,w),y(h,$,w),b=!0},p:bl,i($){b||(T(h.$$.fragment,$),b=!0)},o($){C(h.$$.fragment,$),b=!1},d($){$&&o(p),$&&o(u),q(h,$)}}}function Kr(I){let p,_;return p=new El({props:{$$slots:{default:[Jr]},$$scope:{ctx:I}}}),{c(){k(p.$$.fragment)},l(u){P(p.$$.fragment,u)},m(u,h){y(p,u,h),_=!0},p(u,h){const b={};h&2&&(b.$$scope={dirty:h,ctx:u}),p.$set(b)},i(u){_||(T(p.$$.fragment,u),_=!0)},o(u){C(p.$$.fragment,u),_=!1},d(u){q(p,u)}}}function Vr(I){let p,_,u,h,b,$,w,H,z,A,D,N,J,v,O,G,L,Z,W,M,ae,ie,ee,te,K,V,F,R,ne,B,re,x,U,E,S,ce,X,oe;return p=new Rr({props:{id:"Z1-XMy-GNLQ"}}),Z=new Y({props:{code:'training_args = TrainingArguments(output_dir="il-mio-bellissimo-modello", push_to_hub=True)',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>training_args = TrainingArguments(output_dir=<span class="hljs-string">&quot;il-mio-bellissimo-modello&quot;</span>, push_to_hub=<span class="hljs-literal">True</span>)'}}),V=new Y({props:{code:`trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=small_train_dataset,
    eval_dataset=small_eval_dataset,
    compute_metrics=compute_metrics,
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>trainer = Trainer(
<span class="hljs-meta">... </span>    model=model,
<span class="hljs-meta">... </span>    args=training_args,
<span class="hljs-meta">... </span>    train_dataset=small_train_dataset,
<span class="hljs-meta">... </span>    eval_dataset=small_eval_dataset,
<span class="hljs-meta">... </span>    compute_metrics=compute_metrics,
<span class="hljs-meta">... </span>)`}}),X=new Y({props:{code:"trainer.push_to_hub()",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.push_to_hub()'}}),{c(){k(p.$$.fragment),_=m(),u=a("p"),h=i("Condividere un modello nell\u2019Hub \xE8 tanto semplice quanto aggiungere un parametro extra o un callback. Ricorda dal "),b=a("a"),$=i("tutorial sul fine-tuning"),w=i(", la classe "),H=a("code"),z=i("TrainingArguments"),A=i(" \xE8 dove specifichi gli iperparametri e le opzioni addizionali per l\u2019allenamento. Una di queste opzioni di training include l\u2019abilit\xE0 di condividere direttamente un modello nell\u2019Hub. Imposta "),D=a("code"),N=i("push_to_hub=True"),J=i(" in "),v=a("code"),O=i("TrainingArguments"),G=i(":"),L=m(),k(Z.$$.fragment),W=m(),M=a("p"),ae=i("Passa gli argomenti per il training come di consueto al "),ie=a("code"),ee=i("Trainer"),te=i(":"),K=m(),k(V.$$.fragment),F=m(),R=a("p"),ne=i("Dopo aver effettuato il fine-tuning del tuo modello, chiama "),B=a("code"),re=i("push_to_hub()"),x=i(" sul "),U=a("code"),E=i("Trainer"),S=i(" per condividere il modello allenato nell\u2019Hub. \u{1F917} Transformers aggiunger\xE0 in modo automatico persino gli iperparametri, i risultati del training e le versioni del framework alla scheda del tuo modello (model card, in inglese)!"),ce=m(),k(X.$$.fragment),this.h()},l(g){P(p.$$.fragment,g),_=f(g),u=r(g,"P",{});var j=n(u);h=t(j,"Condividere un modello nell\u2019Hub \xE8 tanto semplice quanto aggiungere un parametro extra o un callback. Ricorda dal "),b=r(j,"A",{href:!0});var pe=n(b);$=t(pe,"tutorial sul fine-tuning"),pe.forEach(o),w=t(j,", la classe "),H=r(j,"CODE",{});var me=n(H);z=t(me,"TrainingArguments"),me.forEach(o),A=t(j," \xE8 dove specifichi gli iperparametri e le opzioni addizionali per l\u2019allenamento. Una di queste opzioni di training include l\u2019abilit\xE0 di condividere direttamente un modello nell\u2019Hub. Imposta "),D=r(j,"CODE",{});var Q=n(D);N=t(Q,"push_to_hub=True"),Q.forEach(o),J=t(j," in "),v=r(j,"CODE",{});var _e=n(v);O=t(_e,"TrainingArguments"),_e.forEach(o),G=t(j,":"),j.forEach(o),L=f(g),P(Z.$$.fragment,g),W=f(g),M=r(g,"P",{});var le=n(M);ae=t(le,"Passa gli argomenti per il training come di consueto al "),ie=r(le,"CODE",{});var Eo=n(ie);ee=t(Eo,"Trainer"),Eo.forEach(o),te=t(le,":"),le.forEach(o),K=f(g),P(V.$$.fragment,g),F=f(g),R=r(g,"P",{});var fe=n(R);ne=t(fe,"Dopo aver effettuato il fine-tuning del tuo modello, chiama "),B=r(fe,"CODE",{});var ke=n(B);re=t(ke,"push_to_hub()"),ke.forEach(o),x=t(fe," sul "),U=r(fe,"CODE",{});var wo=n(U);E=t(wo,"Trainer"),wo.forEach(o),S=t(fe," per condividere il modello allenato nell\u2019Hub. \u{1F917} Transformers aggiunger\xE0 in modo automatico persino gli iperparametri, i risultati del training e le versioni del framework alla scheda del tuo modello (model card, in inglese)!"),fe.forEach(o),ce=f(g),P(X.$$.fragment,g),this.h()},h(){d(b,"href","training")},m(g,j){y(p,g,j),s(g,_,j),s(g,u,j),l(u,h),l(u,b),l(b,$),l(u,w),l(u,H),l(H,z),l(u,A),l(u,D),l(D,N),l(u,J),l(u,v),l(v,O),l(u,G),s(g,L,j),y(Z,g,j),s(g,W,j),s(g,M,j),l(M,ae),l(M,ie),l(ie,ee),l(M,te),s(g,K,j),y(V,g,j),s(g,F,j),s(g,R,j),l(R,ne),l(R,B),l(B,re),l(R,x),l(R,U),l(U,E),l(R,S),s(g,ce,j),y(X,g,j),oe=!0},p:bl,i(g){oe||(T(p.$$.fragment,g),T(Z.$$.fragment,g),T(V.$$.fragment,g),T(X.$$.fragment,g),oe=!0)},o(g){C(p.$$.fragment,g),C(Z.$$.fragment,g),C(V.$$.fragment,g),C(X.$$.fragment,g),oe=!1},d(g){q(p,g),g&&o(_),g&&o(u),g&&o(L),q(Z,g),g&&o(W),g&&o(M),g&&o(K),q(V,g),g&&o(F),g&&o(R),g&&o(ce),q(X,g)}}}function Xr(I){let p,_;return p=new El({props:{$$slots:{default:[Vr]},$$scope:{ctx:I}}}),{c(){k(p.$$.fragment)},l(u){P(p.$$.fragment,u)},m(u,h){y(p,u,h),_=!0},p(u,h){const b={};h&2&&(b.$$scope={dirty:h,ctx:u}),p.$set(b)},i(u){_||(T(p.$$.fragment,u),_=!0)},o(u){C(p.$$.fragment,u),_=!1},d(u){q(p,u)}}}function Zr(I){let p,_,u,h,b,$,w,H,z,A,D,N,J,v,O,G,L,Z,W,M,ae,ie,ee,te,K,V,F,R,ne,B,re,x,U;return ee=new Y({props:{code:`from transformers.keras.callbacks import PushToHubCallback

push_to_hub_callback = PushToHubCallback(
    output_dir="./il_path_dove_salvare_il_tuo_modello",
    tokenizer=tokenizer,
    hub_model_id="il-tuo-username/il-mio-bellissimo-modello",
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers.keras.callbacks <span class="hljs-keyword">import</span> PushToHubCallback

<span class="hljs-meta">&gt;&gt;&gt; </span>push_to_hub_callback = PushToHubCallback(
<span class="hljs-meta">... </span>    output_dir=<span class="hljs-string">&quot;./il_path_dove_salvare_il_tuo_modello&quot;</span>,
<span class="hljs-meta">... </span>    tokenizer=tokenizer,
<span class="hljs-meta">... </span>    hub_model_id=<span class="hljs-string">&quot;il-tuo-username/il-mio-bellissimo-modello&quot;</span>,
<span class="hljs-meta">... </span>)`}}),x=new Y({props:{code:"model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=3, callbacks=push_to_hub_callback)",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=<span class="hljs-number">3</span>, callbacks=push_to_hub_callback)'}}),{c(){p=a("p"),_=i("Condividi un modello nell\u2019Hub con "),u=a("code"),h=i("PushToHubCallback"),b=i(". Nella funzione "),$=a("code"),w=i("PushToHubCallback"),H=i(", aggiungi:"),z=m(),A=a("ul"),D=a("li"),N=i("Una directory di output per il tuo modello."),J=m(),v=a("li"),O=i("Un tokenizer."),G=m(),L=a("li"),Z=i("L\u2019"),W=a("code"),M=i("hub_model_id"),ae=i(", che \xE8 il tuo username sull\u2019Hub e il nome del modello."),ie=m(),k(ee.$$.fragment),te=m(),K=a("p"),V=i("Aggiungi il callback a "),F=a("a"),R=a("code"),ne=i("fit"),B=i(", e \u{1F917} Transformers caricher\xE0 il modello allenato nell\u2019Hub:"),re=m(),k(x.$$.fragment),this.h()},l(E){p=r(E,"P",{});var S=n(p);_=t(S,"Condividi un modello nell\u2019Hub con "),u=r(S,"CODE",{});var ce=n(u);h=t(ce,"PushToHubCallback"),ce.forEach(o),b=t(S,". Nella funzione "),$=r(S,"CODE",{});var X=n($);w=t(X,"PushToHubCallback"),X.forEach(o),H=t(S,", aggiungi:"),S.forEach(o),z=f(E),A=r(E,"UL",{});var oe=n(A);D=r(oe,"LI",{});var g=n(D);N=t(g,"Una directory di output per il tuo modello."),g.forEach(o),J=f(oe),v=r(oe,"LI",{});var j=n(v);O=t(j,"Un tokenizer."),j.forEach(o),G=f(oe),L=r(oe,"LI",{});var pe=n(L);Z=t(pe,"L\u2019"),W=r(pe,"CODE",{});var me=n(W);M=t(me,"hub_model_id"),me.forEach(o),ae=t(pe,", che \xE8 il tuo username sull\u2019Hub e il nome del modello."),pe.forEach(o),oe.forEach(o),ie=f(E),P(ee.$$.fragment,E),te=f(E),K=r(E,"P",{});var Q=n(K);V=t(Q,"Aggiungi il callback a "),F=r(Q,"A",{href:!0,rel:!0});var _e=n(F);R=r(_e,"CODE",{});var le=n(R);ne=t(le,"fit"),le.forEach(o),_e.forEach(o),B=t(Q,", e \u{1F917} Transformers caricher\xE0 il modello allenato nell\u2019Hub:"),Q.forEach(o),re=f(E),P(x.$$.fragment,E),this.h()},h(){d(F,"href","https://keras.io/api/models/model_training_apis/"),d(F,"rel","nofollow")},m(E,S){s(E,p,S),l(p,_),l(p,u),l(u,h),l(p,b),l(p,$),l($,w),l(p,H),s(E,z,S),s(E,A,S),l(A,D),l(D,N),l(A,J),l(A,v),l(v,O),l(A,G),l(A,L),l(L,Z),l(L,W),l(W,M),l(L,ae),s(E,ie,S),y(ee,E,S),s(E,te,S),s(E,K,S),l(K,V),l(K,F),l(F,R),l(R,ne),l(K,B),s(E,re,S),y(x,E,S),U=!0},p:bl,i(E){U||(T(ee.$$.fragment,E),T(x.$$.fragment,E),U=!0)},o(E){C(ee.$$.fragment,E),C(x.$$.fragment,E),U=!1},d(E){E&&o(p),E&&o(z),E&&o(A),E&&o(ie),q(ee,E),E&&o(te),E&&o(K),E&&o(re),q(x,E)}}}function Wr(I){let p,_;return p=new El({props:{$$slots:{default:[Zr]},$$scope:{ctx:I}}}),{c(){k(p.$$.fragment)},l(u){P(p.$$.fragment,u)},m(u,h){y(p,u,h),_=!0},p(u,h){const b={};h&2&&(b.$$scope={dirty:h,ctx:u}),p.$set(b)},i(u){_||(T(p.$$.fragment,u),_=!0)},o(u){C(p.$$.fragment,u),_=!1},d(u){q(p,u)}}}function en(I){let p,_,u,h,b,$,w,H,z,A,D,N,J,v,O,G,L,Z,W,M,ae,ie,ee,te,K,V,F,R,ne,B,re,x,U,E,S,ce,X,oe,g,j,pe,me,Q,_e,le,Eo,fe,ke,wo,Ii,wl,Pe,Mi,xo,xi,Ni,zl,Ke,kl,zo,Li,Pl,ko,Po,wa,yl,ve,ye,No,Ve,Ri,Lo,Ui,Tl,Te,Gi,Ro,Bi,Qi,Cl,Xe,ql,Ce,Yi,Ze,Uo,Ji,Ki,jl,We,Al,de,Vi,Go,Xi,Zi,eo,Wi,et,Hl,oo,Sl,$e,qe,Bo,lo,ot,Qo,lt,Dl,yo,it,Fl,je,tt,To,at,rt,Ol,Ae,Il,be,He,Yo,io,nt,Jo,st,Ml,Se,xl,Ee,De,Ko,to,ut,Co,ct,Vo,pt,Nl,Fe,mt,Xo,ft,dt,Ll,Oe,ht,Zo,gt,_t,Rl,ao,Ul,he,vt,Wo,$t,bt,el,Et,wt,Gl,ro,Bl,Ie,zt,ol,kt,Pt,Ql,no,Yl,Me,yt,ll,Tt,Ct,Jl,so,Kl,qo,qt,Vl,uo,Xl,xe,jt,il,At,Ht,Zl,Ne,St,co,Dt,Ft,Wl,we,Le,tl,po,Ot,al,It,ei,Re,Mt,mo,xt,Nt,oi,jo,Ao,za,li,Ho,Lt,ii,se,fo,Rt,rl,Ut,Gt,Bt,nl,Qt,Yt,sl,Jt,Kt,ul,Vt,ti,ge,Xt,cl,Zt,Wt,pl,ea,oa,ai,So,Do,ka,ri,ze,Ue,ml,ho,la,fl,ia,ni,Ge,ta,dl,aa,ra,si,Be,go,na,hl,sa,ua,ca,_o,pa,gl,ma,fa,ui,ue,da,vo,ha,ga,_l,_a,va,$o,$a,ba,ci;return $=new Je({}),B=new Lr({props:{$$slots:{default:[Ur]},$$scope:{ctx:I}}}),S=new Je({}),Ke=new Y({props:{code:`model = AutoModel.from_pretrained(
    "julien-c/EsperBERTo-small", revision="v2.0.1"  # nome di un tag, di un branch, o commit hash
)`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModel.from_pretrained(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;julien-c/EsperBERTo-small&quot;</span>, revision=<span class="hljs-string">&quot;v2.0.1&quot;</span>  <span class="hljs-comment"># nome di un tag, di un branch, o commit hash</span>
<span class="hljs-meta">... </span>)`}}),Ve=new Je({}),Xe=new Y({props:{code:"huggingface-cli login",highlighted:"huggingface-cli login"}}),We=new Y({props:{code:"pip install huggingface_hub",highlighted:"pip install huggingface_hub"}}),oo=new Y({props:{code:`from huggingface_hub import notebook_login

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

<span class="hljs-meta">&gt;&gt;&gt; </span>notebook_login()`}}),lo=new Je({}),Ae=new Fr({props:{pytorch:!0,tensorflow:!0,jax:!0,$$slots:{jax:[Kr],tensorflow:[Yr],pytorch:[Br]},$$scope:{ctx:I}}}),io=new Je({}),Se=new Fr({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Wr],pytorch:[Xr]},$$scope:{ctx:I}}}),to=new Je({}),ao=new Y({props:{code:'pt_model.push_to_hub("il-mio-bellissimo-modello")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.push_to_hub(<span class="hljs-string">&quot;il-mio-bellissimo-modello&quot;</span>)'}}),ro=new Y({props:{code:`from transformers import AutoModel

model = AutoModel.from_pretrained("il-tuo-username/il-mio-bellissimo-modello")`,highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModel

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModel.from_pretrained(<span class="hljs-string">&quot;il-tuo-username/il-mio-bellissimo-modello&quot;</span>)`}}),no=new Y({props:{code:'pt_model.push_to_hub("il-mio-bellissimo-modello", organization="la-mia-fantastica-org")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.push_to_hub(<span class="hljs-string">&quot;il-mio-bellissimo-modello&quot;</span>, organization=<span class="hljs-string">&quot;la-mia-fantastica-org&quot;</span>)'}}),so=new Y({props:{code:'tokenizer.push_to_hub("il-mio-bellissimo-modello")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.push_to_hub(<span class="hljs-string">&quot;il-mio-bellissimo-modello&quot;</span>)'}}),uo=new Y({props:{code:'tf_model.push_to_hub("il-mio-bellissimo-modello")',highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.push_to_hub(<span class="hljs-string">&quot;il-mio-bellissimo-modello&quot;</span>)'}}),po=new Je({}),ho=new Je({}),{c(){p=a("meta"),_=m(),u=a("h1"),h=a("a"),b=a("span"),k($.$$.fragment),w=m(),H=a("span"),z=i("Condividi un modello"),A=m(),D=a("p"),N=i("Gli ultimi due tutorial ti hanno mostrato come puoi fare fine-tuning di un modello con PyTorch, Keras e \u{1F917} Accelerate per configurazioni distribuite. Il prossimo passo \xE8 quello di condividere il tuo modello con la community! In Hugging Face, crediamo nella condivisione della conoscenza e delle risorse in modo da democratizzare l\u2019intelligenza artificiale per chiunque. Ti incoraggiamo a considerare di condividere il tuo modello con la community per aiutare altre persone a risparmiare tempo e risorse."),J=m(),v=a("p"),O=i("In questo tutorial, imparerai due metodi per la condivisione di un modello trained o fine-tuned nel "),G=a("a"),L=i("Model Hub"),Z=i(":"),W=m(),M=a("ul"),ae=a("li"),ie=i("Condividi in modo programmatico i tuoi file nell\u2019Hub."),ee=m(),te=a("li"),K=i("Trascina i tuoi file nell\u2019Hub mediante interfaccia grafica."),V=m(),F=a("iframe"),ne=m(),k(B.$$.fragment),re=m(),x=a("h2"),U=a("a"),E=a("span"),k(S.$$.fragment),ce=m(),X=a("span"),oe=i("Caratteristiche dei repository"),g=m(),j=a("p"),pe=i("Ogni repository nel Model Hub si comporta come un tipico repository di GitHub. I nostri repository offrono il versionamento, la cronologia dei commit, e la possibilit\xE0 di visualizzare le differenze."),me=m(),Q=a("p"),_e=i("Il versionamento all\u2019interno del Model Hub \xE8 basato su git e "),le=a("a"),Eo=i("git-lfs"),fe=i(". In altre parole, puoi trattare un modello come un unico repository, consentendo un maggiore controllo degli accessi e maggiore scalabilit\xE0. Il controllo delle versioni consente "),ke=a("em"),wo=i("revisions"),Ii=i(", un metodo per appuntare una versione specifica di un modello con un hash di commit, un tag o un branch."),wl=m(),Pe=a("p"),Mi=i("Come risultato, puoi caricare una specifica versione di un modello con il parametro "),xo=a("code"),xi=i("revision"),Ni=i(":"),zl=m(),k(Ke.$$.fragment),kl=m(),zo=a("p"),Li=i("Anche i file possono essere modificati facilmente in un repository ed \xE8 possibile visualizzare la cronologia dei commit e le differenze:"),Pl=m(),ko=a("p"),Po=a("img"),yl=m(),ve=a("h2"),ye=a("a"),No=a("span"),k(Ve.$$.fragment),Ri=m(),Lo=a("span"),Ui=i("Configurazione"),Tl=m(),Te=a("p"),Gi=i("Prima di condividere un modello nell\u2019Hub, hai bisogno delle tue credenziali di Hugging Face. Se hai accesso ad un terminale, esegui il seguente comando nell\u2019ambiente virtuale in cui \xE8 installata la libreria \u{1F917} Transformers. Questo memorizzer\xE0 il tuo token di accesso nella cartella cache di Hugging Face (di default "),Ro=a("code"),Bi=i("~/.cache/"),Qi=i("):"),Cl=m(),k(Xe.$$.fragment),ql=m(),Ce=a("p"),Yi=i("Se stai usando un notebook come Jupyter o Colaboratory, assicurati di avere la libreria "),Ze=a("a"),Uo=a("code"),Ji=i("huggingface_hub"),Ki=i(" installata. Questa libreria ti permette di interagire in maniera programmatica con l\u2019Hub."),jl=m(),k(We.$$.fragment),Al=m(),de=a("p"),Vi=i("Utilizza "),Go=a("code"),Xi=i("notebook_login"),Zi=i(" per accedere all\u2019Hub, e segui il link "),eo=a("a"),Wi=i("qui"),et=i(" per generare un token con cui effettuare il login:"),Hl=m(),k(oo.$$.fragment),Sl=m(),$e=a("h2"),qe=a("a"),Bo=a("span"),k(lo.$$.fragment),ot=m(),Qo=a("span"),lt=i("Converti un modello per tutti i framework"),Dl=m(),yo=a("p"),it=i("Per assicurarti che il tuo modello possa essere utilizzato da persone che lavorano con un framework differente, ti raccomandiamo di convertire e caricare il tuo modello sia con i checkpoint di PyTorch che con quelli di TensorFlow. Anche se \xE8 possibile caricare il modello da un framework diverso, se si salta questo passaggio, il caricamento sar\xE0 pi\xF9 lento perch\xE9 \u{1F917} Transformers ha bisogno di convertire i checkpoint al momento."),Fl=m(),je=a("p"),tt=i("Convertire un checkpoint per un altro framework \xE8 semplice. Assicurati di avere PyTorch e TensorFlow installati (vedi "),To=a("a"),at=i("qui"),rt=i(" per le istruzioni d\u2019installazione), e poi trova il modello specifico per il tuo compito nell\u2019altro framework."),Ol=m(),k(Ae.$$.fragment),Il=m(),be=a("h2"),He=a("a"),Yo=a("span"),k(io.$$.fragment),nt=m(),Jo=a("span"),st=i("Condividi un modello durante il training"),Ml=m(),k(Se.$$.fragment),xl=m(),Ee=a("h2"),De=a("a"),Ko=a("span"),k(to.$$.fragment),ut=m(),Co=a("span"),ct=i("Utilizzare la funzione "),Vo=a("code"),pt=i("push_to_hub"),Nl=m(),Fe=a("p"),mt=i("Puoi anche chiamare "),Xo=a("code"),ft=i("push_to_hub"),dt=i(" direttamente sul tuo modello per caricarlo nell\u2019Hub."),Ll=m(),Oe=a("p"),ht=i("Specifica il nome del tuo modello in "),Zo=a("code"),gt=i("push_to_hub"),_t=i(":"),Rl=m(),k(ao.$$.fragment),Ul=m(),he=a("p"),vt=i("Questo crea un repository sotto il proprio username con il nome del modello "),Wo=a("code"),$t=i("il-mio-bellissimo-modello"),bt=i(". Ora chiunque pu\xF2 caricare il tuo modello con la funzione "),el=a("code"),Et=i("from_pretrained"),wt=i(":"),Gl=m(),k(ro.$$.fragment),Bl=m(),Ie=a("p"),zt=i("Se fai parte di un\u2019organizzazione e vuoi invece condividere un modello sotto il nome dell\u2019organizzazione, aggiungi il parametro "),ol=a("code"),kt=i("organization"),Pt=i(":"),Ql=m(),k(no.$$.fragment),Yl=m(),Me=a("p"),yt=i("La funzione "),ll=a("code"),Tt=i("push_to_hub"),Ct=i(" pu\xF2 essere anche utilizzata per aggiungere altri file al repository del modello. Per esempio, aggiungi un tokenizer ad un repository di un modello:"),Jl=m(),k(so.$$.fragment),Kl=m(),qo=a("p"),qt=i("O magari potresti voler aggiungere la versione di TensorFlow del tuo modello PyTorch a cui hai fatto fine-tuning:"),Vl=m(),k(uo.$$.fragment),Xl=m(),xe=a("p"),jt=i("Ora quando navighi nel tuo profilo Hugging Face, dovresti vedere il tuo repository del modello appena creato. Premendo sulla scheda "),il=a("strong"),At=i("Files"),Ht=i(" vengono visualizzati tutti i file caricati nel repository."),Zl=m(),Ne=a("p"),St=i("Per maggiori dettagli su come creare e caricare file ad un repository, fai riferimento alla documentazione "),co=a("a"),Dt=i("qui"),Ft=i("."),Wl=m(),we=a("h2"),Le=a("a"),tl=a("span"),k(po.$$.fragment),Ot=m(),al=a("span"),It=i("Carica un modello utilizzando l'interfaccia web"),ei=m(),Re=a("p"),Mt=i("Chi preferisce un approccio senza codice pu\xF2 caricare un modello tramite l\u2019interfaccia web dell\u2019hub. Visita "),mo=a("a"),xt=i("huggingface.co/new"),Nt=i(" per creare un nuovo repository:"),oi=m(),jo=a("p"),Ao=a("img"),li=m(),Ho=a("p"),Lt=i("Da qui, aggiungi alcune informazioni sul tuo modello:"),ii=m(),se=a("ul"),fo=a("li"),Rt=i("Seleziona il/la "),rl=a("strong"),Ut=i("owner"),Gt=i(" del repository. Puoi essere te o qualunque organizzazione di cui fai parte."),Bt=m(),nl=a("li"),Qt=i("Scegli un nome per il tuo modello, il quale sar\xE0 anche il nome del repository."),Yt=m(),sl=a("li"),Jt=i("Scegli se il tuo modello \xE8 pubblico o privato."),Kt=m(),ul=a("li"),Vt=i("Specifica la licenza utilizzata per il tuo modello."),ti=m(),ge=a("p"),Xt=i("Ora premi sulla scheda "),cl=a("strong"),Zt=i("Files"),Wt=i(" e premi sul pulsante "),pl=a("strong"),ea=i("Add file"),oa=i(" per caricare un nuovo file al tuo repository. Trascina poi un file per caricarlo e aggiungere un messaggio di commit."),ai=m(),So=a("p"),Do=a("img"),ri=m(),ze=a("h2"),Ue=a("a"),ml=a("span"),k(ho.$$.fragment),la=m(),fl=a("span"),ia=i("Aggiungi una scheda del modello"),ni=m(),Ge=a("p"),ta=i("Per assicurarti che chiunque possa comprendere le abilit\xE0, limitazioni, i potenziali bias e le considerazioni etiche del tuo modello, per favore aggiungi una scheda del modello (model card, in inglese) al tuo repository. La scheda del modello \xE8 definita nel file "),dl=a("code"),aa=i("README.md"),ra=i(". Puoi aggiungere una scheda del modello:"),si=m(),Be=a("ul"),go=a("li"),na=i("Creando manualmente e caricando un file "),hl=a("code"),sa=i("README.md"),ua=i("."),ca=m(),_o=a("li"),pa=i("Premendo sul pulsante "),gl=a("strong"),ma=i("Edit model card"),fa=i(" nel repository del tuo modello."),ui=m(),ue=a("p"),da=i("Dai un\u2019occhiata alla "),vo=a("a"),ha=i("scheda del modello"),ga=i(" di DistilBert per avere un buon esempio del tipo di informazioni che una scheda di un modello deve includere. Per maggiori dettagli legati ad altre opzioni che puoi controllare nel file "),_l=a("code"),_a=i("README.md"),va=i(", come l\u2019impatto ambientale o widget di esempio, fai riferimento alla documentazione "),$o=a("a"),$a=i("qui"),ba=i("."),this.h()},l(e){const c=xr('[data-svelte="svelte-1phssyn"]',document.head);p=r(c,"META",{name:!0,content:!0}),c.forEach(o),_=f(e),u=r(e,"H1",{class:!0});var bo=n(u);h=r(bo,"A",{id:!0,class:!0,href:!0});var vl=n(h);b=r(vl,"SPAN",{});var $l=n(b);P($.$$.fragment,$l),$l.forEach(o),vl.forEach(o),w=f(bo),H=r(bo,"SPAN",{});var Pa=n(H);z=t(Pa,"Condividi un modello"),Pa.forEach(o),bo.forEach(o),A=f(e),D=r(e,"P",{});var ya=n(D);N=t(ya,"Gli ultimi due tutorial ti hanno mostrato come puoi fare fine-tuning di un modello con PyTorch, Keras e \u{1F917} Accelerate per configurazioni distribuite. Il prossimo passo \xE8 quello di condividere il tuo modello con la community! In Hugging Face, crediamo nella condivisione della conoscenza e delle risorse in modo da democratizzare l\u2019intelligenza artificiale per chiunque. Ti incoraggiamo a considerare di condividere il tuo modello con la community per aiutare altre persone a risparmiare tempo e risorse."),ya.forEach(o),J=f(e),v=r(e,"P",{});var pi=n(v);O=t(pi,"In questo tutorial, imparerai due metodi per la condivisione di un modello trained o fine-tuned nel "),G=r(pi,"A",{href:!0,rel:!0});var Ta=n(G);L=t(Ta,"Model Hub"),Ta.forEach(o),Z=t(pi,":"),pi.forEach(o),W=f(e),M=r(e,"UL",{});var mi=n(M);ae=r(mi,"LI",{});var Ca=n(ae);ie=t(Ca,"Condividi in modo programmatico i tuoi file nell\u2019Hub."),Ca.forEach(o),ee=f(mi),te=r(mi,"LI",{});var qa=n(te);K=t(qa,"Trascina i tuoi file nell\u2019Hub mediante interfaccia grafica."),qa.forEach(o),mi.forEach(o),V=f(e),F=r(e,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0}),n(F).forEach(o),ne=f(e),P(B.$$.fragment,e),re=f(e),x=r(e,"H2",{class:!0});var fi=n(x);U=r(fi,"A",{id:!0,class:!0,href:!0});var ja=n(U);E=r(ja,"SPAN",{});var Aa=n(E);P(S.$$.fragment,Aa),Aa.forEach(o),ja.forEach(o),ce=f(fi),X=r(fi,"SPAN",{});var Ha=n(X);oe=t(Ha,"Caratteristiche dei repository"),Ha.forEach(o),fi.forEach(o),g=f(e),j=r(e,"P",{});var Sa=n(j);pe=t(Sa,"Ogni repository nel Model Hub si comporta come un tipico repository di GitHub. I nostri repository offrono il versionamento, la cronologia dei commit, e la possibilit\xE0 di visualizzare le differenze."),Sa.forEach(o),me=f(e),Q=r(e,"P",{});var Fo=n(Q);_e=t(Fo,"Il versionamento all\u2019interno del Model Hub \xE8 basato su git e "),le=r(Fo,"A",{href:!0,rel:!0});var Da=n(le);Eo=t(Da,"git-lfs"),Da.forEach(o),fe=t(Fo,". In altre parole, puoi trattare un modello come un unico repository, consentendo un maggiore controllo degli accessi e maggiore scalabilit\xE0. Il controllo delle versioni consente "),ke=r(Fo,"EM",{});var Fa=n(ke);wo=t(Fa,"revisions"),Fa.forEach(o),Ii=t(Fo,", un metodo per appuntare una versione specifica di un modello con un hash di commit, un tag o un branch."),Fo.forEach(o),wl=f(e),Pe=r(e,"P",{});var di=n(Pe);Mi=t(di,"Come risultato, puoi caricare una specifica versione di un modello con il parametro "),xo=r(di,"CODE",{});var Oa=n(xo);xi=t(Oa,"revision"),Oa.forEach(o),Ni=t(di,":"),di.forEach(o),zl=f(e),P(Ke.$$.fragment,e),kl=f(e),zo=r(e,"P",{});var Ia=n(zo);Li=t(Ia,"Anche i file possono essere modificati facilmente in un repository ed \xE8 possibile visualizzare la cronologia dei commit e le differenze:"),Ia.forEach(o),Pl=f(e),ko=r(e,"P",{});var Ma=n(ko);Po=r(Ma,"IMG",{src:!0,alt:!0}),Ma.forEach(o),yl=f(e),ve=r(e,"H2",{class:!0});var hi=n(ve);ye=r(hi,"A",{id:!0,class:!0,href:!0});var xa=n(ye);No=r(xa,"SPAN",{});var Na=n(No);P(Ve.$$.fragment,Na),Na.forEach(o),xa.forEach(o),Ri=f(hi),Lo=r(hi,"SPAN",{});var La=n(Lo);Ui=t(La,"Configurazione"),La.forEach(o),hi.forEach(o),Tl=f(e),Te=r(e,"P",{});var gi=n(Te);Gi=t(gi,"Prima di condividere un modello nell\u2019Hub, hai bisogno delle tue credenziali di Hugging Face. Se hai accesso ad un terminale, esegui il seguente comando nell\u2019ambiente virtuale in cui \xE8 installata la libreria \u{1F917} Transformers. Questo memorizzer\xE0 il tuo token di accesso nella cartella cache di Hugging Face (di default "),Ro=r(gi,"CODE",{});var Ra=n(Ro);Bi=t(Ra,"~/.cache/"),Ra.forEach(o),Qi=t(gi,"):"),gi.forEach(o),Cl=f(e),P(Xe.$$.fragment,e),ql=f(e),Ce=r(e,"P",{});var _i=n(Ce);Yi=t(_i,"Se stai usando un notebook come Jupyter o Colaboratory, assicurati di avere la libreria "),Ze=r(_i,"A",{href:!0,rel:!0});var Ua=n(Ze);Uo=r(Ua,"CODE",{});var Ga=n(Uo);Ji=t(Ga,"huggingface_hub"),Ga.forEach(o),Ua.forEach(o),Ki=t(_i," installata. Questa libreria ti permette di interagire in maniera programmatica con l\u2019Hub."),_i.forEach(o),jl=f(e),P(We.$$.fragment,e),Al=f(e),de=r(e,"P",{});var Oo=n(de);Vi=t(Oo,"Utilizza "),Go=r(Oo,"CODE",{});var Ba=n(Go);Xi=t(Ba,"notebook_login"),Ba.forEach(o),Zi=t(Oo," per accedere all\u2019Hub, e segui il link "),eo=r(Oo,"A",{href:!0,rel:!0});var Qa=n(eo);Wi=t(Qa,"qui"),Qa.forEach(o),et=t(Oo," per generare un token con cui effettuare il login:"),Oo.forEach(o),Hl=f(e),P(oo.$$.fragment,e),Sl=f(e),$e=r(e,"H2",{class:!0});var vi=n($e);qe=r(vi,"A",{id:!0,class:!0,href:!0});var Ya=n(qe);Bo=r(Ya,"SPAN",{});var Ja=n(Bo);P(lo.$$.fragment,Ja),Ja.forEach(o),Ya.forEach(o),ot=f(vi),Qo=r(vi,"SPAN",{});var Ka=n(Qo);lt=t(Ka,"Converti un modello per tutti i framework"),Ka.forEach(o),vi.forEach(o),Dl=f(e),yo=r(e,"P",{});var Va=n(yo);it=t(Va,"Per assicurarti che il tuo modello possa essere utilizzato da persone che lavorano con un framework differente, ti raccomandiamo di convertire e caricare il tuo modello sia con i checkpoint di PyTorch che con quelli di TensorFlow. Anche se \xE8 possibile caricare il modello da un framework diverso, se si salta questo passaggio, il caricamento sar\xE0 pi\xF9 lento perch\xE9 \u{1F917} Transformers ha bisogno di convertire i checkpoint al momento."),Va.forEach(o),Fl=f(e),je=r(e,"P",{});var $i=n(je);tt=t($i,"Convertire un checkpoint per un altro framework \xE8 semplice. Assicurati di avere PyTorch e TensorFlow installati (vedi "),To=r($i,"A",{href:!0});var Xa=n(To);at=t(Xa,"qui"),Xa.forEach(o),rt=t($i," per le istruzioni d\u2019installazione), e poi trova il modello specifico per il tuo compito nell\u2019altro framework."),$i.forEach(o),Ol=f(e),P(Ae.$$.fragment,e),Il=f(e),be=r(e,"H2",{class:!0});var bi=n(be);He=r(bi,"A",{id:!0,class:!0,href:!0});var Za=n(He);Yo=r(Za,"SPAN",{});var Wa=n(Yo);P(io.$$.fragment,Wa),Wa.forEach(o),Za.forEach(o),nt=f(bi),Jo=r(bi,"SPAN",{});var er=n(Jo);st=t(er,"Condividi un modello durante il training"),er.forEach(o),bi.forEach(o),Ml=f(e),P(Se.$$.fragment,e),xl=f(e),Ee=r(e,"H2",{class:!0});var Ei=n(Ee);De=r(Ei,"A",{id:!0,class:!0,href:!0});var or=n(De);Ko=r(or,"SPAN",{});var lr=n(Ko);P(to.$$.fragment,lr),lr.forEach(o),or.forEach(o),ut=f(Ei),Co=r(Ei,"SPAN",{});var Ea=n(Co);ct=t(Ea,"Utilizzare la funzione "),Vo=r(Ea,"CODE",{});var ir=n(Vo);pt=t(ir,"push_to_hub"),ir.forEach(o),Ea.forEach(o),Ei.forEach(o),Nl=f(e),Fe=r(e,"P",{});var wi=n(Fe);mt=t(wi,"Puoi anche chiamare "),Xo=r(wi,"CODE",{});var tr=n(Xo);ft=t(tr,"push_to_hub"),tr.forEach(o),dt=t(wi," direttamente sul tuo modello per caricarlo nell\u2019Hub."),wi.forEach(o),Ll=f(e),Oe=r(e,"P",{});var zi=n(Oe);ht=t(zi,"Specifica il nome del tuo modello in "),Zo=r(zi,"CODE",{});var ar=n(Zo);gt=t(ar,"push_to_hub"),ar.forEach(o),_t=t(zi,":"),zi.forEach(o),Rl=f(e),P(ao.$$.fragment,e),Ul=f(e),he=r(e,"P",{});var Io=n(he);vt=t(Io,"Questo crea un repository sotto il proprio username con il nome del modello "),Wo=r(Io,"CODE",{});var rr=n(Wo);$t=t(rr,"il-mio-bellissimo-modello"),rr.forEach(o),bt=t(Io,". Ora chiunque pu\xF2 caricare il tuo modello con la funzione "),el=r(Io,"CODE",{});var nr=n(el);Et=t(nr,"from_pretrained"),nr.forEach(o),wt=t(Io,":"),Io.forEach(o),Gl=f(e),P(ro.$$.fragment,e),Bl=f(e),Ie=r(e,"P",{});var ki=n(Ie);zt=t(ki,"Se fai parte di un\u2019organizzazione e vuoi invece condividere un modello sotto il nome dell\u2019organizzazione, aggiungi il parametro "),ol=r(ki,"CODE",{});var sr=n(ol);kt=t(sr,"organization"),sr.forEach(o),Pt=t(ki,":"),ki.forEach(o),Ql=f(e),P(no.$$.fragment,e),Yl=f(e),Me=r(e,"P",{});var Pi=n(Me);yt=t(Pi,"La funzione "),ll=r(Pi,"CODE",{});var ur=n(ll);Tt=t(ur,"push_to_hub"),ur.forEach(o),Ct=t(Pi," pu\xF2 essere anche utilizzata per aggiungere altri file al repository del modello. Per esempio, aggiungi un tokenizer ad un repository di un modello:"),Pi.forEach(o),Jl=f(e),P(so.$$.fragment,e),Kl=f(e),qo=r(e,"P",{});var cr=n(qo);qt=t(cr,"O magari potresti voler aggiungere la versione di TensorFlow del tuo modello PyTorch a cui hai fatto fine-tuning:"),cr.forEach(o),Vl=f(e),P(uo.$$.fragment,e),Xl=f(e),xe=r(e,"P",{});var yi=n(xe);jt=t(yi,"Ora quando navighi nel tuo profilo Hugging Face, dovresti vedere il tuo repository del modello appena creato. Premendo sulla scheda "),il=r(yi,"STRONG",{});var pr=n(il);At=t(pr,"Files"),pr.forEach(o),Ht=t(yi," vengono visualizzati tutti i file caricati nel repository."),yi.forEach(o),Zl=f(e),Ne=r(e,"P",{});var Ti=n(Ne);St=t(Ti,"Per maggiori dettagli su come creare e caricare file ad un repository, fai riferimento alla documentazione "),co=r(Ti,"A",{href:!0,rel:!0});var mr=n(co);Dt=t(mr,"qui"),mr.forEach(o),Ft=t(Ti,"."),Ti.forEach(o),Wl=f(e),we=r(e,"H2",{class:!0});var Ci=n(we);Le=r(Ci,"A",{id:!0,class:!0,href:!0});var fr=n(Le);tl=r(fr,"SPAN",{});var dr=n(tl);P(po.$$.fragment,dr),dr.forEach(o),fr.forEach(o),Ot=f(Ci),al=r(Ci,"SPAN",{});var hr=n(al);It=t(hr,"Carica un modello utilizzando l'interfaccia web"),hr.forEach(o),Ci.forEach(o),ei=f(e),Re=r(e,"P",{});var qi=n(Re);Mt=t(qi,"Chi preferisce un approccio senza codice pu\xF2 caricare un modello tramite l\u2019interfaccia web dell\u2019hub. Visita "),mo=r(qi,"A",{href:!0,rel:!0});var gr=n(mo);xt=t(gr,"huggingface.co/new"),gr.forEach(o),Nt=t(qi," per creare un nuovo repository:"),qi.forEach(o),oi=f(e),jo=r(e,"P",{});var _r=n(jo);Ao=r(_r,"IMG",{src:!0,alt:!0}),_r.forEach(o),li=f(e),Ho=r(e,"P",{});var vr=n(Ho);Lt=t(vr,"Da qui, aggiungi alcune informazioni sul tuo modello:"),vr.forEach(o),ii=f(e),se=r(e,"UL",{});var Qe=n(se);fo=r(Qe,"LI",{});var ji=n(fo);Rt=t(ji,"Seleziona il/la "),rl=r(ji,"STRONG",{});var $r=n(rl);Ut=t($r,"owner"),$r.forEach(o),Gt=t(ji," del repository. Puoi essere te o qualunque organizzazione di cui fai parte."),ji.forEach(o),Bt=f(Qe),nl=r(Qe,"LI",{});var br=n(nl);Qt=t(br,"Scegli un nome per il tuo modello, il quale sar\xE0 anche il nome del repository."),br.forEach(o),Yt=f(Qe),sl=r(Qe,"LI",{});var Er=n(sl);Jt=t(Er,"Scegli se il tuo modello \xE8 pubblico o privato."),Er.forEach(o),Kt=f(Qe),ul=r(Qe,"LI",{});var wr=n(ul);Vt=t(wr,"Specifica la licenza utilizzata per il tuo modello."),wr.forEach(o),Qe.forEach(o),ti=f(e),ge=r(e,"P",{});var Mo=n(ge);Xt=t(Mo,"Ora premi sulla scheda "),cl=r(Mo,"STRONG",{});var zr=n(cl);Zt=t(zr,"Files"),zr.forEach(o),Wt=t(Mo," e premi sul pulsante "),pl=r(Mo,"STRONG",{});var kr=n(pl);ea=t(kr,"Add file"),kr.forEach(o),oa=t(Mo," per caricare un nuovo file al tuo repository. Trascina poi un file per caricarlo e aggiungere un messaggio di commit."),Mo.forEach(o),ai=f(e),So=r(e,"P",{});var Pr=n(So);Do=r(Pr,"IMG",{src:!0,alt:!0}),Pr.forEach(o),ri=f(e),ze=r(e,"H2",{class:!0});var Ai=n(ze);Ue=r(Ai,"A",{id:!0,class:!0,href:!0});var yr=n(Ue);ml=r(yr,"SPAN",{});var Tr=n(ml);P(ho.$$.fragment,Tr),Tr.forEach(o),yr.forEach(o),la=f(Ai),fl=r(Ai,"SPAN",{});var Cr=n(fl);ia=t(Cr,"Aggiungi una scheda del modello"),Cr.forEach(o),Ai.forEach(o),ni=f(e),Ge=r(e,"P",{});var Hi=n(Ge);ta=t(Hi,"Per assicurarti che chiunque possa comprendere le abilit\xE0, limitazioni, i potenziali bias e le considerazioni etiche del tuo modello, per favore aggiungi una scheda del modello (model card, in inglese) al tuo repository. La scheda del modello \xE8 definita nel file "),dl=r(Hi,"CODE",{});var qr=n(dl);aa=t(qr,"README.md"),qr.forEach(o),ra=t(Hi,". Puoi aggiungere una scheda del modello:"),Hi.forEach(o),si=f(e),Be=r(e,"UL",{});var Si=n(Be);go=r(Si,"LI",{});var Di=n(go);na=t(Di,"Creando manualmente e caricando un file "),hl=r(Di,"CODE",{});var jr=n(hl);sa=t(jr,"README.md"),jr.forEach(o),ua=t(Di,"."),Di.forEach(o),ca=f(Si),_o=r(Si,"LI",{});var Fi=n(_o);pa=t(Fi,"Premendo sul pulsante "),gl=r(Fi,"STRONG",{});var Ar=n(gl);ma=t(Ar,"Edit model card"),Ar.forEach(o),fa=t(Fi," nel repository del tuo modello."),Fi.forEach(o),Si.forEach(o),ui=f(e),ue=r(e,"P",{});var Ye=n(ue);da=t(Ye,"Dai un\u2019occhiata alla "),vo=r(Ye,"A",{href:!0,rel:!0});var Hr=n(vo);ha=t(Hr,"scheda del modello"),Hr.forEach(o),ga=t(Ye," di DistilBert per avere un buon esempio del tipo di informazioni che una scheda di un modello deve includere. Per maggiori dettagli legati ad altre opzioni che puoi controllare nel file "),_l=r(Ye,"CODE",{});var Sr=n(_l);_a=t(Sr,"README.md"),Sr.forEach(o),va=t(Ye,", come l\u2019impatto ambientale o widget di esempio, fai riferimento alla documentazione "),$o=r(Ye,"A",{href:!0,rel:!0});var Dr=n($o);$a=t(Dr,"qui"),Dr.forEach(o),ba=t(Ye,"."),Ye.forEach(o),this.h()},h(){d(p,"name","hf:doc:metadata"),d(p,"content",JSON.stringify(on)),d(h,"id","condividi-un-modello"),d(h,"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"),d(h,"href","#condividi-un-modello"),d(u,"class","relative group"),d(G,"href","https://huggingface.co/models"),d(G,"rel","nofollow"),d(F,"width","560"),d(F,"height","315"),Oi(F.src,R="https://www.youtube.com/embed/XvSGPZFEjDY")||d(F,"src",R),d(F,"title","YouTube video player"),d(F,"frameborder","0"),d(F,"allow",`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope;
picture-in-picture`),F.allowFullscreen=!0,d(U,"id","caratteristiche-dei-repository"),d(U,"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"),d(U,"href","#caratteristiche-dei-repository"),d(x,"class","relative group"),d(le,"href","https://git-lfs.github.com/"),d(le,"rel","nofollow"),Oi(Po.src,wa="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/vis_diff.png")||d(Po,"src",wa),d(Po,"alt","vis_diff"),d(ye,"id","configurazione"),d(ye,"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"),d(ye,"href","#configurazione"),d(ve,"class","relative group"),d(Ze,"href","https://huggingface.co/docs/hub/adding-a-library"),d(Ze,"rel","nofollow"),d(eo,"href","https://huggingface.co/settings/token"),d(eo,"rel","nofollow"),d(qe,"id","converti-un-modello-per-tutti-i-framework"),d(qe,"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"),d(qe,"href","#converti-un-modello-per-tutti-i-framework"),d($e,"class","relative group"),d(To,"href","installation"),d(He,"id","condividi-un-modello-durante-il-training"),d(He,"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"),d(He,"href","#condividi-un-modello-durante-il-training"),d(be,"class","relative group"),d(De,"id","utilizzare-la-funzione-pushtohub"),d(De,"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"),d(De,"href","#utilizzare-la-funzione-pushtohub"),d(Ee,"class","relative group"),d(co,"href","https://huggingface.co/docs/hub/how-to-upstream"),d(co,"rel","nofollow"),d(Le,"id","carica-un-modello-utilizzando-linterfaccia-web"),d(Le,"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"),d(Le,"href","#carica-un-modello-utilizzando-linterfaccia-web"),d(we,"class","relative group"),d(mo,"href","https://huggingface.co/new"),d(mo,"rel","nofollow"),Oi(Ao.src,za="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/new_model_repo.png")||d(Ao,"src",za),d(Ao,"alt","new_model_repo"),Oi(Do.src,ka="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/upload_file.png")||d(Do,"src",ka),d(Do,"alt","upload_file"),d(Ue,"id","aggiungi-una-scheda-del-modello"),d(Ue,"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"),d(Ue,"href","#aggiungi-una-scheda-del-modello"),d(ze,"class","relative group"),d(vo,"href","https://huggingface.co/distilbert-base-uncased"),d(vo,"rel","nofollow"),d($o,"href","https://huggingface.co/docs/hub/models-cards"),d($o,"rel","nofollow")},m(e,c){l(document.head,p),s(e,_,c),s(e,u,c),l(u,h),l(h,b),y($,b,null),l(u,w),l(u,H),l(H,z),s(e,A,c),s(e,D,c),l(D,N),s(e,J,c),s(e,v,c),l(v,O),l(v,G),l(G,L),l(v,Z),s(e,W,c),s(e,M,c),l(M,ae),l(ae,ie),l(M,ee),l(M,te),l(te,K),s(e,V,c),s(e,F,c),s(e,ne,c),y(B,e,c),s(e,re,c),s(e,x,c),l(x,U),l(U,E),y(S,E,null),l(x,ce),l(x,X),l(X,oe),s(e,g,c),s(e,j,c),l(j,pe),s(e,me,c),s(e,Q,c),l(Q,_e),l(Q,le),l(le,Eo),l(Q,fe),l(Q,ke),l(ke,wo),l(Q,Ii),s(e,wl,c),s(e,Pe,c),l(Pe,Mi),l(Pe,xo),l(xo,xi),l(Pe,Ni),s(e,zl,c),y(Ke,e,c),s(e,kl,c),s(e,zo,c),l(zo,Li),s(e,Pl,c),s(e,ko,c),l(ko,Po),s(e,yl,c),s(e,ve,c),l(ve,ye),l(ye,No),y(Ve,No,null),l(ve,Ri),l(ve,Lo),l(Lo,Ui),s(e,Tl,c),s(e,Te,c),l(Te,Gi),l(Te,Ro),l(Ro,Bi),l(Te,Qi),s(e,Cl,c),y(Xe,e,c),s(e,ql,c),s(e,Ce,c),l(Ce,Yi),l(Ce,Ze),l(Ze,Uo),l(Uo,Ji),l(Ce,Ki),s(e,jl,c),y(We,e,c),s(e,Al,c),s(e,de,c),l(de,Vi),l(de,Go),l(Go,Xi),l(de,Zi),l(de,eo),l(eo,Wi),l(de,et),s(e,Hl,c),y(oo,e,c),s(e,Sl,c),s(e,$e,c),l($e,qe),l(qe,Bo),y(lo,Bo,null),l($e,ot),l($e,Qo),l(Qo,lt),s(e,Dl,c),s(e,yo,c),l(yo,it),s(e,Fl,c),s(e,je,c),l(je,tt),l(je,To),l(To,at),l(je,rt),s(e,Ol,c),y(Ae,e,c),s(e,Il,c),s(e,be,c),l(be,He),l(He,Yo),y(io,Yo,null),l(be,nt),l(be,Jo),l(Jo,st),s(e,Ml,c),y(Se,e,c),s(e,xl,c),s(e,Ee,c),l(Ee,De),l(De,Ko),y(to,Ko,null),l(Ee,ut),l(Ee,Co),l(Co,ct),l(Co,Vo),l(Vo,pt),s(e,Nl,c),s(e,Fe,c),l(Fe,mt),l(Fe,Xo),l(Xo,ft),l(Fe,dt),s(e,Ll,c),s(e,Oe,c),l(Oe,ht),l(Oe,Zo),l(Zo,gt),l(Oe,_t),s(e,Rl,c),y(ao,e,c),s(e,Ul,c),s(e,he,c),l(he,vt),l(he,Wo),l(Wo,$t),l(he,bt),l(he,el),l(el,Et),l(he,wt),s(e,Gl,c),y(ro,e,c),s(e,Bl,c),s(e,Ie,c),l(Ie,zt),l(Ie,ol),l(ol,kt),l(Ie,Pt),s(e,Ql,c),y(no,e,c),s(e,Yl,c),s(e,Me,c),l(Me,yt),l(Me,ll),l(ll,Tt),l(Me,Ct),s(e,Jl,c),y(so,e,c),s(e,Kl,c),s(e,qo,c),l(qo,qt),s(e,Vl,c),y(uo,e,c),s(e,Xl,c),s(e,xe,c),l(xe,jt),l(xe,il),l(il,At),l(xe,Ht),s(e,Zl,c),s(e,Ne,c),l(Ne,St),l(Ne,co),l(co,Dt),l(Ne,Ft),s(e,Wl,c),s(e,we,c),l(we,Le),l(Le,tl),y(po,tl,null),l(we,Ot),l(we,al),l(al,It),s(e,ei,c),s(e,Re,c),l(Re,Mt),l(Re,mo),l(mo,xt),l(Re,Nt),s(e,oi,c),s(e,jo,c),l(jo,Ao),s(e,li,c),s(e,Ho,c),l(Ho,Lt),s(e,ii,c),s(e,se,c),l(se,fo),l(fo,Rt),l(fo,rl),l(rl,Ut),l(fo,Gt),l(se,Bt),l(se,nl),l(nl,Qt),l(se,Yt),l(se,sl),l(sl,Jt),l(se,Kt),l(se,ul),l(ul,Vt),s(e,ti,c),s(e,ge,c),l(ge,Xt),l(ge,cl),l(cl,Zt),l(ge,Wt),l(ge,pl),l(pl,ea),l(ge,oa),s(e,ai,c),s(e,So,c),l(So,Do),s(e,ri,c),s(e,ze,c),l(ze,Ue),l(Ue,ml),y(ho,ml,null),l(ze,la),l(ze,fl),l(fl,ia),s(e,ni,c),s(e,Ge,c),l(Ge,ta),l(Ge,dl),l(dl,aa),l(Ge,ra),s(e,si,c),s(e,Be,c),l(Be,go),l(go,na),l(go,hl),l(hl,sa),l(go,ua),l(Be,ca),l(Be,_o),l(_o,pa),l(_o,gl),l(gl,ma),l(_o,fa),s(e,ui,c),s(e,ue,c),l(ue,da),l(ue,vo),l(vo,ha),l(ue,ga),l(ue,_l),l(_l,_a),l(ue,va),l(ue,$o),l($o,$a),l(ue,ba),ci=!0},p(e,[c]){const bo={};c&2&&(bo.$$scope={dirty:c,ctx:e}),B.$set(bo);const vl={};c&2&&(vl.$$scope={dirty:c,ctx:e}),Ae.$set(vl);const $l={};c&2&&($l.$$scope={dirty:c,ctx:e}),Se.$set($l)},i(e){ci||(T($.$$.fragment,e),T(B.$$.fragment,e),T(S.$$.fragment,e),T(Ke.$$.fragment,e),T(Ve.$$.fragment,e),T(Xe.$$.fragment,e),T(We.$$.fragment,e),T(oo.$$.fragment,e),T(lo.$$.fragment,e),T(Ae.$$.fragment,e),T(io.$$.fragment,e),T(Se.$$.fragment,e),T(to.$$.fragment,e),T(ao.$$.fragment,e),T(ro.$$.fragment,e),T(no.$$.fragment,e),T(so.$$.fragment,e),T(uo.$$.fragment,e),T(po.$$.fragment,e),T(ho.$$.fragment,e),ci=!0)},o(e){C($.$$.fragment,e),C(B.$$.fragment,e),C(S.$$.fragment,e),C(Ke.$$.fragment,e),C(Ve.$$.fragment,e),C(Xe.$$.fragment,e),C(We.$$.fragment,e),C(oo.$$.fragment,e),C(lo.$$.fragment,e),C(Ae.$$.fragment,e),C(io.$$.fragment,e),C(Se.$$.fragment,e),C(to.$$.fragment,e),C(ao.$$.fragment,e),C(ro.$$.fragment,e),C(no.$$.fragment,e),C(so.$$.fragment,e),C(uo.$$.fragment,e),C(po.$$.fragment,e),C(ho.$$.fragment,e),ci=!1},d(e){o(p),e&&o(_),e&&o(u),q($),e&&o(A),e&&o(D),e&&o(J),e&&o(v),e&&o(W),e&&o(M),e&&o(V),e&&o(F),e&&o(ne),q(B,e),e&&o(re),e&&o(x),q(S),e&&o(g),e&&o(j),e&&o(me),e&&o(Q),e&&o(wl),e&&o(Pe),e&&o(zl),q(Ke,e),e&&o(kl),e&&o(zo),e&&o(Pl),e&&o(ko),e&&o(yl),e&&o(ve),q(Ve),e&&o(Tl),e&&o(Te),e&&o(Cl),q(Xe,e),e&&o(ql),e&&o(Ce),e&&o(jl),q(We,e),e&&o(Al),e&&o(de),e&&o(Hl),q(oo,e),e&&o(Sl),e&&o($e),q(lo),e&&o(Dl),e&&o(yo),e&&o(Fl),e&&o(je),e&&o(Ol),q(Ae,e),e&&o(Il),e&&o(be),q(io),e&&o(Ml),q(Se,e),e&&o(xl),e&&o(Ee),q(to),e&&o(Nl),e&&o(Fe),e&&o(Ll),e&&o(Oe),e&&o(Rl),q(ao,e),e&&o(Ul),e&&o(he),e&&o(Gl),q(ro,e),e&&o(Bl),e&&o(Ie),e&&o(Ql),q(no,e),e&&o(Yl),e&&o(Me),e&&o(Jl),q(so,e),e&&o(Kl),e&&o(qo),e&&o(Vl),q(uo,e),e&&o(Xl),e&&o(xe),e&&o(Zl),e&&o(Ne),e&&o(Wl),e&&o(we),q(po),e&&o(ei),e&&o(Re),e&&o(oi),e&&o(jo),e&&o(li),e&&o(Ho),e&&o(ii),e&&o(se),e&&o(ti),e&&o(ge),e&&o(ai),e&&o(So),e&&o(ri),e&&o(ze),q(ho),e&&o(ni),e&&o(Ge),e&&o(si),e&&o(Be),e&&o(ui),e&&o(ue)}}}const on={local:"condividi-un-modello",sections:[{local:"caratteristiche-dei-repository",title:"Caratteristiche dei repository"},{local:"configurazione",title:"Configurazione"},{local:"converti-un-modello-per-tutti-i-framework",title:"Converti un modello per tutti i framework"},{local:"condividi-un-modello-durante-il-training",title:"Condividi un modello durante il training"},{local:"utilizzare-la-funzione-pushtohub",title:"Utilizzare la funzione `push_to_hub`"},{local:"carica-un-modello-utilizzando-linterfaccia-web",title:"Carica un modello utilizzando l'interfaccia web"},{local:"aggiungi-una-scheda-del-modello",title:"Aggiungi una scheda del modello"}],title:"Condividi un modello"};function ln(I){return Nr(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class pn extends Or{constructor(p){super();Ir(this,p,ln,en,Mr,{})}}export{pn as default,on as metadata};
