import{s as il,f as al,o as nl,n as Ce}from"../chunks/scheduler.36a0863c.js";import{S as ol,i as sl,g as d,s as o,r as b,A as rl,h as f,f as t,c as s,j as Wt,u as v,x as $,k as I,y as pl,a as i,v as w,d as M,t as T,w as _}from"../chunks/index.9c13489a.js";import{T as ul}from"../chunks/Tip.3b06990e.js";import{Y as ml}from"../chunks/Youtube.347c76e5.js";import{C as L}from"../chunks/CodeBlock.05d8ec32.js";import{F as ll,M as ke}from"../chunks/Markdown.88297c0b.js";import{H as F}from"../chunks/Heading.7a254a62.js";function cl(j){let a,u='Per condividere un modello con la community, hai bisogno di un account su <a href="https://huggingface.co/join" rel="nofollow">huggingface.co</a>. Puoi anche unirti ad un’organizzazione esistente o crearne una nuova.';return{c(){a=d("p"),a.innerHTML=u},l(n){a=f(n,"P",{"data-svelte-h":!0}),$(a)!=="svelte-1pho539"&&(a.innerHTML=u)},m(n,r){i(n,a,r)},p:Ce,d(n){n&&t(a)}}}function dl(j){let a,u="Specifica <code>from_tf=True</code> per convertire un checkpoint da TensorFlow a PyTorch:",n,r,c;return r=new L({props:{code:"cHRfbW9kZWwlMjAlM0QlMjBEaXN0aWxCZXJ0Rm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIycGF0aCUyRnZlcnNvJTJGaWwtbm9tZS1tYWduaWZpY28tY2hlLWhhaS1zY2VsdG8lMjIlMkMlMjBmcm9tX3RmJTNEVHJ1ZSUwQSklMEFwdF9tb2RlbC5zYXZlX3ByZXRyYWluZWQoJTIycGF0aCUyRnZlcnNvJTJGaWwtbm9tZS1tYWduaWZpY28tY2hlLWhhaS1zY2VsdG8lMjIp",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>)`,wrap:!1}}),{c(){a=d("p"),a.innerHTML=u,n=o(),b(r.$$.fragment)},l(p){a=f(p,"P",{"data-svelte-h":!0}),$(a)!=="svelte-1tus5wd"&&(a.innerHTML=u),n=s(p),v(r.$$.fragment,p)},m(p,y){i(p,a,y),i(p,n,y),w(r,p,y),c=!0},p:Ce,i(p){c||(M(r.$$.fragment,p),c=!0)},o(p){T(r.$$.fragment,p),c=!1},d(p){p&&(t(a),t(n)),_(r,p)}}}function fl(j){let a,u;return a=new ke({props:{$$slots:{default:[dl]},$$scope:{ctx:j}}}),{c(){b(a.$$.fragment)},l(n){v(a.$$.fragment,n)},m(n,r){w(a,n,r),u=!0},p(n,r){const c={};r&2&&(c.$$scope={dirty:r,ctx:n}),a.$set(c)},i(n){u||(M(a.$$.fragment,n),u=!0)},o(n){T(a.$$.fragment,n),u=!1},d(n){_(a,n)}}}function gl(j){let a,u="Specifica <code>from_pt=True</code> per convertire un checkpoint da PyTorch a TensorFlow:",n,r,c,p,y="Poi puoi salvare il tuo nuovo modello in TensorFlow con il suo nuovo checkpoint:",H,J,k;return r=new L({props:{code:"dGZfbW9kZWwlMjAlM0QlMjBURkRpc3RpbEJlcnRGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZCglMEElMjAlMjAlMjAlMjAlMjJwYXRoJTJGdmVyc28lMkZpbC1ub21lLW1hZ25pZmljby1jaGUtaGFpLXNjZWx0byUyMiUyQyUyMGZyb21fcHQlM0RUcnVlJTBBKQ==",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>)`,wrap:!1}}),J=new L({props:{code:"dGZfbW9kZWwuc2F2ZV9wcmV0cmFpbmVkKCUyMnBhdGglMkZ2ZXJzbyUyRmlsLW5vbWUtbWFnbmlmaWNvLWNoZS1oYWktc2NlbHRvJTIyKQ==",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>)',wrap:!1}}),{c(){a=d("p"),a.innerHTML=u,n=o(),b(r.$$.fragment),c=o(),p=d("p"),p.textContent=y,H=o(),b(J.$$.fragment)},l(g){a=f(g,"P",{"data-svelte-h":!0}),$(a)!=="svelte-1v7d0kb"&&(a.innerHTML=u),n=s(g),v(r.$$.fragment,g),c=s(g),p=f(g,"P",{"data-svelte-h":!0}),$(p)!=="svelte-1qx7qo6"&&(p.textContent=y),H=s(g),v(J.$$.fragment,g)},m(g,W){i(g,a,W),i(g,n,W),w(r,g,W),i(g,c,W),i(g,p,W),i(g,H,W),w(J,g,W),k=!0},p:Ce,i(g){k||(M(r.$$.fragment,g),M(J.$$.fragment,g),k=!0)},o(g){T(r.$$.fragment,g),T(J.$$.fragment,g),k=!1},d(g){g&&(t(a),t(n),t(c),t(p),t(H)),_(r,g),_(J,g)}}}function $l(j){let a,u;return a=new ke({props:{$$slots:{default:[gl]},$$scope:{ctx:j}}}),{c(){b(a.$$.fragment)},l(n){v(a.$$.fragment,n)},m(n,r){w(a,n,r),u=!0},p(n,r){const c={};r&2&&(c.$$scope={dirty:r,ctx:n}),a.$set(c)},i(n){u||(M(a.$$.fragment,n),u=!0)},o(n){T(a.$$.fragment,n),u=!1},d(n){_(a,n)}}}function hl(j){let a,u="Se un modello è disponibile in Flax, puoi anche convertire un checkpoint da PyTorch a Flax:",n,r,c;return r=new L({props:{code:"ZmxheF9tb2RlbCUyMCUzRCUyMEZsYXhEaXN0aWxCZXJ0Rm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQoJTBBJTIwJTIwJTIwJTIwJTIycGF0aCUyRnZlcnNvJTJGaWwtbm9tZS1tYWduaWZpY28tY2hlLWhhaS1zY2VsdG8lMjIlMkMlMjBmcm9tX3B0JTNEVHJ1ZSUwQSk=",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>)`,wrap:!1}}),{c(){a=d("p"),a.textContent=u,n=o(),b(r.$$.fragment)},l(p){a=f(p,"P",{"data-svelte-h":!0}),$(a)!=="svelte-1scd5nn"&&(a.textContent=u),n=s(p),v(r.$$.fragment,p)},m(p,y){i(p,a,y),i(p,n,y),w(r,p,y),c=!0},p:Ce,i(p){c||(M(r.$$.fragment,p),c=!0)},o(p){T(r.$$.fragment,p),c=!1},d(p){p&&(t(a),t(n)),_(r,p)}}}function bl(j){let a,u;return a=new ke({props:{$$slots:{default:[hl]},$$scope:{ctx:j}}}),{c(){b(a.$$.fragment)},l(n){v(a.$$.fragment,n)},m(n,r){w(a,n,r),u=!0},p(n,r){const c={};r&2&&(c.$$scope={dirty:r,ctx:n}),a.$set(c)},i(n){u||(M(a.$$.fragment,n),u=!0)},o(n){T(a.$$.fragment,n),u=!1},d(n){_(a,n)}}}function vl(j){let a,u,n,r='Condividere un modello nell’Hub è tanto semplice quanto aggiungere un parametro extra o un callback. Ricorda dal <a href="training">tutorial sul fine-tuning</a>, la classe <code>TrainingArguments</code> è dove specifichi gli iperparametri e le opzioni addizionali per l’allenamento. Una di queste opzioni di training include l’abilità di condividere direttamente un modello nell’Hub. Imposta <code>push_to_hub=True</code> in <code>TrainingArguments</code>:',c,p,y,H,J="Passa gli argomenti per il training come di consueto al <code>Trainer</code>:",k,g,W,x,h="Dopo aver effettuato il fine-tuning del tuo modello, chiama <code>push_to_hub()</code> sul <code>Trainer</code> per condividere il modello allenato nell’Hub. 🤗 Transformers aggiungerà in modo automatico persino gli iperparametri, i risultati del training e le versioni del framework alla scheda del tuo modello (model card, in inglese)!",Z,C,P;return a=new ml({props:{id:"Z1-XMy-GNLQ"}}),p=new L({props:{code:"dHJhaW5pbmdfYXJncyUyMCUzRCUyMFRyYWluaW5nQXJndW1lbnRzKG91dHB1dF9kaXIlM0QlMjJpbC1taW8tYmVsbGlzc2ltby1tb2RlbGxvJTIyJTJDJTIwcHVzaF90b19odWIlM0RUcnVlKQ==",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>)',wrap:!1}}),g=new L({props:{code:"dHJhaW5lciUyMCUzRCUyMFRyYWluZXIoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMGFyZ3MlM0R0cmFpbmluZ19hcmdzJTJDJTBBJTIwJTIwJTIwJTIwdHJhaW5fZGF0YXNldCUzRHNtYWxsX3RyYWluX2RhdGFzZXQlMkMlMEElMjAlMjAlMjAlMjBldmFsX2RhdGFzZXQlM0RzbWFsbF9ldmFsX2RhdGFzZXQlMkMlMEElMjAlMjAlMjAlMjBjb21wdXRlX21ldHJpY3MlM0Rjb21wdXRlX21ldHJpY3MlMkMlMEEp",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>)`,wrap:!1}}),C=new L({props:{code:"dHJhaW5lci5wdXNoX3RvX2h1Yigp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>trainer.push_to_hub()',wrap:!1}}),{c(){b(a.$$.fragment),u=o(),n=d("p"),n.innerHTML=r,c=o(),b(p.$$.fragment),y=o(),H=d("p"),H.innerHTML=J,k=o(),b(g.$$.fragment),W=o(),x=d("p"),x.innerHTML=h,Z=o(),b(C.$$.fragment)},l(m){v(a.$$.fragment,m),u=s(m),n=f(m,"P",{"data-svelte-h":!0}),$(n)!=="svelte-54ntez"&&(n.innerHTML=r),c=s(m),v(p.$$.fragment,m),y=s(m),H=f(m,"P",{"data-svelte-h":!0}),$(H)!=="svelte-1bkwfba"&&(H.innerHTML=J),k=s(m),v(g.$$.fragment,m),W=s(m),x=f(m,"P",{"data-svelte-h":!0}),$(x)!=="svelte-7ldac1"&&(x.innerHTML=h),Z=s(m),v(C.$$.fragment,m)},m(m,z){w(a,m,z),i(m,u,z),i(m,n,z),i(m,c,z),w(p,m,z),i(m,y,z),i(m,H,z),i(m,k,z),w(g,m,z),i(m,W,z),i(m,x,z),i(m,Z,z),w(C,m,z),P=!0},p:Ce,i(m){P||(M(a.$$.fragment,m),M(p.$$.fragment,m),M(g.$$.fragment,m),M(C.$$.fragment,m),P=!0)},o(m){T(a.$$.fragment,m),T(p.$$.fragment,m),T(g.$$.fragment,m),T(C.$$.fragment,m),P=!1},d(m){m&&(t(u),t(n),t(c),t(y),t(H),t(k),t(W),t(x),t(Z)),_(a,m),_(p,m),_(g,m),_(C,m)}}}function wl(j){let a,u;return a=new ke({props:{$$slots:{default:[vl]},$$scope:{ctx:j}}}),{c(){b(a.$$.fragment)},l(n){v(a.$$.fragment,n)},m(n,r){w(a,n,r),u=!0},p(n,r){const c={};r&2&&(c.$$scope={dirty:r,ctx:n}),a.$set(c)},i(n){u||(M(a.$$.fragment,n),u=!0)},o(n){T(a.$$.fragment,n),u=!1},d(n){_(a,n)}}}function Ml(j){let a,u="Condividi un modello nell’Hub con <code>PushToHubCallback</code>. Nella funzione <code>PushToHubCallback</code>, aggiungi:",n,r,c="<li>Una directory di output per il tuo modello.</li> <li>Un tokenizer.</li> <li>L’<code>hub_model_id</code>, che è il tuo username sull’Hub e il nome del modello.</li>",p,y,H,J,k='Aggiungi il callback a <a href="https://keras.io/api/models/model_training_apis/" rel="nofollow"><code>fit</code></a>, e 🤗 Transformers caricherà il modello allenato nell’Hub:',g,W,x;return y=new L({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFB1c2hUb0h1YkNhbGxiYWNrJTBBJTBBcHVzaF90b19odWJfY2FsbGJhY2slMjAlM0QlMjBQdXNoVG9IdWJDYWxsYmFjayglMEElMjAlMjAlMjAlMjBvdXRwdXRfZGlyJTNEJTIyLiUyRmlsX3BhdGhfZG92ZV9zYWx2YXJlX2lsX3R1b19tb2RlbGxvJTIyJTJDJTBBJTIwJTIwJTIwJTIwdG9rZW5pemVyJTNEdG9rZW5pemVyJTJDJTBBJTIwJTIwJTIwJTIwaHViX21vZGVsX2lkJTNEJTIyaWwtdHVvLXVzZXJuYW1lJTJGaWwtbWlvLWJlbGxpc3NpbW8tbW9kZWxsbyUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <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>)`,wrap:!1}}),W=new L({props:{code:"bW9kZWwuZml0KHRmX3RyYWluX2RhdGFzZXQlMkMlMjB2YWxpZGF0aW9uX2RhdGElM0R0Zl92YWxpZGF0aW9uX2RhdGFzZXQlMkMlMjBlcG9jaHMlM0QzJTJDJTIwY2FsbGJhY2tzJTNEcHVzaF90b19odWJfY2FsbGJhY2sp",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)',wrap:!1}}),{c(){a=d("p"),a.innerHTML=u,n=o(),r=d("ul"),r.innerHTML=c,p=o(),b(y.$$.fragment),H=o(),J=d("p"),J.innerHTML=k,g=o(),b(W.$$.fragment)},l(h){a=f(h,"P",{"data-svelte-h":!0}),$(a)!=="svelte-aa26jg"&&(a.innerHTML=u),n=s(h),r=f(h,"UL",{"data-svelte-h":!0}),$(r)!=="svelte-xulqs"&&(r.innerHTML=c),p=s(h),v(y.$$.fragment,h),H=s(h),J=f(h,"P",{"data-svelte-h":!0}),$(J)!=="svelte-1ed1t6j"&&(J.innerHTML=k),g=s(h),v(W.$$.fragment,h)},m(h,Z){i(h,a,Z),i(h,n,Z),i(h,r,Z),i(h,p,Z),w(y,h,Z),i(h,H,Z),i(h,J,Z),i(h,g,Z),w(W,h,Z),x=!0},p:Ce,i(h){x||(M(y.$$.fragment,h),M(W.$$.fragment,h),x=!0)},o(h){T(y.$$.fragment,h),T(W.$$.fragment,h),x=!1},d(h){h&&(t(a),t(n),t(r),t(p),t(H),t(J),t(g)),_(y,h),_(W,h)}}}function Tl(j){let a,u;return a=new ke({props:{$$slots:{default:[Ml]},$$scope:{ctx:j}}}),{c(){b(a.$$.fragment)},l(n){v(a.$$.fragment,n)},m(n,r){w(a,n,r),u=!0},p(n,r){const c={};r&2&&(c.$$scope={dirty:r,ctx:n}),a.$set(c)},i(n){u||(M(a.$$.fragment,n),u=!0)},o(n){T(a.$$.fragment,n),u=!1},d(n){_(a,n)}}}function _l(j){let a,u,n,r,c,p,y,H="Gli ultimi due tutorial ti hanno mostrato come puoi fare fine-tuning di un modello con PyTorch, Keras e 🤗 Accelerate per configurazioni distribuite. Il prossimo passo è 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’intelligenza 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,k,g='In questo tutorial, imparerai due metodi per la condivisione di un modello trained o fine-tuned nel <a href="https://huggingface.co/models" rel="nofollow">Model Hub</a>:',W,x,h="<li>Condividi in modo programmatico i tuoi file nell’Hub.</li> <li>Trascina i tuoi file nell’Hub mediante interfaccia grafica.</li>",Z,C,P,m,z,xe,R,Ze,X,Jt="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à di visualizzare le differenze.",Le,Y,zt='Il versionamento all’interno del Model Hub è basato su git e <a href="https://git-lfs.github.com/" rel="nofollow">git-lfs</a>. In altre parole, puoi trattare un modello come un unico repository, consentendo un maggiore controllo degli accessi e maggiore scalabilità. Il controllo delle versioni consente <em>revisions</em>, un metodo per appuntare una versione specifica di un modello con un hash di commit, un tag o un branch.',Ge,q,jt="Come risultato, puoi caricare una specifica versione di un modello con il parametro <code>revision</code>:",Ue,B,Ie,V,Ct="Anche i file possono essere modificati facilmente in un repository ed è possibile visualizzare la cronologia dei commit e le differenze:",Fe,E,Ht='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/vis_diff.png" alt="vis_diff"/>',Pe,N,Re,Q,kt="Prima di condividere un modello nell’Hub, hai bisogno delle tue credenziali di Hugging Face. Se hai accesso ad un terminale, esegui il seguente comando nell’ambiente virtuale in cui è installata la libreria 🤗 Transformers. Questo memorizzerà il tuo token di accesso nella cartella cache di Hugging Face (di default <code>~/.cache/</code>):",Xe,S,Ye,A,xt='Se stai usando un notebook come Jupyter o Colaboratory, assicurati di avere la libreria <a href="https://huggingface.co/docs/hub/adding-a-library" rel="nofollow"><code>huggingface_hub</code></a> installata. Questa libreria ti permette di interagire in maniera programmatica con l’Hub.',qe,D,Be,K,Zt='Utilizza <code>notebook_login</code> per accedere all’Hub, e segui il link <a href="https://huggingface.co/settings/token" rel="nofollow">qui</a> per generare un token con cui effettuare il login:',Ve,O,Ee,ee,Ne,te,Lt="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 è possibile caricare il modello da un framework diverso, se si salta questo passaggio, il caricamento sarà più lento perché 🤗 Transformers ha bisogno di convertire i checkpoint al momento.",Qe,le,Gt='Convertire un checkpoint per un altro framework è semplice. Assicurati di avere PyTorch e TensorFlow installati (vedi <a href="installation">qui</a> per le istruzioni d’installazione), e poi trova il modello specifico per il tuo compito nell’altro framework.',Se,G,Ae,ie,De,U,Ke,ae,Oe,ne,Ut="Puoi anche chiamare <code>push_to_hub</code> direttamente sul tuo modello per caricarlo nell’Hub.",et,oe,It="Specifica il nome del tuo modello in <code>push_to_hub</code>:",tt,se,lt,re,Ft="Questo crea un repository sotto il proprio username con il nome del modello <code>il-mio-bellissimo-modello</code>. Ora chiunque può caricare il tuo modello con la funzione <code>from_pretrained</code>:",it,pe,at,ue,Pt="Se fai parte di un’organizzazione e vuoi invece condividere un modello sotto il nome dell’organizzazione, aggiungi il parametro <code>organization</code>:",nt,me,ot,ce,Rt="La funzione <code>push_to_hub</code> può essere anche utilizzata per aggiungere altri file al repository del modello. Per esempio, aggiungi un tokenizer ad un repository di un modello:",st,de,rt,fe,Xt="O magari potresti voler aggiungere la versione di TensorFlow del tuo modello PyTorch a cui hai fatto fine-tuning:",pt,ge,ut,$e,Yt="Ora quando navighi nel tuo profilo Hugging Face, dovresti vedere il tuo repository del modello appena creato. Premendo sulla scheda <strong>Files</strong> vengono visualizzati tutti i file caricati nel repository.",mt,he,qt='Per maggiori dettagli su come creare e caricare file ad un repository, fai riferimento alla documentazione <a href="https://huggingface.co/docs/hub/how-to-upstream" rel="nofollow">qui</a>.',ct,be,dt,ve,Bt='Chi preferisce un approccio senza codice può caricare un modello tramite l’interfaccia web dell’hub. Visita <a href="https://huggingface.co/new" rel="nofollow">huggingface.co/new</a> per creare un nuovo repository:',ft,we,Vt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/new_model_repo.png" alt="new_model_repo"/>',gt,Me,Et="Da qui, aggiungi alcune informazioni sul tuo modello:",$t,Te,Nt="<li>Seleziona il/la <strong>owner</strong> del repository. Puoi essere te o qualunque organizzazione di cui fai parte.</li> <li>Scegli un nome per il tuo modello, il quale sarà anche il nome del repository.</li> <li>Scegli se il tuo modello è pubblico o privato.</li> <li>Specifica la licenza utilizzata per il tuo modello.</li>",ht,_e,Qt="Ora premi sulla scheda <strong>Files</strong> e premi sul pulsante <strong>Add file</strong> per caricare un nuovo file al tuo repository. Trascina poi un file per caricarlo e aggiungere un messaggio di commit.",bt,ye,St='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/upload_file.png" alt="upload_file"/>',vt,We,wt,Je,At="Per assicurarti che chiunque possa comprendere le abilità, 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 è definita nel file <code>README.md</code>. Puoi aggiungere una scheda del modello:",Mt,ze,Dt="<li>Creando manualmente e caricando un file <code>README.md</code>.</li> <li>Premendo sul pulsante <strong>Edit model card</strong> nel repository del tuo modello.</li>",Tt,je,Kt='Dai un’occhiata alla <a href="https://huggingface.co/distilbert/distilbert-base-uncased" rel="nofollow">scheda del modello</a> 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 <code>README.md</code>, come l’impatto ambientale o widget di esempio, fai riferimento alla documentazione <a href="https://huggingface.co/docs/hub/models-cards" rel="nofollow">qui</a>.',_t,He,yt;return c=new F({props:{title:"Condividi un modello",local:"condividi-un-modello",headingTag:"h1"}}),z=new ul({props:{$$slots:{default:[cl]},$$scope:{ctx:j}}}),R=new F({props:{title:"Caratteristiche dei repository",local:"caratteristiche-dei-repository",headingTag:"h2"}}),B=new L({props:{code:"bW9kZWwlMjAlM0QlMjBBdXRvTW9kZWwuZnJvbV9wcmV0cmFpbmVkKCUwQSUyMCUyMCUyMCUyMCUyMmp1bGllbi1jJTJGRXNwZXJCRVJUby1zbWFsbCUyMiUyQyUyMHJldmlzaW9uJTNEJTIydjIuMC4xJTIyJTIwJTIwJTIzJTIwbm9tZSUyMGRpJTIwdW4lMjB0YWclMkMlMjBkaSUyMHVuJTIwYnJhbmNoJTJDJTIwbyUyMGNvbW1pdCUyMGhhc2glMEEp",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>)`,wrap:!1}}),N=new F({props:{title:"Configurazione",local:"configurazione",headingTag:"h2"}}),S=new L({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),D=new L({props:{code:"cGlwJTIwaW5zdGFsbCUyMGh1Z2dpbmdmYWNlX2h1Yg==",highlighted:"pip install huggingface_hub",wrap:!1}}),O=new L({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMG5vdGVib29rX2xvZ2luJTBBJTBBbm90ZWJvb2tfbG9naW4oKQ==",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()`,wrap:!1}}),ee=new F({props:{title:"Converti un modello per tutti i framework",local:"converti-un-modello-per-tutti-i-framework",headingTag:"h2"}}),G=new ll({props:{pytorch:!0,tensorflow:!0,jax:!0,$$slots:{jax:[bl],tensorflow:[$l],pytorch:[fl]},$$scope:{ctx:j}}}),ie=new F({props:{title:"Condividi un modello durante il training",local:"condividi-un-modello-durante-il-training",headingTag:"h2"}}),U=new ll({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Tl],pytorch:[wl]},$$scope:{ctx:j}}}),ae=new F({props:{title:"Utilizzare la funzione push_to_hub",local:"utilizzare-la-funzione-pushtohub",headingTag:"h2"}}),se=new L({props:{code:"cHRfbW9kZWwucHVzaF90b19odWIoJTIyaWwtbWlvLWJlbGxpc3NpbW8tbW9kZWxsbyUyMik=",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>)',wrap:!1}}),pe=new L({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUwQSUwQW1vZGVsJTIwJTNEJTIwQXV0b01vZGVsLmZyb21fcHJldHJhaW5lZCglMjJpbC10dW8tdXNlcm5hbWUlMkZpbC1taW8tYmVsbGlzc2ltby1tb2RlbGxvJTIyKQ==",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>)`,wrap:!1}}),me=new L({props:{code:"cHRfbW9kZWwucHVzaF90b19odWIoJTIyaWwtbWlvLWJlbGxpc3NpbW8tbW9kZWxsbyUyMiUyQyUyMG9yZ2FuaXphdGlvbiUzRCUyMmxhLW1pYS1mYW50YXN0aWNhLW9yZyUyMik=",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>)',wrap:!1}}),de=new L({props:{code:"dG9rZW5pemVyLnB1c2hfdG9faHViKCUyMmlsLW1pby1iZWxsaXNzaW1vLW1vZGVsbG8lMjIp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.push_to_hub(<span class="hljs-string">&quot;il-mio-bellissimo-modello&quot;</span>)',wrap:!1}}),ge=new L({props:{code:"dGZfbW9kZWwucHVzaF90b19odWIoJTIyaWwtbWlvLWJlbGxpc3NpbW8tbW9kZWxsbyUyMik=",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>)',wrap:!1}}),be=new F({props:{title:"Carica un modello utilizzando l’interfaccia web",local:"carica-un-modello-utilizzando-linterfaccia-web",headingTag:"h2"}}),We=new F({props:{title:"Aggiungi una scheda del modello",local:"aggiungi-una-scheda-del-modello",headingTag:"h2"}}),{c(){a=d("meta"),u=o(),n=d("p"),r=o(),b(c.$$.fragment),p=o(),y=d("p"),y.textContent=H,J=o(),k=d("p"),k.innerHTML=g,W=o(),x=d("ul"),x.innerHTML=h,Z=o(),C=d("iframe"),m=o(),b(z.$$.fragment),xe=o(),b(R.$$.fragment),Ze=o(),X=d("p"),X.textContent=Jt,Le=o(),Y=d("p"),Y.innerHTML=zt,Ge=o(),q=d("p"),q.innerHTML=jt,Ue=o(),b(B.$$.fragment),Ie=o(),V=d("p"),V.textContent=Ct,Fe=o(),E=d("p"),E.innerHTML=Ht,Pe=o(),b(N.$$.fragment),Re=o(),Q=d("p"),Q.innerHTML=kt,Xe=o(),b(S.$$.fragment),Ye=o(),A=d("p"),A.innerHTML=xt,qe=o(),b(D.$$.fragment),Be=o(),K=d("p"),K.innerHTML=Zt,Ve=o(),b(O.$$.fragment),Ee=o(),b(ee.$$.fragment),Ne=o(),te=d("p"),te.textContent=Lt,Qe=o(),le=d("p"),le.innerHTML=Gt,Se=o(),b(G.$$.fragment),Ae=o(),b(ie.$$.fragment),De=o(),b(U.$$.fragment),Ke=o(),b(ae.$$.fragment),Oe=o(),ne=d("p"),ne.innerHTML=Ut,et=o(),oe=d("p"),oe.innerHTML=It,tt=o(),b(se.$$.fragment),lt=o(),re=d("p"),re.innerHTML=Ft,it=o(),b(pe.$$.fragment),at=o(),ue=d("p"),ue.innerHTML=Pt,nt=o(),b(me.$$.fragment),ot=o(),ce=d("p"),ce.innerHTML=Rt,st=o(),b(de.$$.fragment),rt=o(),fe=d("p"),fe.textContent=Xt,pt=o(),b(ge.$$.fragment),ut=o(),$e=d("p"),$e.innerHTML=Yt,mt=o(),he=d("p"),he.innerHTML=qt,ct=o(),b(be.$$.fragment),dt=o(),ve=d("p"),ve.innerHTML=Bt,ft=o(),we=d("p"),we.innerHTML=Vt,gt=o(),Me=d("p"),Me.textContent=Et,$t=o(),Te=d("ul"),Te.innerHTML=Nt,ht=o(),_e=d("p"),_e.innerHTML=Qt,bt=o(),ye=d("p"),ye.innerHTML=St,vt=o(),b(We.$$.fragment),wt=o(),Je=d("p"),Je.innerHTML=At,Mt=o(),ze=d("ul"),ze.innerHTML=Dt,Tt=o(),je=d("p"),je.innerHTML=Kt,_t=o(),He=d("p"),this.h()},l(e){const l=rl("svelte-u9bgzb",document.head);a=f(l,"META",{name:!0,content:!0}),l.forEach(t),u=s(e),n=f(e,"P",{}),Wt(n).forEach(t),r=s(e),v(c.$$.fragment,e),p=s(e),y=f(e,"P",{"data-svelte-h":!0}),$(y)!=="svelte-4bxvjr"&&(y.textContent=H),J=s(e),k=f(e,"P",{"data-svelte-h":!0}),$(k)!=="svelte-1lo3rd5"&&(k.innerHTML=g),W=s(e),x=f(e,"UL",{"data-svelte-h":!0}),$(x)!=="svelte-51oh88"&&(x.innerHTML=h),Z=s(e),C=f(e,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0}),Wt(C).forEach(t),m=s(e),v(z.$$.fragment,e),xe=s(e),v(R.$$.fragment,e),Ze=s(e),X=f(e,"P",{"data-svelte-h":!0}),$(X)!=="svelte-163mccq"&&(X.textContent=Jt),Le=s(e),Y=f(e,"P",{"data-svelte-h":!0}),$(Y)!=="svelte-1vxz8el"&&(Y.innerHTML=zt),Ge=s(e),q=f(e,"P",{"data-svelte-h":!0}),$(q)!=="svelte-11wmj9y"&&(q.innerHTML=jt),Ue=s(e),v(B.$$.fragment,e),Ie=s(e),V=f(e,"P",{"data-svelte-h":!0}),$(V)!=="svelte-22ypu2"&&(V.textContent=Ct),Fe=s(e),E=f(e,"P",{"data-svelte-h":!0}),$(E)!=="svelte-hnu2bf"&&(E.innerHTML=Ht),Pe=s(e),v(N.$$.fragment,e),Re=s(e),Q=f(e,"P",{"data-svelte-h":!0}),$(Q)!=="svelte-6ptylu"&&(Q.innerHTML=kt),Xe=s(e),v(S.$$.fragment,e),Ye=s(e),A=f(e,"P",{"data-svelte-h":!0}),$(A)!=="svelte-oe6z4h"&&(A.innerHTML=xt),qe=s(e),v(D.$$.fragment,e),Be=s(e),K=f(e,"P",{"data-svelte-h":!0}),$(K)!=="svelte-1v1tu56"&&(K.innerHTML=Zt),Ve=s(e),v(O.$$.fragment,e),Ee=s(e),v(ee.$$.fragment,e),Ne=s(e),te=f(e,"P",{"data-svelte-h":!0}),$(te)!=="svelte-4ymrgz"&&(te.textContent=Lt),Qe=s(e),le=f(e,"P",{"data-svelte-h":!0}),$(le)!=="svelte-60md1j"&&(le.innerHTML=Gt),Se=s(e),v(G.$$.fragment,e),Ae=s(e),v(ie.$$.fragment,e),De=s(e),v(U.$$.fragment,e),Ke=s(e),v(ae.$$.fragment,e),Oe=s(e),ne=f(e,"P",{"data-svelte-h":!0}),$(ne)!=="svelte-la4zk3"&&(ne.innerHTML=Ut),et=s(e),oe=f(e,"P",{"data-svelte-h":!0}),$(oe)!=="svelte-1gtt17g"&&(oe.innerHTML=It),tt=s(e),v(se.$$.fragment,e),lt=s(e),re=f(e,"P",{"data-svelte-h":!0}),$(re)!=="svelte-1hw16pv"&&(re.innerHTML=Ft),it=s(e),v(pe.$$.fragment,e),at=s(e),ue=f(e,"P",{"data-svelte-h":!0}),$(ue)!=="svelte-30ijsq"&&(ue.innerHTML=Pt),nt=s(e),v(me.$$.fragment,e),ot=s(e),ce=f(e,"P",{"data-svelte-h":!0}),$(ce)!=="svelte-vgzq0b"&&(ce.innerHTML=Rt),st=s(e),v(de.$$.fragment,e),rt=s(e),fe=f(e,"P",{"data-svelte-h":!0}),$(fe)!=="svelte-1jayhzo"&&(fe.textContent=Xt),pt=s(e),v(ge.$$.fragment,e),ut=s(e),$e=f(e,"P",{"data-svelte-h":!0}),$($e)!=="svelte-4xh8l6"&&($e.innerHTML=Yt),mt=s(e),he=f(e,"P",{"data-svelte-h":!0}),$(he)!=="svelte-gnryfg"&&(he.innerHTML=qt),ct=s(e),v(be.$$.fragment,e),dt=s(e),ve=f(e,"P",{"data-svelte-h":!0}),$(ve)!=="svelte-1isubst"&&(ve.innerHTML=Bt),ft=s(e),we=f(e,"P",{"data-svelte-h":!0}),$(we)!=="svelte-ahj3l9"&&(we.innerHTML=Vt),gt=s(e),Me=f(e,"P",{"data-svelte-h":!0}),$(Me)!=="svelte-1jkcecg"&&(Me.textContent=Et),$t=s(e),Te=f(e,"UL",{"data-svelte-h":!0}),$(Te)!=="svelte-9wadvi"&&(Te.innerHTML=Nt),ht=s(e),_e=f(e,"P",{"data-svelte-h":!0}),$(_e)!=="svelte-1mqdmic"&&(_e.innerHTML=Qt),bt=s(e),ye=f(e,"P",{"data-svelte-h":!0}),$(ye)!=="svelte-32sxm9"&&(ye.innerHTML=St),vt=s(e),v(We.$$.fragment,e),wt=s(e),Je=f(e,"P",{"data-svelte-h":!0}),$(Je)!=="svelte-5vmxjh"&&(Je.innerHTML=At),Mt=s(e),ze=f(e,"UL",{"data-svelte-h":!0}),$(ze)!=="svelte-ownw23"&&(ze.innerHTML=Dt),Tt=s(e),je=f(e,"P",{"data-svelte-h":!0}),$(je)!=="svelte-2n5t6t"&&(je.innerHTML=Kt),_t=s(e),He=f(e,"P",{}),Wt(He).forEach(t),this.h()},h(){I(a,"name","hf:doc:metadata"),I(a,"content",yl),I(C,"width","560"),I(C,"height","315"),al(C.src,P="https://www.youtube.com/embed/XvSGPZFEjDY")||I(C,"src",P),I(C,"title","YouTube video player"),I(C,"frameborder","0"),I(C,"allow",`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope;
picture-in-picture`),C.allowFullscreen=""},m(e,l){pl(document.head,a),i(e,u,l),i(e,n,l),i(e,r,l),w(c,e,l),i(e,p,l),i(e,y,l),i(e,J,l),i(e,k,l),i(e,W,l),i(e,x,l),i(e,Z,l),i(e,C,l),i(e,m,l),w(z,e,l),i(e,xe,l),w(R,e,l),i(e,Ze,l),i(e,X,l),i(e,Le,l),i(e,Y,l),i(e,Ge,l),i(e,q,l),i(e,Ue,l),w(B,e,l),i(e,Ie,l),i(e,V,l),i(e,Fe,l),i(e,E,l),i(e,Pe,l),w(N,e,l),i(e,Re,l),i(e,Q,l),i(e,Xe,l),w(S,e,l),i(e,Ye,l),i(e,A,l),i(e,qe,l),w(D,e,l),i(e,Be,l),i(e,K,l),i(e,Ve,l),w(O,e,l),i(e,Ee,l),w(ee,e,l),i(e,Ne,l),i(e,te,l),i(e,Qe,l),i(e,le,l),i(e,Se,l),w(G,e,l),i(e,Ae,l),w(ie,e,l),i(e,De,l),w(U,e,l),i(e,Ke,l),w(ae,e,l),i(e,Oe,l),i(e,ne,l),i(e,et,l),i(e,oe,l),i(e,tt,l),w(se,e,l),i(e,lt,l),i(e,re,l),i(e,it,l),w(pe,e,l),i(e,at,l),i(e,ue,l),i(e,nt,l),w(me,e,l),i(e,ot,l),i(e,ce,l),i(e,st,l),w(de,e,l),i(e,rt,l),i(e,fe,l),i(e,pt,l),w(ge,e,l),i(e,ut,l),i(e,$e,l),i(e,mt,l),i(e,he,l),i(e,ct,l),w(be,e,l),i(e,dt,l),i(e,ve,l),i(e,ft,l),i(e,we,l),i(e,gt,l),i(e,Me,l),i(e,$t,l),i(e,Te,l),i(e,ht,l),i(e,_e,l),i(e,bt,l),i(e,ye,l),i(e,vt,l),w(We,e,l),i(e,wt,l),i(e,Je,l),i(e,Mt,l),i(e,ze,l),i(e,Tt,l),i(e,je,l),i(e,_t,l),i(e,He,l),yt=!0},p(e,[l]){const Ot={};l&2&&(Ot.$$scope={dirty:l,ctx:e}),z.$set(Ot);const el={};l&2&&(el.$$scope={dirty:l,ctx:e}),G.$set(el);const tl={};l&2&&(tl.$$scope={dirty:l,ctx:e}),U.$set(tl)},i(e){yt||(M(c.$$.fragment,e),M(z.$$.fragment,e),M(R.$$.fragment,e),M(B.$$.fragment,e),M(N.$$.fragment,e),M(S.$$.fragment,e),M(D.$$.fragment,e),M(O.$$.fragment,e),M(ee.$$.fragment,e),M(G.$$.fragment,e),M(ie.$$.fragment,e),M(U.$$.fragment,e),M(ae.$$.fragment,e),M(se.$$.fragment,e),M(pe.$$.fragment,e),M(me.$$.fragment,e),M(de.$$.fragment,e),M(ge.$$.fragment,e),M(be.$$.fragment,e),M(We.$$.fragment,e),yt=!0)},o(e){T(c.$$.fragment,e),T(z.$$.fragment,e),T(R.$$.fragment,e),T(B.$$.fragment,e),T(N.$$.fragment,e),T(S.$$.fragment,e),T(D.$$.fragment,e),T(O.$$.fragment,e),T(ee.$$.fragment,e),T(G.$$.fragment,e),T(ie.$$.fragment,e),T(U.$$.fragment,e),T(ae.$$.fragment,e),T(se.$$.fragment,e),T(pe.$$.fragment,e),T(me.$$.fragment,e),T(de.$$.fragment,e),T(ge.$$.fragment,e),T(be.$$.fragment,e),T(We.$$.fragment,e),yt=!1},d(e){e&&(t(u),t(n),t(r),t(p),t(y),t(J),t(k),t(W),t(x),t(Z),t(C),t(m),t(xe),t(Ze),t(X),t(Le),t(Y),t(Ge),t(q),t(Ue),t(Ie),t(V),t(Fe),t(E),t(Pe),t(Re),t(Q),t(Xe),t(Ye),t(A),t(qe),t(Be),t(K),t(Ve),t(Ee),t(Ne),t(te),t(Qe),t(le),t(Se),t(Ae),t(De),t(Ke),t(Oe),t(ne),t(et),t(oe),t(tt),t(lt),t(re),t(it),t(at),t(ue),t(nt),t(ot),t(ce),t(st),t(rt),t(fe),t(pt),t(ut),t($e),t(mt),t(he),t(ct),t(dt),t(ve),t(ft),t(we),t(gt),t(Me),t($t),t(Te),t(ht),t(_e),t(bt),t(ye),t(vt),t(wt),t(Je),t(Mt),t(ze),t(Tt),t(je),t(_t),t(He)),t(a),_(c,e),_(z,e),_(R,e),_(B,e),_(N,e),_(S,e),_(D,e),_(O,e),_(ee,e),_(G,e),_(ie,e),_(U,e),_(ae,e),_(se,e),_(pe,e),_(me,e),_(de,e),_(ge,e),_(be,e),_(We,e)}}}const yl='{"title":"Condividi un modello","local":"condividi-un-modello","sections":[{"title":"Caratteristiche dei repository","local":"caratteristiche-dei-repository","sections":[],"depth":2},{"title":"Configurazione","local":"configurazione","sections":[],"depth":2},{"title":"Converti un modello per tutti i framework","local":"converti-un-modello-per-tutti-i-framework","sections":[],"depth":2},{"title":"Condividi un modello durante il training","local":"condividi-un-modello-durante-il-training","sections":[],"depth":2},{"title":"Utilizzare la funzione push_to_hub","local":"utilizzare-la-funzione-pushtohub","sections":[],"depth":2},{"title":"Carica un modello utilizzando l’interfaccia web","local":"carica-un-modello-utilizzando-linterfaccia-web","sections":[],"depth":2},{"title":"Aggiungi una scheda del modello","local":"aggiungi-una-scheda-del-modello","sections":[],"depth":2}],"depth":1}';function Wl(j){return nl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Zl extends ol{constructor(a){super(),sl(this,a,Wl,_l,il,{})}}export{Zl as component};
