import{S as Cp,i as Zp,s as Rp,e as n,k as d,w as z,t as s,M as Gp,c as r,d as l,m as $,a as p,x as y,h as i,b as _,G as t,g as u,y as M,q as w,o as j,B as k,v as Ip,L as Ue}from"../chunks/vendor-hf-doc-builder.js";import{T as vl}from"../chunks/Tip-hf-doc-builder.js";import{Y as Up}from"../chunks/Youtube-hf-doc-builder.js";import{I as ft}from"../chunks/IconCopyLink-hf-doc-builder.js";import{C as X}from"../chunks/CodeBlock-hf-doc-builder.js";import{D as Wp}from"../chunks/DocNotebookDropdown-hf-doc-builder.js";import{F as bl,M as ge}from"../chunks/Markdown-hf-doc-builder.js";import"../chunks/IconTensorflow-hf-doc-builder.js";function Fp(C){let a,m;return{c(){a=n("p"),m=s(`Tutti gli esempi di codice presenti in questa documentazione hanno un pulsante in alto a sinistra che permette di selezionare tra PyTorch e TensorFlow. Se
questo non \xE8 presente, ci si aspetta che il codice funzioni per entrambi i backend senza alcun cambiamento.`)},l(o){a=r(o,"P",{});var f=p(a);m=i(f,`Tutti gli esempi di codice presenti in questa documentazione hanno un pulsante in alto a sinistra che permette di selezionare tra PyTorch e TensorFlow. Se
questo non \xE8 presente, ci si aspetta che il codice funzioni per entrambi i backend senza alcun cambiamento.`),f.forEach(l)},m(o,f){u(o,a,f),t(a,m)},d(o){o&&l(a)}}}function Ap(C){let a,m,o,f,h,b,U,I;return{c(){a=n("p"),m=s("Per maggiori dettagli legati alla "),o=n("code"),f=s("pipeline()"),h=s(" e ai compiti ad essa associati, fai riferimento alla documentazione "),b=n("a"),U=s("qui"),I=s("."),this.h()},l(E){a=r(E,"P",{});var R=p(a);m=i(R,"Per maggiori dettagli legati alla "),o=r(R,"CODE",{});var W=p(o);f=i(W,"pipeline()"),W.forEach(l),h=i(R," e ai compiti ad essa associati, fai riferimento alla documentazione "),b=r(R,"A",{href:!0});var F=p(b);U=i(F,"qui"),F.forEach(l),I=i(R,"."),R.forEach(l),this.h()},h(){_(b,"href","./main_classes/pipelines")},m(E,R){u(E,a,R),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I)},d(E){E&&l(a)}}}function Vp(C){let a,m;return a=new X({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRvcmNo",highlighted:"pip install torch"}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p:Ue,i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function qp(C){let a,m;return a=new ge({props:{$$slots:{default:[Vp]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Np(C){let a,m;return a=new X({props:{code:"cGlwJTIwaW5zdGFsbCUyMHRlbnNvcmZsb3c=",highlighted:"pip install tensorflow"}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p:Ue,i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Xp(C){let a,m;return a=new ge({props:{$$slots:{default:[Np]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Sp(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N;return V=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uJTBBJTBBbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChtb2RlbF9uYW1lKSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKG1vZGVsX25hbWUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, AutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForSequenceClassification.from_pretrained(model_name)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(model_name)`}}),{c(){a=n("p"),m=s("Usa "),o=n("code"),f=s("AutoModelForSequenceClassification"),h=s(" e "),b=n("code"),U=s("AutoTokenizer"),I=s(" per caricare il modello pre-allenato e il suo tokenizer associato (maggiori informazioni su una "),E=n("code"),R=s("AutoClass"),W=s(" in seguito):"),F=d(),z(V.$$.fragment)},l(T){a=r(T,"P",{});var G=p(a);m=i(G,"Usa "),o=r(G,"CODE",{});var g=p(o);f=i(g,"AutoModelForSequenceClassification"),g.forEach(l),h=i(G," e "),b=r(G,"CODE",{});var Z=p(b);U=i(Z,"AutoTokenizer"),Z.forEach(l),I=i(G," per caricare il modello pre-allenato e il suo tokenizer associato (maggiori informazioni su una "),E=r(G,"CODE",{});var B=p(E);R=i(B,"AutoClass"),B.forEach(l),W=i(G," in seguito):"),G.forEach(l),F=$(T),y(V.$$.fragment,T)},m(T,G){u(T,a,G),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I),t(a,E),t(E,R),t(a,W),u(T,F,G),M(V,T,G),N=!0},p:Ue,i(T){N||(w(V.$$.fragment,T),N=!0)},o(T){j(V.$$.fragment,T),N=!1},d(T){T&&l(a),T&&l(F),k(V,T)}}}function Bp(C){let a,m;return a=new ge({props:{$$slots:{default:[Sp]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function xp(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N;return V=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMkMlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbCUyMCUzRCUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQobW9kZWxfbmFtZSklMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChtb2RlbF9uYW1lKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer, TFAutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model = TFAutoModelForSequenceClassification.from_pretrained(model_name)
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(model_name)`}}),{c(){a=n("p"),m=s("Usa "),o=n("code"),f=s("TFAutoModelForSequenceClassification"),h=s(" e "),b=n("code"),U=s("AutoTokenizer"),I=s(" per caricare il modello pre-allenato e il suo tokenizer associato (maggiori informazioni su una "),E=n("code"),R=s("TFAutoClass"),W=s(" in seguito):"),F=d(),z(V.$$.fragment)},l(T){a=r(T,"P",{});var G=p(a);m=i(G,"Usa "),o=r(G,"CODE",{});var g=p(o);f=i(g,"TFAutoModelForSequenceClassification"),g.forEach(l),h=i(G," e "),b=r(G,"CODE",{});var Z=p(b);U=i(Z,"AutoTokenizer"),Z.forEach(l),I=i(G," per caricare il modello pre-allenato e il suo tokenizer associato (maggiori informazioni su una "),E=r(G,"CODE",{});var B=p(E);R=i(B,"TFAutoClass"),B.forEach(l),W=i(G," in seguito):"),G.forEach(l),F=$(T),y(V.$$.fragment,T)},m(T,G){u(T,a,G),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I),t(a,E),t(E,R),t(a,W),u(T,F,G),M(V,T,G),N=!0},p:Ue,i(T){N||(w(V.$$.fragment,T),N=!0)},o(T){j(V.$$.fragment,T),N=!1},d(T){T&&l(a),T&&l(F),k(V,T)}}}function Pp(C){let a,m;return a=new ge({props:{$$slots:{default:[xp]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Yp(C){let a,m;return a=new X({props:{code:"cHRfYmF0Y2glMjAlM0QlMjB0b2tlbml6ZXIoJTBBJTIwJTIwJTIwJTIwJTVCJTIyU2lhbW8lMjBtb2x0byUyMGZlbGljaSUyMGRpJTIwbW9zdHJhcnRpJTIwbGElMjBsaWJyZXJpYSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIlMkMlMjAlMjJTcGVyaWFtbyUyMHRlJTIwbm9uJTIwbGElMjBvZGllcmFpLiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMHBhZGRpbmclM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBtYXhfbGVuZ3RoJTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_batch = tokenizer(
<span class="hljs-meta">... </span>    [<span class="hljs-string">&quot;Siamo molto felici di mostrarti la libreria \u{1F917} Transformers.&quot;</span>, <span class="hljs-string">&quot;Speriamo te non la odierai.&quot;</span>],
<span class="hljs-meta">... </span>    padding=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    truncation=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    max_length=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span>    return_tensors=<span class="hljs-string">&quot;pt&quot;</span>,
<span class="hljs-meta">... </span>)`}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p:Ue,i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Qp(C){let a,m;return a=new ge({props:{$$slots:{default:[Yp]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Hp(C){let a,m;return a=new X({props:{code:"dGZfYmF0Y2glMjAlM0QlMjB0b2tlbml6ZXIoJTBBJTIwJTIwJTIwJTIwJTVCJTIyU2lhbW8lMjBtb2x0byUyMGZlbGljaSUyMGRpJTIwbW9zdHJhcnRpJTIwbGElMjBsaWJyZXJpYSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIlMkMlMjAlMjJTcGVyaWFtbyUyMHRlJTIwbm9uJTIwbGElMjBvZGllcmFpLiUyMiU1RCUyQyUwQSUyMCUyMCUyMCUyMHBhZGRpbmclM0RUcnVlJTJDJTBBJTIwJTIwJTIwJTIwdHJ1bmNhdGlvbiUzRFRydWUlMkMlMEElMjAlMjAlMjAlMjBtYXhfbGVuZ3RoJTNENTEyJTJDJTBBJTIwJTIwJTIwJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJ0ZiUyMiUyQyUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>tf_batch = tokenizer(
<span class="hljs-meta">... </span>    [<span class="hljs-string">&quot;Siamo molto felici di mostrarti la libreria \u{1F917} Transformers.&quot;</span>, <span class="hljs-string">&quot;Speriamo te non la odierai.&quot;</span>],
<span class="hljs-meta">... </span>    padding=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    truncation=<span class="hljs-literal">True</span>,
<span class="hljs-meta">... </span>    max_length=<span class="hljs-number">512</span>,
<span class="hljs-meta">... </span>    return_tensors=<span class="hljs-string">&quot;tf&quot;</span>,
<span class="hljs-meta">... </span>)`}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p:Ue,i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Dp(C){let a,m;return a=new ge({props:{$$slots:{default:[Hp]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function Op(C){let a,m,o,f,h,b,U,I;return{c(){a=n("p"),m=s("Guarda il "),o=n("a"),f=s("task summary"),h=s(" per sapere quale classe di "),b=n("code"),U=s("AutoModel"),I=s(" utilizzare per quale compito."),this.h()},l(E){a=r(E,"P",{});var R=p(a);m=i(R,"Guarda il "),o=r(R,"A",{href:!0});var W=p(o);f=i(W,"task summary"),W.forEach(l),h=i(R," per sapere quale classe di "),b=r(R,"CODE",{});var F=p(b);U=i(F,"AutoModel"),F.forEach(l),I=i(R," utilizzare per quale compito."),R.forEach(l),this.h()},h(){_(o,"href","./task_summary")},m(E,R){u(E,a,R),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I)},d(E){E&&l(a)}}}function Lp(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N,T,G,g,Z,B,S,Q,Y,te,H,x,ee,D,O,fe,oe,$e,se,le,ie,he,J,A,ne;return G=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24lMEElMEFtb2RlbF9uYW1lJTIwJTNEJTIwJTIybmxwdG93biUyRmJlcnQtYmFzZS1tdWx0aWxpbmd1YWwtdW5jYXNlZC1zZW50aW1lbnQlMjIlMEFwdF9tb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKG1vZGVsX25hbWUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>model_name = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = AutoModelForSequenceClassification.from_pretrained(model_name)`}}),Z=new vl({props:{$$slots:{default:[Op]},$$scope:{ctx:C}}}),ee=new X({props:{code:"cHRfb3V0cHV0cyUyMCUzRCUyMHB0X21vZGVsKCoqcHRfYmF0Y2gp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_outputs = pt_model(**pt_batch)'}}),A=new X({props:{code:"ZnJvbSUyMHRvcmNoJTIwaW1wb3J0JTIwbm4lMEElMEFwdF9wcmVkaWN0aW9ucyUyMCUzRCUyMG5uLmZ1bmN0aW9uYWwuc29mdG1heChwdF9vdXRwdXRzLmxvZ2l0cyUyQyUyMGRpbSUzRC0xKSUwQXByaW50KHB0X3ByZWRpY3Rpb25zKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> torch <span class="hljs-keyword">import</span> nn

<span class="hljs-meta">&gt;&gt;&gt; </span>pt_predictions = nn.functional.softmax(pt_outputs.logits, dim=-<span class="hljs-number">1</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(pt_predictions)
tensor([[<span class="hljs-number">0.0041</span>, <span class="hljs-number">0.0037</span>, <span class="hljs-number">0.0203</span>, <span class="hljs-number">0.2005</span>, <span class="hljs-number">0.7713</span>],
        [<span class="hljs-number">0.3766</span>, <span class="hljs-number">0.3292</span>, <span class="hljs-number">0.1832</span>, <span class="hljs-number">0.0558</span>, <span class="hljs-number">0.0552</span>]], grad_fn=&lt;SoftmaxBackward0&gt;)`}}),{c(){a=n("p"),m=s("\u{1F917} Transformers fornisce un metodo semplice e unificato per caricare istanze pre-allenate. Questo significa che puoi caricare un "),o=n("code"),f=s("AutoModel"),h=s(" come caricheresti un "),b=n("code"),U=s("AutoTokenizer"),I=s(". L\u2019unica differenza \xE8 selezionare l\u2019"),E=n("code"),R=s("AutoModel"),W=s(" corretto per il compito di interesse. Dato che stai facendo classificazione di testi, o sequenze, carica "),F=n("code"),V=s("AutoModelForSequenceClassification"),N=s(":"),T=d(),z(G.$$.fragment),g=d(),z(Z.$$.fragment),B=d(),S=n("p"),Q=s("Ora puoi passare il tuo lotto di input pre-processati direttamente al modello. Devi solo spacchettare il dizionario aggiungendo "),Y=n("code"),te=s("**"),H=s(":"),x=d(),z(ee.$$.fragment),D=d(),O=n("p"),fe=s("Il modello produrr\xE0 le attivazioni finali nell\u2019attributo "),oe=n("code"),$e=s("logits"),se=s(". Applica la funzione softmax a "),le=n("code"),ie=s("logits"),he=s(" per ottenere le probabilit\xE0:"),J=d(),z(A.$$.fragment)},l(v){a=r(v,"P",{});var q=p(a);m=i(q,"\u{1F917} Transformers fornisce un metodo semplice e unificato per caricare istanze pre-allenate. Questo significa che puoi caricare un "),o=r(q,"CODE",{});var pe=p(o);f=i(pe,"AutoModel"),pe.forEach(l),h=i(q," come caricheresti un "),b=r(q,"CODE",{});var Ce=p(b);U=i(Ce,"AutoTokenizer"),Ce.forEach(l),I=i(q,". L\u2019unica differenza \xE8 selezionare l\u2019"),E=r(q,"CODE",{});var de=p(E);R=i(de,"AutoModel"),de.forEach(l),W=i(q," corretto per il compito di interesse. Dato che stai facendo classificazione di testi, o sequenze, carica "),F=r(q,"CODE",{});var be=p(F);V=i(be,"AutoModelForSequenceClassification"),be.forEach(l),N=i(q,":"),q.forEach(l),T=$(v),y(G.$$.fragment,v),g=$(v),y(Z.$$.fragment,v),B=$(v),S=r(v,"P",{});var re=p(S);Q=i(re,"Ora puoi passare il tuo lotto di input pre-processati direttamente al modello. Devi solo spacchettare il dizionario aggiungendo "),Y=r(re,"CODE",{});var Ve=p(Y);te=i(Ve,"**"),Ve.forEach(l),H=i(re,":"),re.forEach(l),x=$(v),y(ee.$$.fragment,v),D=$(v),O=r(v,"P",{});var ve=p(O);fe=i(ve,"Il modello produrr\xE0 le attivazioni finali nell\u2019attributo "),oe=r(ve,"CODE",{});var Yt=p(oe);$e=i(Yt,"logits"),Yt.forEach(l),se=i(ve,". Applica la funzione softmax a "),le=r(ve,"CODE",{});var dt=p(le);ie=i(dt,"logits"),dt.forEach(l),he=i(ve," per ottenere le probabilit\xE0:"),ve.forEach(l),J=$(v),y(A.$$.fragment,v)},m(v,q){u(v,a,q),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I),t(a,E),t(E,R),t(a,W),t(a,F),t(F,V),t(a,N),u(v,T,q),M(G,v,q),u(v,g,q),M(Z,v,q),u(v,B,q),u(v,S,q),t(S,Q),t(S,Y),t(Y,te),t(S,H),u(v,x,q),M(ee,v,q),u(v,D,q),u(v,O,q),t(O,fe),t(O,oe),t(oe,$e),t(O,se),t(O,le),t(le,ie),t(O,he),u(v,J,q),M(A,v,q),ne=!0},p(v,q){const pe={};q&2&&(pe.$$scope={dirty:q,ctx:v}),Z.$set(pe)},i(v){ne||(w(G.$$.fragment,v),w(Z.$$.fragment,v),w(ee.$$.fragment,v),w(A.$$.fragment,v),ne=!0)},o(v){j(G.$$.fragment,v),j(Z.$$.fragment,v),j(ee.$$.fragment,v),j(A.$$.fragment,v),ne=!1},d(v){v&&l(a),v&&l(T),k(G,v),v&&l(g),k(Z,v),v&&l(B),v&&l(S),v&&l(x),k(ee,v),v&&l(D),v&&l(O),v&&l(J),k(A,v)}}}function Kp(C){let a,m;return a=new ge({props:{$$slots:{default:[Lp]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function ec(C){let a,m,o,f,h,b,U,I;return{c(){a=n("p"),m=s("Guarda il "),o=n("a"),f=s("task summary"),h=s(" per sapere quale classe di "),b=n("code"),U=s("AutoModel"),I=s(" utilizzare per quale compito."),this.h()},l(E){a=r(E,"P",{});var R=p(a);m=i(R,"Guarda il "),o=r(R,"A",{href:!0});var W=p(o);f=i(W,"task summary"),W.forEach(l),h=i(R," per sapere quale classe di "),b=r(R,"CODE",{});var F=p(b);U=i(F,"AutoModel"),F.forEach(l),I=i(R," utilizzare per quale compito."),R.forEach(l),this.h()},h(){_(o,"href","./task_summary")},m(E,R){u(E,a,R),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I)},d(E){E&&l(a)}}}function tc(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N,T,G,g,Z,B,S,Q,Y,te,H,x,ee,D,O,fe,oe,$e,se,le,ie,he;return G=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbiUwQSUwQW5vbWVfZGVsX21vZGVsbG8lMjAlM0QlMjAlMjJubHB0b3duJTJGYmVydC1iYXNlLW11bHRpbGluZ3VhbC11bmNhc2VkLXNlbnRpbWVudCUyMiUwQXRmX21vZGVsJTIwJTNEJTIwVEZBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZChub21lX2RlbF9tb2RlbGxvKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModelForSequenceClassification

<span class="hljs-meta">&gt;&gt;&gt; </span>nome_del_modello = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFAutoModelForSequenceClassification.from_pretrained(nome_del_modello)`}}),Z=new vl({props:{$$slots:{default:[ec]},$$scope:{ctx:C}}}),te=new X({props:{code:"dGZfb3V0cHV0cyUyMCUzRCUyMHRmX21vZGVsKHRmX2JhdGNoKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_outputs = tf_model(tf_batch)'}}),ie=new X({props:{code:"aW1wb3J0JTIwdGVuc29yZmxvdyUyMGFzJTIwdGYlMEElMEF0Zl9wcmVkaWN0aW9ucyUyMCUzRCUyMHRmLm5uLnNvZnRtYXgodGZfb3V0cHV0cy5sb2dpdHMlMkMlMjBheGlzJTNELTEpJTBBdGZfcHJlZGljdGlvbnM=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> tensorflow <span class="hljs-keyword">as</span> tf

<span class="hljs-meta">&gt;&gt;&gt; </span>tf_predictions = tf.nn.softmax(tf_outputs.logits, axis=-<span class="hljs-number">1</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_predictions`}}),{c(){a=n("p"),m=s("\u{1F917} Transformers fornisce un metodo semplice e unificato per caricare istanze pre-allenate. Questo significa che puoi caricare un "),o=n("code"),f=s("TFAutoModel"),h=s(" come caricheresti un "),b=n("code"),U=s("AutoTokenizer"),I=s(". L\u2019unica differenza \xE8 selezionare il "),E=n("code"),R=s("TFAutoModel"),W=s(" corretto per il compito di interesse. Dato che stai facendo classificazione di testi, o sequenze, carica "),F=n("code"),V=s("TFAutoModelForSequenceClassification"),N=s(":"),T=d(),z(G.$$.fragment),g=d(),z(Z.$$.fragment),B=d(),S=n("p"),Q=s("Ora puoi passare il tuo lotto di input pre-processati direttamente al modello passando le chiavi del dizionario al tensore:"),Y=d(),z(te.$$.fragment),H=d(),x=n("p"),ee=s("Il modello produrr\xE0 le attivazioni finali nell\u2019attributo "),D=n("code"),O=s("logits"),fe=s(". Applica la funzione softmax a "),oe=n("code"),$e=s("logits"),se=s(" per ottenere le probabilit\xE0:"),le=d(),z(ie.$$.fragment)},l(J){a=r(J,"P",{});var A=p(a);m=i(A,"\u{1F917} Transformers fornisce un metodo semplice e unificato per caricare istanze pre-allenate. Questo significa che puoi caricare un "),o=r(A,"CODE",{});var ne=p(o);f=i(ne,"TFAutoModel"),ne.forEach(l),h=i(A," come caricheresti un "),b=r(A,"CODE",{});var v=p(b);U=i(v,"AutoTokenizer"),v.forEach(l),I=i(A,". L\u2019unica differenza \xE8 selezionare il "),E=r(A,"CODE",{});var q=p(E);R=i(q,"TFAutoModel"),q.forEach(l),W=i(A," corretto per il compito di interesse. Dato che stai facendo classificazione di testi, o sequenze, carica "),F=r(A,"CODE",{});var pe=p(F);V=i(pe,"TFAutoModelForSequenceClassification"),pe.forEach(l),N=i(A,":"),A.forEach(l),T=$(J),y(G.$$.fragment,J),g=$(J),y(Z.$$.fragment,J),B=$(J),S=r(J,"P",{});var Ce=p(S);Q=i(Ce,"Ora puoi passare il tuo lotto di input pre-processati direttamente al modello passando le chiavi del dizionario al tensore:"),Ce.forEach(l),Y=$(J),y(te.$$.fragment,J),H=$(J),x=r(J,"P",{});var de=p(x);ee=i(de,"Il modello produrr\xE0 le attivazioni finali nell\u2019attributo "),D=r(de,"CODE",{});var be=p(D);O=i(be,"logits"),be.forEach(l),fe=i(de,". Applica la funzione softmax a "),oe=r(de,"CODE",{});var re=p(oe);$e=i(re,"logits"),re.forEach(l),se=i(de," per ottenere le probabilit\xE0:"),de.forEach(l),le=$(J),y(ie.$$.fragment,J)},m(J,A){u(J,a,A),t(a,m),t(a,o),t(o,f),t(a,h),t(a,b),t(b,U),t(a,I),t(a,E),t(E,R),t(a,W),t(a,F),t(F,V),t(a,N),u(J,T,A),M(G,J,A),u(J,g,A),M(Z,J,A),u(J,B,A),u(J,S,A),t(S,Q),u(J,Y,A),M(te,J,A),u(J,H,A),u(J,x,A),t(x,ee),t(x,D),t(D,O),t(x,fe),t(x,oe),t(oe,$e),t(x,se),u(J,le,A),M(ie,J,A),he=!0},p(J,A){const ne={};A&2&&(ne.$$scope={dirty:A,ctx:J}),Z.$set(ne)},i(J){he||(w(G.$$.fragment,J),w(Z.$$.fragment,J),w(te.$$.fragment,J),w(ie.$$.fragment,J),he=!0)},o(J){j(G.$$.fragment,J),j(Z.$$.fragment,J),j(te.$$.fragment,J),j(ie.$$.fragment,J),he=!1},d(J){J&&l(a),J&&l(T),k(G,J),J&&l(g),k(Z,J),J&&l(B),J&&l(S),J&&l(Y),k(te,J),J&&l(H),J&&l(x),J&&l(le),k(ie,J)}}}function lc(C){let a,m;return a=new ge({props:{$$slots:{default:[tc]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function ac(C){let a,m,o,f,h;return{c(){a=n("p"),m=s("Tutti i modelli di \u{1F917} Transformers (PyTorch e TensorFlow) restituiscono i tensori "),o=n("em"),f=s("prima"),h=s(` della funzione finale
di attivazione (come la softmax) perch\xE9 la funzione di attivazione finale viene spesso unita a quella di perdita.`)},l(b){a=r(b,"P",{});var U=p(a);m=i(U,"Tutti i modelli di \u{1F917} Transformers (PyTorch e TensorFlow) restituiscono i tensori "),o=r(U,"EM",{});var I=p(o);f=i(I,"prima"),I.forEach(l),h=i(U,` della funzione finale
di attivazione (come la softmax) perch\xE9 la funzione di attivazione finale viene spesso unita a quella di perdita.`),U.forEach(l)},m(b,U){u(b,a,U),t(a,m),t(a,o),t(o,f),t(a,h)},d(b){b&&l(a)}}}function oc(C){let a,m,o,f,h;return{c(){a=n("p"),m=s(`Gli output del modello di \u{1F917} Transformers sono delle dataclasses speciali in modo che i loro attributi vengano auto-completati all\u2019interno di un IDE.
Gli output del modello si comportano anche come una tupla o un dizionario (ad esempio, puoi indicizzare con un intero, una slice o una stringa) nel qual caso gli attributi che sono `),o=n("code"),f=s("None"),h=s(" vengono ignorati.")},l(b){a=r(b,"P",{});var U=p(a);m=i(U,`Gli output del modello di \u{1F917} Transformers sono delle dataclasses speciali in modo che i loro attributi vengano auto-completati all\u2019interno di un IDE.
Gli output del modello si comportano anche come una tupla o un dizionario (ad esempio, puoi indicizzare con un intero, una slice o una stringa) nel qual caso gli attributi che sono `),o=r(U,"CODE",{});var I=p(o);f=i(I,"None"),I.forEach(l),h=i(U," vengono ignorati."),U.forEach(l)},m(b,U){u(b,a,U),t(a,m),t(a,o),t(o,f),t(a,h)},d(b){b&&l(a)}}}function sc(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N,T,G;return U=new X({props:{code:"cHRfc2F2ZV9kaXJlY3RvcnklMjAlM0QlMjAlMjIuJTJGcHRfc2F2ZV9wcmV0cmFpbmVkJTIyJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZChwdF9zYXZlX2RpcmVjdG9yeSklMEFwdF9tb2RlbC5zYXZlX3ByZXRyYWluZWQocHRfc2F2ZV9kaXJlY3Rvcnkp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>pt_save_directory = <span class="hljs-string">&quot;./pt_save_pretrained&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.save_pretrained(pt_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model.save_pretrained(pt_save_directory)`}}),T=new X({props:{code:"cHRfbW9kZWwlMjAlM0QlMjBBdXRvTW9kZWxGb3JTZXF1ZW5jZUNsYXNzaWZpY2F0aW9uLmZyb21fcHJldHJhaW5lZCglMjIuJTJGcHRfc2F2ZV9wcmV0cmFpbmVkJTIyKQ==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = AutoModelForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;./pt_save_pretrained&quot;</span>)'}}),{c(){a=n("p"),m=s("Una volta completato il fine-tuning del tuo modello, puoi salvarlo con il suo tokenizer utilizzando "),o=n("code"),f=s("PreTrainedModel.save_pretrained()"),h=s(":"),b=d(),z(U.$$.fragment),I=d(),E=n("p"),R=s("Quando desideri utilizzare il tuo modello nuovamente, puoi ri-caricarlo con "),W=n("code"),F=s("PreTrainedModel.from_pretrained()"),V=s(":"),N=d(),z(T.$$.fragment)},l(g){a=r(g,"P",{});var Z=p(a);m=i(Z,"Una volta completato il fine-tuning del tuo modello, puoi salvarlo con il suo tokenizer utilizzando "),o=r(Z,"CODE",{});var B=p(o);f=i(B,"PreTrainedModel.save_pretrained()"),B.forEach(l),h=i(Z,":"),Z.forEach(l),b=$(g),y(U.$$.fragment,g),I=$(g),E=r(g,"P",{});var S=p(E);R=i(S,"Quando desideri utilizzare il tuo modello nuovamente, puoi ri-caricarlo con "),W=r(S,"CODE",{});var Q=p(W);F=i(Q,"PreTrainedModel.from_pretrained()"),Q.forEach(l),V=i(S,":"),S.forEach(l),N=$(g),y(T.$$.fragment,g)},m(g,Z){u(g,a,Z),t(a,m),t(a,o),t(o,f),t(a,h),u(g,b,Z),M(U,g,Z),u(g,I,Z),u(g,E,Z),t(E,R),t(E,W),t(W,F),t(E,V),u(g,N,Z),M(T,g,Z),G=!0},p:Ue,i(g){G||(w(U.$$.fragment,g),w(T.$$.fragment,g),G=!0)},o(g){j(U.$$.fragment,g),j(T.$$.fragment,g),G=!1},d(g){g&&l(a),g&&l(b),k(U,g),g&&l(I),g&&l(E),g&&l(N),k(T,g)}}}function ic(C){let a,m;return a=new ge({props:{$$slots:{default:[sc]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function nc(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N,T,G;return U=new X({props:{code:"dGZfc2F2ZV9kaXJlY3RvcnklMjAlM0QlMjAlMjIuJTJGdGZfc2F2ZV9wcmV0cmFpbmVkJTIyJTBBdG9rZW5pemVyLnNhdmVfcHJldHJhaW5lZCh0Zl9zYXZlX2RpcmVjdG9yeSklMEF0Zl9tb2RlbC5zYXZlX3ByZXRyYWluZWQodGZfc2F2ZV9kaXJlY3Rvcnkp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>tf_save_directory = <span class="hljs-string">&quot;./tf_save_pretrained&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer.save_pretrained(tf_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model.save_pretrained(tf_save_directory)`}}),T=new X({props:{code:"dGZfbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKCUyMi4lMkZ0Zl9zYXZlX3ByZXRyYWluZWQlMjIp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFAutoModelForSequenceClassification.from_pretrained(<span class="hljs-string">&quot;./tf_save_pretrained&quot;</span>)'}}),{c(){a=n("p"),m=s("Una volta completato il fine-tuning del tuo modello, puoi salvarlo con il suo tokenizer utilizzando "),o=n("code"),f=s("TFPreTrainedModel.save_pretrained()"),h=s(":"),b=d(),z(U.$$.fragment),I=d(),E=n("p"),R=s("Quando desideri utilizzare il tuo modello nuovamente, puoi ri-caricarlo con "),W=n("code"),F=s("TFPreTrainedModel.from_pretrained()"),V=s(":"),N=d(),z(T.$$.fragment)},l(g){a=r(g,"P",{});var Z=p(a);m=i(Z,"Una volta completato il fine-tuning del tuo modello, puoi salvarlo con il suo tokenizer utilizzando "),o=r(Z,"CODE",{});var B=p(o);f=i(B,"TFPreTrainedModel.save_pretrained()"),B.forEach(l),h=i(Z,":"),Z.forEach(l),b=$(g),y(U.$$.fragment,g),I=$(g),E=r(g,"P",{});var S=p(E);R=i(S,"Quando desideri utilizzare il tuo modello nuovamente, puoi ri-caricarlo con "),W=r(S,"CODE",{});var Q=p(W);F=i(Q,"TFPreTrainedModel.from_pretrained()"),Q.forEach(l),V=i(S,":"),S.forEach(l),N=$(g),y(T.$$.fragment,g)},m(g,Z){u(g,a,Z),t(a,m),t(a,o),t(o,f),t(a,h),u(g,b,Z),M(U,g,Z),u(g,I,Z),u(g,E,Z),t(E,R),t(E,W),t(W,F),t(E,V),u(g,N,Z),M(T,g,Z),G=!0},p:Ue,i(g){G||(w(U.$$.fragment,g),w(T.$$.fragment,g),G=!0)},o(g){j(U.$$.fragment,g),j(T.$$.fragment,g),G=!1},d(g){g&&l(a),g&&l(b),k(U,g),g&&l(I),g&&l(E),g&&l(N),k(T,g)}}}function rc(C){let a,m;return a=new ge({props:{$$slots:{default:[nc]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function pc(C){let a,m;return a=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Nb2RlbCUwQSUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKHRmX3NhdmVfZGlyZWN0b3J5KSUwQXB0X21vZGVsJTIwJTNEJTIwQXV0b01vZGVsRm9yU2VxdWVuY2VDbGFzc2lmaWNhdGlvbi5mcm9tX3ByZXRyYWluZWQodGZfc2F2ZV9kaXJlY3RvcnklMkMlMjBmcm9tX3RmJTNEVHJ1ZSk=",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>tokenizer = AutoTokenizer.from_pretrained(tf_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>pt_model = AutoModelForSequenceClassification.from_pretrained(tf_save_directory, from_tf=<span class="hljs-literal">True</span>)`}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p:Ue,i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function cc(C){let a,m;return a=new ge({props:{$$slots:{default:[pc]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function uc(C){let a,m;return a=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMFRGQXV0b01vZGVsJTBBJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQocHRfc2F2ZV9kaXJlY3RvcnkpJTBBdGZfbW9kZWwlMjAlM0QlMjBURkF1dG9Nb2RlbEZvclNlcXVlbmNlQ2xhc3NpZmljYXRpb24uZnJvbV9wcmV0cmFpbmVkKHB0X3NhdmVfZGlyZWN0b3J5JTJDJTIwZnJvbV9wdCUzRFRydWUp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> TFAutoModel

<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(pt_save_directory)
<span class="hljs-meta">&gt;&gt;&gt; </span>tf_model = TFAutoModelForSequenceClassification.from_pretrained(pt_save_directory, from_pt=<span class="hljs-literal">True</span>)`}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p:Ue,i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function mc(C){let a,m;return a=new ge({props:{$$slots:{default:[uc]},$$scope:{ctx:C}}}),{c(){z(a.$$.fragment)},l(o){y(a.$$.fragment,o)},m(o,f){M(a,o,f),m=!0},p(o,f){const h={};f&2&&(h.$$scope={dirty:f,ctx:o}),a.$set(h)},i(o){m||(w(a.$$.fragment,o),m=!0)},o(o){j(a.$$.fragment,o),m=!1},d(o){k(a,o)}}}function fc(C){let a,m,o,f,h,b,U,I,E,R,W,F,V,N,T,G,g,Z,B,S,Q,Y,te,H,x,ee,D,O,fe,oe,$e,se,le,ie,he,J,A,ne,v,q,pe,Ce,de,be,re,Ve,ve,Yt,dt,P,_l,Ko,es,zl,ts,ls,yl,as,os,Ml,ss,is,wl,ns,rs,jl,ps,cs,kl,us,ms,El,fs,Ta,$t,Tl,ds,$s,Ja,_e,Jl,hs,gs,Ul,bs,vs,Cl,_s,Ua,ht,Zl,zs,ys,Ca,qe,Rl,Ms,ws,Gl,js,Za,Ne,Ra,Ze,Xe,Il,gt,ks,Wl,Es,Ga,Se,Ts,Fl,Js,Us,Ia,Qt,Cs,Wa,Be,Fa,xe,Zs,Al,Rs,Gs,Aa,bt,Va,ze,Is,vt,Ws,Fs,Vl,As,Vs,qa,_t,Na,Pe,qs,ql,Ns,Xs,Xa,zt,Sa,ye,Ss,Nl,Bs,xs,yt,Ps,Ys,Ba,Mt,xa,Ye,Qs,Xl,Hs,Ds,Pa,wt,Ya,Me,Os,jt,Ls,Ks,kt,ei,ti,Qa,Et,Ha,Qe,li,Sl,ai,oi,Da,Tt,Oa,Ht,si,La,Jt,Ka,He,ii,Dt,ni,ri,eo,Re,De,Bl,Ut,pi,xl,ci,to,ce,ui,Pl,mi,fi,Ct,di,$i,Yl,hi,gi,Zt,bi,vi,lo,Rt,ao,Oe,oo,we,_i,Ql,zi,yi,Hl,Mi,wi,so,Gt,io,je,ji,Ot,ki,Ei,Lt,Ti,Ji,no,Ge,Le,Dl,It,Ui,Ol,Ci,ro,Wt,po,L,Zi,Ll,Ri,Gi,Kl,Ii,Wi,ea,Fi,Ai,Kt,Vi,qi,ta,Ni,Xi,la,Si,Bi,co,ke,xi,aa,Pi,Yi,oa,Qi,Hi,uo,Ie,Ke,sa,Ft,Di,ia,Oi,mo,Ee,Li,na,Ki,en,el,tn,ln,fo,et,an,ra,on,sn,$o,At,ho,tt,nn,pa,rn,pn,go,tl,cn,bo,Vt,vo,ll,un,_o,lt,al,ol,mn,fn,dn,sl,il,$n,hn,zo,at,gn,ca,bn,vn,yo,ot,Mo,st,_n,nl,zn,yn,wo,We,it,ua,qt,Mn,ma,wn,jo,nt,ko,rt,Eo,K,jn,Nt,fa,kn,En,Xt,da,Tn,Jn,$a,Un,Cn,ha,Zn,Rn,St,Gn,In,rl,Wn,Fn,To,pt,Jo,Fe,ct,ga,Bt,An,ba,Vn,Uo,ut,Co,Te,qn,va,Nn,Xn,_a,Sn,Bn,Zo,mt,Ro;return b=new ft({}),W=new Wp({props:{classNames:"absolute z-10 right-0 top-0",options:[{label:"Mixed",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/it/quicktour.ipynb"},{label:"PyTorch",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/it/pytorch/quicktour.ipynb"},{label:"TensorFlow",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/main/transformers_doc/it/tensorflow/quicktour.ipynb"},{label:"Mixed",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/it/quicktour.ipynb"},{label:"PyTorch",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/it/pytorch/quicktour.ipynb"},{label:"TensorFlow",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/main/transformers_doc/it/tensorflow/quicktour.ipynb"}]}}),Y=new vl({props:{$$slots:{default:[Fp]},$$scope:{ctx:C}}}),D=new ft({}),A=new Up({props:{id:"tiZFewofSLM"}}),Ne=new vl({props:{$$slots:{default:[Ap]},$$scope:{ctx:C}}}),gt=new ft({}),Be=new bl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Xp],pytorch:[qp]},$$scope:{ctx:C}}}),bt=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2xhc3NpZmljYXRvcmUlMjAlM0QlMjBwaXBlbGluZSglMjJzZW50aW1lbnQtYW5hbHlzaXMlMjIlMkMlMjBtb2RlbCUzRCUyMk1pbGFOTFByb2MlMkZmZWVsLWl0LWl0YWxpYW4tc2VudGltZW50JTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>classificatore = pipeline(<span class="hljs-string">&quot;sentiment-analysis&quot;</span>, model=<span class="hljs-string">&quot;MilaNLProc/feel-it-italian-sentiment&quot;</span>)`}}),_t=new X({props:{code:"Y2xhc3NpZmljYXRvcmUoJTIyU2lhbW8lMjBtb2x0byUyMGZlbGljaSUyMGRpJTIwbW9zdHJhcnRpJTIwbGElMjBsaWJyZXJpYSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>classificatore(<span class="hljs-string">&quot;Siamo molto felici di mostrarti la libreria \u{1F917} Transformers.&quot;</span>)
[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;positive&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.9997</span>}]`}}),zt=new X({props:{code:"cmlzdWx0YXRpJTIwJTNEJTIwY2xhc3NpZmljYXRvcmUoJTBBJTIwJTIwJTIwJTIwJTVCJTIyU2lhbW8lMjBtb2x0byUyMGZlbGljaSUyMGRpJTIwbW9zdHJhcnRpJTIwbGElMjBsaWJyZXJpYSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIlMkMlMjAlMjJTcGVyaWFtbyUyMHRlJTIwbm9uJTIwbGElMjBvZGllcmFpLiUyMiU1RCUwQSklMEFmb3IlMjByaXN1bHRhdG8lMjBpbiUyMHJpc3VsdGF0aSUzQSUwQSUyMCUyMCUyMCUyMHByaW50KGYlMjJldGljaGV0dGElM0ElMjAlN0JyaXN1bHRhdG8lNUInbGFiZWwnJTVEJTdEJTJDJTIwY29uJTIwcHVudGVnZ2lvJTNBJTIwJTdCcm91bmQocmlzdWx0YXRvJTVCJ3Njb3JlJyU1RCUyQyUyMDQpJTdEJTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>risultati = classificatore(
<span class="hljs-meta">... </span>    [<span class="hljs-string">&quot;Siamo molto felici di mostrarti la libreria \u{1F917} Transformers.&quot;</span>, <span class="hljs-string">&quot;Speriamo te non la odierai.&quot;</span>]
<span class="hljs-meta">... </span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">for</span> risultato <span class="hljs-keyword">in</span> risultati:
<span class="hljs-meta">... </span>    <span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;etichetta: <span class="hljs-subst">{risultato[<span class="hljs-string">&#x27;label&#x27;</span>]}</span>, con punteggio: <span class="hljs-subst">{<span class="hljs-built_in">round</span>(risultato[<span class="hljs-string">&#x27;score&#x27;</span>], <span class="hljs-number">4</span>)}</span>&quot;</span>)
etichetta: positive, con punteggio: <span class="hljs-number">0.9998</span>
etichetta: negative, con punteggio: <span class="hljs-number">0.9998</span>`}}),Mt=new X({props:{code:"cGlwJTIwaW5zdGFsbCUyMGRhdGFzZXRzJTIw",highlighted:"pip install datasets "}}),wt=new X({props:{code:"aW1wb3J0JTIwdG9yY2glMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwcGlwZWxpbmUlMEElMEFyaWNvbm9zY2l0b3JlX3ZvY2FsZSUyMCUzRCUyMHBpcGVsaW5lKCUwQSUyMCUyMCUyMCUyMCUyMmF1dG9tYXRpYy1zcGVlY2gtcmVjb2duaXRpb24lMjIlMkMlMjBtb2RlbCUzRCUyMnJhZGlvZ3JvdXAtY3JpdHMlMkZ3YXYydmVjMi14bHMtci0xYi1pdGFsaWFuLWRvYzRsbS01Z3JhbSUyMiUwQSk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>riconoscitore_vocale = pipeline(
<span class="hljs-meta">... </span>    <span class="hljs-string">&quot;automatic-speech-recognition&quot;</span>, model=<span class="hljs-string">&quot;radiogroup-crits/wav2vec2-xls-r-1b-italian-doc4lm-5gram&quot;</span>
<span class="hljs-meta">... </span>)`}}),Et=new X({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTJDJTIwQXVkaW8lMEElMEFkYXRhc2V0JTIwJTNEJTIwbG9hZF9kYXRhc2V0KCUyMlBvbHlBSSUyRm1pbmRzMTQlMjIlMkMlMjBuYW1lJTNEJTIyaXQtSVQlMjIlMkMlMjBzcGxpdCUzRCUyMnRyYWluJTIyKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset, Audio

<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = load_dataset(<span class="hljs-string">&quot;PolyAI/minds14&quot;</span>, name=<span class="hljs-string">&quot;it-IT&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)`}}),Tt=new X({props:{code:"ZGF0YXNldCUyMCUzRCUyMGRhdGFzZXQuY2FzdF9jb2x1bW4oJTIyYXVkaW8lMjIlMkMlMjBBdWRpbyhzYW1wbGluZ19yYXRlJTNEcmljb25vc2NpdG9yZV92b2NhbGUuZmVhdHVyZV9leHRyYWN0b3Iuc2FtcGxpbmdfcmF0ZSkp",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>dataset = dataset.cast_column(<span class="hljs-string">&quot;audio&quot;</span>, Audio(sampling_rate=riconoscitore_vocale.feature_extractor.sampling_rate))'}}),Jt=new X({props:{code:"cmlzdWx0YXRvJTIwJTNEJTIwcmljb25vc2NpdG9yZV92b2NhbGUoZGF0YXNldCU1QiUzQTQlNUQlNUIlMjJhdWRpbyUyMiU1RCklMEFwcmludCglNUJkJTVCJTIydGV4dCUyMiU1RCUyMGZvciUyMGQlMjBpbiUyMHJpc3VsdGF0byU1RCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>risultato = riconoscitore_vocale(dataset[:<span class="hljs-number">4</span>][<span class="hljs-string">&quot;audio&quot;</span>])
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>([d[<span class="hljs-string">&quot;text&quot;</span>] <span class="hljs-keyword">for</span> d <span class="hljs-keyword">in</span> risultato])
[<span class="hljs-string">&#x27;dovrei caricare dei soldi sul mio conto corrente&#x27;</span>, <span class="hljs-string">&#x27;buongiorno e senza vorrei depositare denaro sul mio conto corrente come devo fare per cortesia&#x27;</span>, <span class="hljs-string">&#x27;s\xEC salve vorrei depositare del denaro sul mio conto&#x27;</span>, <span class="hljs-string">&#x27;e buon pomeriggio vorrei depositare dei soldi sul mio conto bancario volleo sapere come posso fare se e posso farlo online ed un altro conto o andandoo tramite bancomut&#x27;</span>]`}}),Ut=new ft({}),Rt=new X({props:{code:"bW9kZWxfbmFtZSUyMCUzRCUyMCUyMm5scHRvd24lMkZiZXJ0LWJhc2UtbXVsdGlsaW5ndWFsLXVuY2FzZWQtc2VudGltZW50JTIy",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>model_name = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>'}}),Oe=new bl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Pp],pytorch:[Bp]},$$scope:{ctx:C}}}),Gt=new X({props:{code:"Y2xhc3NpZmllciUyMCUzRCUyMHBpcGVsaW5lKCUyMnNlbnRpbWVudC1hbmFseXNpcyUyMiUyQyUyMG1vZGVsJTNEbW9kZWwlMkMlMjB0b2tlbml6ZXIlM0R0b2tlbml6ZXIpJTBBY2xhc3NpZmllciglMjJOb3VzJTIwc29tbWVzJTIwdHIlQzMlQThzJTIwaGV1cmV1eCUyMGRlJTIwdm91cyUyMHByJUMzJUE5c2VudGVyJTIwbGElMjBiaWJsaW90aCVDMyVBOHF1ZSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>classifier = pipeline(<span class="hljs-string">&quot;sentiment-analysis&quot;</span>, model=model, tokenizer=tokenizer)
<span class="hljs-meta">&gt;&gt;&gt; </span>classifier(<span class="hljs-string">&quot;Nous sommes tr\xE8s heureux de vous pr\xE9senter la biblioth\xE8que \u{1F917} Transformers.&quot;</span>)
[{<span class="hljs-string">&#x27;label&#x27;</span>: <span class="hljs-string">&#x27;5 stars&#x27;</span>, <span class="hljs-string">&#x27;score&#x27;</span>: <span class="hljs-number">0.7273</span>}]`}}),It=new ft({}),Wt=new Up({props:{id:"AhChOFRegn4"}}),Ft=new ft({}),At=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEFub21lX2RlbF9tb2RlbGxvJTIwJTNEJTIwJTIybmxwdG93biUyRmJlcnQtYmFzZS1tdWx0aWxpbmd1YWwtdW5jYXNlZC1zZW50aW1lbnQlMjIlMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZChub21lX2RlbF9tb2RlbGxvKQ==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

<span class="hljs-meta">&gt;&gt;&gt; </span>nome_del_modello = <span class="hljs-string">&quot;nlptown/bert-base-multilingual-uncased-sentiment&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>tokenizer = AutoTokenizer.from_pretrained(nome_del_modello)`}}),Vt=new X({props:{code:"ZW5jb2RpbmclMjAlM0QlMjB0b2tlbml6ZXIoJTIyU2lhbW8lMjBtb2x0byUyMGZlbGljaSUyMGRpJTIwbW9zdHJhcnRpJTIwbGElMjBsaWJyZXJpYSUyMCVGMCU5RiVBNCU5NyUyMFRyYW5zZm9ybWVycy4lMjIpJTBBcHJpbnQoZW5jb2Rpbmcp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span>encoding = tokenizer(<span class="hljs-string">&quot;Siamo molto felici di mostrarti la libreria \u{1F917} Transformers.&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">print</span>(encoding)
{<span class="hljs-string">&#x27;input_ids&#x27;</span>: [<span class="hljs-number">101</span>, <span class="hljs-number">56821</span>, <span class="hljs-number">10132</span>, <span class="hljs-number">14407</span>, <span class="hljs-number">13019</span>, <span class="hljs-number">13007</span>, <span class="hljs-number">10120</span>, <span class="hljs-number">47201</span>, <span class="hljs-number">10330</span>, <span class="hljs-number">10106</span>, <span class="hljs-number">91686</span>, <span class="hljs-number">100</span>, <span class="hljs-number">58263</span>, <span class="hljs-number">119</span>, <span class="hljs-number">102</span>],
<span class="hljs-string">&#x27;token_type_ids&#x27;</span>: [<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>],
<span class="hljs-string">&#x27;attention_mask&#x27;</span>: [<span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>, <span class="hljs-number">1</span>]}`}}),ot=new bl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[Dp],pytorch:[Qp]},$$scope:{ctx:C}}}),qt=new ft({}),nt=new bl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[lc],pytorch:[Kp]},$$scope:{ctx:C}}}),rt=new vl({props:{$$slots:{default:[ac]},$$scope:{ctx:C}}}),pt=new vl({props:{$$slots:{default:[oc]},$$scope:{ctx:C}}}),Bt=new ft({}),ut=new bl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[rc],pytorch:[ic]},$$scope:{ctx:C}}}),mt=new bl({props:{pytorch:!0,tensorflow:!0,jax:!1,$$slots:{tensorflow:[mc],pytorch:[cc]},$$scope:{ctx:C}}}),{c(){a=n("meta"),m=d(),o=n("h1"),f=n("a"),h=n("span"),z(b.$$.fragment),U=d(),I=n("span"),E=s("Quick tour"),R=d(),z(W.$$.fragment),F=d(),V=n("p"),N=s("Entra in azione con \u{1F917} Transformers! Inizia utilizzando "),T=n("code"),G=s("pipeline()"),g=s(" per un\u2019inferenza veloce, carica un modello pre-allenato e un tokenizer con una "),Z=n("a"),B=s("AutoClass"),S=s(" per risolvere i tuoi compiti legati a testo, immagini o audio."),Q=d(),z(Y.$$.fragment),te=d(),H=n("h2"),x=n("a"),ee=n("span"),z(D.$$.fragment),O=d(),fe=n("span"),oe=s("Pipeline"),$e=d(),se=n("p"),le=n("code"),ie=s("pipeline()"),he=s(" \xE8 il modo pi\xF9 semplice per utilizzare un modello pre-allenato per un dato compito."),J=d(),z(A.$$.fragment),ne=d(),v=n("p"),q=s("La "),pe=n("code"),Ce=s("pipeline()"),de=s(" supporta molti compiti comuni:"),be=d(),re=n("p"),Ve=n("strong"),ve=s("Testo"),Yt=s(":"),dt=d(),P=n("ul"),_l=n("li"),Ko=s("Analisi del Sentimento (Sentiment Analysis, in inglese): classifica la polarit\xE0 di un testo dato."),es=d(),zl=n("li"),ts=s("Generazione del Testo (Text Generation, in inglese): genera del testo a partire da un dato input."),ls=d(),yl=n("li"),as=s("Riconoscimento di Entit\xE0 (Name Entity Recognition o NER, in inglese): etichetta ogni parola con l\u2019entit\xE0 che questa rappresenta (persona, data, luogo, ecc.)."),os=d(),Ml=n("li"),ss=s("Rispondere a Domande (Question answering, in inglese): estrae la risposta da un contesto, dato del contesto e una domanda."),is=d(),wl=n("li"),ns=s("Riempimento di Maschere (Fill-mask, in inglese): riempie gli spazi mancanti in un testo che ha parole mascherate."),rs=d(),jl=n("li"),ps=s("Riassumere (Summarization, in inglese): genera una sintesi di una lunga sequenza di testo o di un documento."),cs=d(),kl=n("li"),us=s("Traduzione (Translation, in inglese): traduce un testo in un\u2019altra lingua."),ms=d(),El=n("li"),fs=s("Estrazione di Caratteristiche (Feature Extraction, in inglese): crea un tensore che rappresenta un testo."),Ta=d(),$t=n("p"),Tl=n("strong"),ds=s("Immagini"),$s=s(":"),Ja=d(),_e=n("ul"),Jl=n("li"),hs=s("Classificazione di Immagini (Image Classification, in inglese): classifica un\u2019immagine."),gs=d(),Ul=n("li"),bs=s("Segmentazione di Immagini (Image Segmentation, in inglese): classifica ogni pixel di un\u2019immagine."),vs=d(),Cl=n("li"),_s=s("Rilevazione di Oggetti (Object Detection, in inglese): rileva oggetti all\u2019interno di un\u2019immagine."),Ua=d(),ht=n("p"),Zl=n("strong"),zs=s("Audio"),ys=s(":"),Ca=d(),qe=n("ul"),Rl=n("li"),Ms=s("Classificazione di Audio (Audio Classification, in inglese): assegna un\u2019etichetta ad un segmento di audio dato."),ws=d(),Gl=n("li"),js=s("Riconoscimento Vocale Automatico (Automatic Speech Recognition o ASR, in inglese): trascrive il contenuto di un audio dato in un testo."),Za=d(),z(Ne.$$.fragment),Ra=d(),Ze=n("h3"),Xe=n("a"),Il=n("span"),z(gt.$$.fragment),ks=d(),Wl=n("span"),Es=s("Utilizzo della Pipeline"),Ga=d(),Se=n("p"),Ts=s("Nel seguente esempio, utilizzerai la "),Fl=n("code"),Js=s("pipeline()"),Us=s(" per l\u2019analisi del sentimento."),Ia=d(),Qt=n("p"),Cs=s("Installa le seguenti dipendenze se non lo hai gi\xE0 fatto:"),Wa=d(),z(Be.$$.fragment),Fa=d(),xe=n("p"),Zs=s("Importa "),Al=n("code"),Rs=s("pipeline()"),Gs=s(" e specifica il compito che vuoi completare:"),Aa=d(),z(bt.$$.fragment),Va=d(),ze=n("p"),Is=s("La pipeline scarica e salva il "),vt=n("a"),Ws=s("modello pre-allenato"),Fs=s(" e il tokenizer per l\u2019analisi del sentimento. Se non avessimo scelto un modello, la pipeline ne avrebbe scelto uno di default. Ora puoi utilizzare il "),Vl=n("code"),As=s("classifier"),Vs=s(" sul tuo testo obiettivo:"),qa=d(),z(_t.$$.fragment),Na=d(),Pe=n("p"),qs=s("Per pi\xF9 di una frase, passa una lista di frasi alla "),ql=n("code"),Ns=s("pipeline()"),Xs=s(" la quale restituir\xE0 una lista di dizionari:"),Xa=d(),z(zt.$$.fragment),Sa=d(),ye=n("p"),Ss=s("La "),Nl=n("code"),Bs=s("pipeline()"),xs=s(" pu\xF2 anche iterare su un dataset intero. Inizia installando la libreria "),yt=n("a"),Ps=s("\u{1F917} Datasets"),Ys=s(":"),Ba=d(),z(Mt.$$.fragment),xa=d(),Ye=n("p"),Qs=s("Crea una "),Xl=n("code"),Hs=s("pipeline()"),Ds=s(" con il compito che vuoi risolvere e con il modello che vuoi utilizzare."),Pa=d(),z(wt.$$.fragment),Ya=d(),Me=n("p"),Os=s("Poi, carica un dataset (vedi \u{1F917} Datasets "),jt=n("a"),Ls=s("Quick Start"),Ks=s(" per maggiori dettagli) sul quale vuoi iterare. Per esempio, carichiamo il dataset "),kt=n("a"),ei=s("MInDS-14"),ti=s(":"),Qa=d(),z(Et.$$.fragment),Ha=d(),Qe=n("p"),li=s("Dobbiamo assicurarci che la frequenza di campionamento del set di dati corrisponda alla frequenza di campionamento con cui \xE8 stato addestrato "),Sl=n("code"),ai=s("radiogroup-crits/wav2vec2-xls-r-1b-italian-doc4lm-5gram"),oi=s("."),Da=d(),z(Tt.$$.fragment),Oa=d(),Ht=n("p"),si=s(`I file audio vengono caricati automaticamente e ri-campionati quando chiamiamo la colonna \u201Caudio\u201D.
Estraiamo i vettori delle forme d\u2019onda grezze delle prime 4 osservazioni e passiamoli come lista alla pipeline:`),La=d(),z(Jt.$$.fragment),Ka=d(),He=n("p"),ii=s("Per un dataset pi\xF9 grande dove gli input sono di dimensione maggiore (come nel parlato/audio o nella visione), dovrai passare un generatore al posto di una lista che carica tutti gli input in memoria. Guarda la "),Dt=n("a"),ni=s("documentazione della pipeline"),ri=s(" per maggiori informazioni."),eo=d(),Re=n("h3"),De=n("a"),Bl=n("span"),z(Ut.$$.fragment),pi=d(),xl=n("span"),ci=s("Utilizzare un altro modello e tokenizer nella pipeline"),to=d(),ce=n("p"),ui=s("La "),Pl=n("code"),mi=s("pipeline()"),fi=s(" pu\xF2 ospitare qualsiasi modello del "),Ct=n("a"),di=s("Model Hub"),$i=s(", rendendo semplice l\u2019adattamento della "),Yl=n("code"),hi=s("pipeline()"),gi=s(" per altri casi d\u2019uso. Per esempio, se si vuole un modello capace di trattare testo in francese, usa i tag presenti nel Model Hub in modo da filtrare per ottenere un modello appropriato. Il miglior risultato filtrato restituisce un modello multi-lingua "),Zt=n("a"),bi=s("BERT model"),vi=s(" fine-tuned per l\u2019analisi del sentimento. Ottimo, utilizziamo questo modello!"),lo=d(),z(Rt.$$.fragment),ao=d(),z(Oe.$$.fragment),oo=d(),we=n("p"),_i=s("Poi puoi specificare il modello e il tokenizer nella "),Ql=n("code"),zi=s("pipeline()"),yi=s(", e applicare il "),Hl=n("code"),Mi=s("classifier"),wi=s(" sul tuo testo obiettivo:"),so=d(),z(Gt.$$.fragment),io=d(),je=n("p"),ji=s("Se non riesci a trovare un modello per il tuo caso d\u2019uso, dovrai fare fine-tuning di un modello pre-allenato sui tuoi dati. Dai un\u2019occhiata al nostro tutorial "),Ot=n("a"),ki=s("fine-tuning tutorial"),Ei=s(" per imparare come. Infine, dopo che hai completato il fine-tuning del tuo modello pre-allenato, considera per favore di condividerlo (vedi il tutorial "),Lt=n("a"),Ti=s("qui"),Ji=s(") con la comunit\xE0 sul Model Hub per democratizzare l\u2019NLP! \u{1F917}"),no=d(),Ge=n("h2"),Le=n("a"),Dl=n("span"),z(It.$$.fragment),Ui=d(),Ol=n("span"),Ci=s("AutoClass"),ro=d(),z(Wt.$$.fragment),po=d(),L=n("p"),Zi=s("Al suo interno, le classi "),Ll=n("code"),Ri=s("AutoModelForSequenceClassification"),Gi=s(" e "),Kl=n("code"),Ii=s("AutoTokenizer"),Wi=s(" lavorano assieme per dare potere alla "),ea=n("code"),Fi=s("pipeline()"),Ai=s(". Una "),Kt=n("a"),Vi=s("AutoClass"),qi=s(" \xE8 una scorciatoia che automaticamente recupera l\u2019architettura di un modello pre-allenato a partire dal suo nome o path. Hai solo bisogno di selezionare la "),ta=n("code"),Ni=s("AutoClass"),Xi=s(" appropriata per il tuo compito e il suo tokenizer associato con "),la=n("code"),Si=s("AutoTokenizer"),Bi=s("."),co=d(),ke=n("p"),xi=s("Ritorniamo al nostro esempio e vediamo come puoi utilizzare la "),aa=n("code"),Pi=s("AutoClass"),Yi=s(" per replicare i risultati della "),oa=n("code"),Qi=s("pipeline()"),Hi=s("."),uo=d(),Ie=n("h3"),Ke=n("a"),sa=n("span"),z(Ft.$$.fragment),Di=d(),ia=n("span"),Oi=s("AutoTokenizer"),mo=d(),Ee=n("p"),Li=s("Un tokenizer \xE8 responsabile dell\u2019elaborazione del testo in modo da trasformarlo in un formato comprensibile dal modello. Per prima cosa, il tokenizer divider\xE0 il testo in parole chiamate "),na=n("em"),Ki=s("token"),en=s(". Ci sono diverse regole che governano il processo di tokenizzazione, tra cui come dividere una parola e a quale livello (impara di pi\xF9 sulla tokenizzazione "),el=n("a"),tn=s("qui"),ln=s("). La cosa pi\xF9 importante da ricordare comunque \xE8 che hai bisogno di inizializzare il tokenizer con lo stesso nome del modello in modo da assicurarti che stai utilizzando le stesse regole di tokenizzazione con cui il modello \xE8 stato pre-allenato."),fo=d(),et=n("p"),an=s("Carica un tokenizer con "),ra=n("code"),on=s("AutoTokenizer"),sn=s(":"),$o=d(),z(At.$$.fragment),ho=d(),tt=n("p"),nn=s("Dopodich\xE9, il tokenizer converte i token in numeri in modo da costruire un tensore come input del modello. Questo \xE8 conosciuto come il "),pa=n("em"),rn=s("vocabolario"),pn=s(" del modello."),go=d(),tl=n("p"),cn=s("Passa il tuo testo al tokenizer:"),bo=d(),z(Vt.$$.fragment),vo=d(),ll=n("p"),un=s("Il tokenizer restituir\xE0 un dizionario contenente:"),_o=d(),lt=n("ul"),al=n("li"),ol=n("a"),mn=s("input_ids"),fn=s(": rappresentazioni numeriche dei tuoi token."),dn=d(),sl=n("li"),il=n("a"),$n=s("attention_mask"),hn=s(": indica quali token devono essere presi in considerazione."),zo=d(),at=n("p"),gn=s("Come con la "),ca=n("code"),bn=s("pipeline()"),vn=s(", il tokenizer accetter\xE0 una lista di input. In pi\xF9, il tokenizer pu\xF2 anche completare (pad, in inglese) e troncare il testo in modo da restituire un lotto (batch, in inglese) di lunghezza uniforme:"),yo=d(),z(ot.$$.fragment),Mo=d(),st=n("p"),_n=s("Leggi il tutorial sul "),nl=n("a"),zn=s("preprocessing"),yn=s(" per maggiori dettagli sulla tokenizzazione."),wo=d(),We=n("h3"),it=n("a"),ua=n("span"),z(qt.$$.fragment),Mn=d(),ma=n("span"),wn=s("AutoModel"),jo=d(),z(nt.$$.fragment),ko=d(),z(rt.$$.fragment),Eo=d(),K=n("p"),jn=s("I modelli sono "),Nt=n("a"),fa=n("code"),kn=s("torch.nn.Module"),En=s(" o "),Xt=n("a"),da=n("code"),Tn=s("tf.keras.Model"),Jn=s(" standard cos\xEC puoi utilizzarli all\u2019interno del tuo training loop usuale. Tuttavia, per rendere le cose pi\xF9 semplici, \u{1F917} Transformers fornisce una classe "),$a=n("code"),Un=s("Trainer"),Cn=s(" per PyTorch che aggiunge delle funzionalit\xE0 per l\u2019allenamento distribuito, precisione mista, e altro ancora. Per TensorFlow, puoi utilizzare il metodo "),ha=n("code"),Zn=s("fit"),Rn=s(" di "),St=n("a"),Gn=s("Keras"),In=s(". Fai riferimento al "),rl=n("a"),Wn=s("tutorial per il training"),Fn=s(" per maggiori dettagli."),To=d(),z(pt.$$.fragment),Jo=d(),Fe=n("h3"),ct=n("a"),ga=n("span"),z(Bt.$$.fragment),An=d(),ba=n("span"),Vn=s("Salva un modello"),Uo=d(),z(ut.$$.fragment),Co=d(),Te=n("p"),qn=s("Una caratteristica particolarmente interessante di \u{1F917} Transformers \xE8 la sua abilit\xE0 di salvare un modello e ri-caricarlo sia come modello di PyTorch che di TensorFlow. I parametri "),va=n("code"),Nn=s("from_pt"),Xn=s(" o "),_a=n("code"),Sn=s("from_tf"),Bn=s(" possono convertire un modello da un framework all\u2019altro:"),Zo=d(),z(mt.$$.fragment),this.h()},l(e){const c=Gp('[data-svelte="svelte-1phssyn"]',document.head);a=r(c,"META",{name:!0,content:!0}),c.forEach(l),m=$(e),o=r(e,"H1",{class:!0});var xt=p(o);f=r(xt,"A",{id:!0,class:!0,href:!0});var za=p(f);h=r(za,"SPAN",{});var ya=p(h);y(b.$$.fragment,ya),ya.forEach(l),za.forEach(l),U=$(xt),I=r(xt,"SPAN",{});var Ma=p(I);E=i(Ma,"Quick tour"),Ma.forEach(l),xt.forEach(l),R=$(e),y(W.$$.fragment,e),F=$(e),V=r(e,"P",{});var Ae=p(V);N=i(Ae,"Entra in azione con \u{1F917} Transformers! Inizia utilizzando "),T=r(Ae,"CODE",{});var wa=p(T);G=i(wa,"pipeline()"),wa.forEach(l),g=i(Ae," per un\u2019inferenza veloce, carica un modello pre-allenato e un tokenizer con una "),Z=r(Ae,"A",{href:!0});var ja=p(Z);B=i(ja,"AutoClass"),ja.forEach(l),S=i(Ae," per risolvere i tuoi compiti legati a testo, immagini o audio."),Ae.forEach(l),Q=$(e),y(Y.$$.fragment,e),te=$(e),H=r(e,"H2",{class:!0});var Pt=p(H);x=r(Pt,"A",{id:!0,class:!0,href:!0});var ka=p(x);ee=r(ka,"SPAN",{});var Ea=p(ee);y(D.$$.fragment,Ea),Ea.forEach(l),ka.forEach(l),O=$(Pt),fe=r(Pt,"SPAN",{});var On=p(fe);oe=i(On,"Pipeline"),On.forEach(l),Pt.forEach(l),$e=$(e),se=r(e,"P",{});var xn=p(se);le=r(xn,"CODE",{});var Ln=p(le);ie=i(Ln,"pipeline()"),Ln.forEach(l),he=i(xn," \xE8 il modo pi\xF9 semplice per utilizzare un modello pre-allenato per un dato compito."),xn.forEach(l),J=$(e),y(A.$$.fragment,e),ne=$(e),v=r(e,"P",{});var Go=p(v);q=i(Go,"La "),pe=r(Go,"CODE",{});var Kn=p(pe);Ce=i(Kn,"pipeline()"),Kn.forEach(l),de=i(Go," supporta molti compiti comuni:"),Go.forEach(l),be=$(e),re=r(e,"P",{});var Pn=p(re);Ve=r(Pn,"STRONG",{});var er=p(Ve);ve=i(er,"Testo"),er.forEach(l),Yt=i(Pn,":"),Pn.forEach(l),dt=$(e),P=r(e,"UL",{});var ae=p(P);_l=r(ae,"LI",{});var tr=p(_l);Ko=i(tr,"Analisi del Sentimento (Sentiment Analysis, in inglese): classifica la polarit\xE0 di un testo dato."),tr.forEach(l),es=$(ae),zl=r(ae,"LI",{});var lr=p(zl);ts=i(lr,"Generazione del Testo (Text Generation, in inglese): genera del testo a partire da un dato input."),lr.forEach(l),ls=$(ae),yl=r(ae,"LI",{});var ar=p(yl);as=i(ar,"Riconoscimento di Entit\xE0 (Name Entity Recognition o NER, in inglese): etichetta ogni parola con l\u2019entit\xE0 che questa rappresenta (persona, data, luogo, ecc.)."),ar.forEach(l),os=$(ae),Ml=r(ae,"LI",{});var or=p(Ml);ss=i(or,"Rispondere a Domande (Question answering, in inglese): estrae la risposta da un contesto, dato del contesto e una domanda."),or.forEach(l),is=$(ae),wl=r(ae,"LI",{});var sr=p(wl);ns=i(sr,"Riempimento di Maschere (Fill-mask, in inglese): riempie gli spazi mancanti in un testo che ha parole mascherate."),sr.forEach(l),rs=$(ae),jl=r(ae,"LI",{});var ir=p(jl);ps=i(ir,"Riassumere (Summarization, in inglese): genera una sintesi di una lunga sequenza di testo o di un documento."),ir.forEach(l),cs=$(ae),kl=r(ae,"LI",{});var nr=p(kl);us=i(nr,"Traduzione (Translation, in inglese): traduce un testo in un\u2019altra lingua."),nr.forEach(l),ms=$(ae),El=r(ae,"LI",{});var rr=p(El);fs=i(rr,"Estrazione di Caratteristiche (Feature Extraction, in inglese): crea un tensore che rappresenta un testo."),rr.forEach(l),ae.forEach(l),Ta=$(e),$t=r(e,"P",{});var Yn=p($t);Tl=r(Yn,"STRONG",{});var pr=p(Tl);ds=i(pr,"Immagini"),pr.forEach(l),$s=i(Yn,":"),Yn.forEach(l),Ja=$(e),_e=r(e,"UL",{});var pl=p(_e);Jl=r(pl,"LI",{});var cr=p(Jl);hs=i(cr,"Classificazione di Immagini (Image Classification, in inglese): classifica un\u2019immagine."),cr.forEach(l),gs=$(pl),Ul=r(pl,"LI",{});var ur=p(Ul);bs=i(ur,"Segmentazione di Immagini (Image Segmentation, in inglese): classifica ogni pixel di un\u2019immagine."),ur.forEach(l),vs=$(pl),Cl=r(pl,"LI",{});var mr=p(Cl);_s=i(mr,"Rilevazione di Oggetti (Object Detection, in inglese): rileva oggetti all\u2019interno di un\u2019immagine."),mr.forEach(l),pl.forEach(l),Ua=$(e),ht=r(e,"P",{});var Qn=p(ht);Zl=r(Qn,"STRONG",{});var fr=p(Zl);zs=i(fr,"Audio"),fr.forEach(l),ys=i(Qn,":"),Qn.forEach(l),Ca=$(e),qe=r(e,"UL",{});var Io=p(qe);Rl=r(Io,"LI",{});var dr=p(Rl);Ms=i(dr,"Classificazione di Audio (Audio Classification, in inglese): assegna un\u2019etichetta ad un segmento di audio dato."),dr.forEach(l),ws=$(Io),Gl=r(Io,"LI",{});var $r=p(Gl);js=i($r,"Riconoscimento Vocale Automatico (Automatic Speech Recognition o ASR, in inglese): trascrive il contenuto di un audio dato in un testo."),$r.forEach(l),Io.forEach(l),Za=$(e),y(Ne.$$.fragment,e),Ra=$(e),Ze=r(e,"H3",{class:!0});var Wo=p(Ze);Xe=r(Wo,"A",{id:!0,class:!0,href:!0});var hr=p(Xe);Il=r(hr,"SPAN",{});var gr=p(Il);y(gt.$$.fragment,gr),gr.forEach(l),hr.forEach(l),ks=$(Wo),Wl=r(Wo,"SPAN",{});var br=p(Wl);Es=i(br,"Utilizzo della Pipeline"),br.forEach(l),Wo.forEach(l),Ga=$(e),Se=r(e,"P",{});var Fo=p(Se);Ts=i(Fo,"Nel seguente esempio, utilizzerai la "),Fl=r(Fo,"CODE",{});var vr=p(Fl);Js=i(vr,"pipeline()"),vr.forEach(l),Us=i(Fo," per l\u2019analisi del sentimento."),Fo.forEach(l),Ia=$(e),Qt=r(e,"P",{});var _r=p(Qt);Cs=i(_r,"Installa le seguenti dipendenze se non lo hai gi\xE0 fatto:"),_r.forEach(l),Wa=$(e),y(Be.$$.fragment,e),Fa=$(e),xe=r(e,"P",{});var Ao=p(xe);Zs=i(Ao,"Importa "),Al=r(Ao,"CODE",{});var zr=p(Al);Rs=i(zr,"pipeline()"),zr.forEach(l),Gs=i(Ao," e specifica il compito che vuoi completare:"),Ao.forEach(l),Aa=$(e),y(bt.$$.fragment,e),Va=$(e),ze=r(e,"P",{});var cl=p(ze);Is=i(cl,"La pipeline scarica e salva il "),vt=r(cl,"A",{href:!0,rel:!0});var yr=p(vt);Ws=i(yr,"modello pre-allenato"),yr.forEach(l),Fs=i(cl," e il tokenizer per l\u2019analisi del sentimento. Se non avessimo scelto un modello, la pipeline ne avrebbe scelto uno di default. Ora puoi utilizzare il "),Vl=r(cl,"CODE",{});var Mr=p(Vl);As=i(Mr,"classifier"),Mr.forEach(l),Vs=i(cl," sul tuo testo obiettivo:"),cl.forEach(l),qa=$(e),y(_t.$$.fragment,e),Na=$(e),Pe=r(e,"P",{});var Vo=p(Pe);qs=i(Vo,"Per pi\xF9 di una frase, passa una lista di frasi alla "),ql=r(Vo,"CODE",{});var wr=p(ql);Ns=i(wr,"pipeline()"),wr.forEach(l),Xs=i(Vo," la quale restituir\xE0 una lista di dizionari:"),Vo.forEach(l),Xa=$(e),y(zt.$$.fragment,e),Sa=$(e),ye=r(e,"P",{});var ul=p(ye);Ss=i(ul,"La "),Nl=r(ul,"CODE",{});var jr=p(Nl);Bs=i(jr,"pipeline()"),jr.forEach(l),xs=i(ul," pu\xF2 anche iterare su un dataset intero. Inizia installando la libreria "),yt=r(ul,"A",{href:!0,rel:!0});var kr=p(yt);Ps=i(kr,"\u{1F917} Datasets"),kr.forEach(l),Ys=i(ul,":"),ul.forEach(l),Ba=$(e),y(Mt.$$.fragment,e),xa=$(e),Ye=r(e,"P",{});var qo=p(Ye);Qs=i(qo,"Crea una "),Xl=r(qo,"CODE",{});var Er=p(Xl);Hs=i(Er,"pipeline()"),Er.forEach(l),Ds=i(qo," con il compito che vuoi risolvere e con il modello che vuoi utilizzare."),qo.forEach(l),Pa=$(e),y(wt.$$.fragment,e),Ya=$(e),Me=r(e,"P",{});var ml=p(Me);Os=i(ml,"Poi, carica un dataset (vedi \u{1F917} Datasets "),jt=r(ml,"A",{href:!0,rel:!0});var Tr=p(jt);Ls=i(Tr,"Quick Start"),Tr.forEach(l),Ks=i(ml," per maggiori dettagli) sul quale vuoi iterare. Per esempio, carichiamo il dataset "),kt=r(ml,"A",{href:!0,rel:!0});var Jr=p(kt);ei=i(Jr,"MInDS-14"),Jr.forEach(l),ti=i(ml,":"),ml.forEach(l),Qa=$(e),y(Et.$$.fragment,e),Ha=$(e),Qe=r(e,"P",{});var No=p(Qe);li=i(No,"Dobbiamo assicurarci che la frequenza di campionamento del set di dati corrisponda alla frequenza di campionamento con cui \xE8 stato addestrato "),Sl=r(No,"CODE",{});var Ur=p(Sl);ai=i(Ur,"radiogroup-crits/wav2vec2-xls-r-1b-italian-doc4lm-5gram"),Ur.forEach(l),oi=i(No,"."),No.forEach(l),Da=$(e),y(Tt.$$.fragment,e),Oa=$(e),Ht=r(e,"P",{});var Cr=p(Ht);si=i(Cr,`I file audio vengono caricati automaticamente e ri-campionati quando chiamiamo la colonna \u201Caudio\u201D.
Estraiamo i vettori delle forme d\u2019onda grezze delle prime 4 osservazioni e passiamoli come lista alla pipeline:`),Cr.forEach(l),La=$(e),y(Jt.$$.fragment,e),Ka=$(e),He=r(e,"P",{});var Xo=p(He);ii=i(Xo,"Per un dataset pi\xF9 grande dove gli input sono di dimensione maggiore (come nel parlato/audio o nella visione), dovrai passare un generatore al posto di una lista che carica tutti gli input in memoria. Guarda la "),Dt=r(Xo,"A",{href:!0});var Zr=p(Dt);ni=i(Zr,"documentazione della pipeline"),Zr.forEach(l),ri=i(Xo," per maggiori informazioni."),Xo.forEach(l),eo=$(e),Re=r(e,"H3",{class:!0});var So=p(Re);De=r(So,"A",{id:!0,class:!0,href:!0});var Rr=p(De);Bl=r(Rr,"SPAN",{});var Gr=p(Bl);y(Ut.$$.fragment,Gr),Gr.forEach(l),Rr.forEach(l),pi=$(So),xl=r(So,"SPAN",{});var Ir=p(xl);ci=i(Ir,"Utilizzare un altro modello e tokenizer nella pipeline"),Ir.forEach(l),So.forEach(l),to=$(e),ce=r(e,"P",{});var Je=p(ce);ui=i(Je,"La "),Pl=r(Je,"CODE",{});var Wr=p(Pl);mi=i(Wr,"pipeline()"),Wr.forEach(l),fi=i(Je," pu\xF2 ospitare qualsiasi modello del "),Ct=r(Je,"A",{href:!0,rel:!0});var Fr=p(Ct);di=i(Fr,"Model Hub"),Fr.forEach(l),$i=i(Je,", rendendo semplice l\u2019adattamento della "),Yl=r(Je,"CODE",{});var Ar=p(Yl);hi=i(Ar,"pipeline()"),Ar.forEach(l),gi=i(Je," per altri casi d\u2019uso. Per esempio, se si vuole un modello capace di trattare testo in francese, usa i tag presenti nel Model Hub in modo da filtrare per ottenere un modello appropriato. Il miglior risultato filtrato restituisce un modello multi-lingua "),Zt=r(Je,"A",{href:!0,rel:!0});var Vr=p(Zt);bi=i(Vr,"BERT model"),Vr.forEach(l),vi=i(Je," fine-tuned per l\u2019analisi del sentimento. Ottimo, utilizziamo questo modello!"),Je.forEach(l),lo=$(e),y(Rt.$$.fragment,e),ao=$(e),y(Oe.$$.fragment,e),oo=$(e),we=r(e,"P",{});var fl=p(we);_i=i(fl,"Poi puoi specificare il modello e il tokenizer nella "),Ql=r(fl,"CODE",{});var qr=p(Ql);zi=i(qr,"pipeline()"),qr.forEach(l),yi=i(fl,", e applicare il "),Hl=r(fl,"CODE",{});var Nr=p(Hl);Mi=i(Nr,"classifier"),Nr.forEach(l),wi=i(fl," sul tuo testo obiettivo:"),fl.forEach(l),so=$(e),y(Gt.$$.fragment,e),io=$(e),je=r(e,"P",{});var dl=p(je);ji=i(dl,"Se non riesci a trovare un modello per il tuo caso d\u2019uso, dovrai fare fine-tuning di un modello pre-allenato sui tuoi dati. Dai un\u2019occhiata al nostro tutorial "),Ot=r(dl,"A",{href:!0});var Xr=p(Ot);ki=i(Xr,"fine-tuning tutorial"),Xr.forEach(l),Ei=i(dl," per imparare come. Infine, dopo che hai completato il fine-tuning del tuo modello pre-allenato, considera per favore di condividerlo (vedi il tutorial "),Lt=r(dl,"A",{href:!0});var Sr=p(Lt);Ti=i(Sr,"qui"),Sr.forEach(l),Ji=i(dl,") con la comunit\xE0 sul Model Hub per democratizzare l\u2019NLP! \u{1F917}"),dl.forEach(l),no=$(e),Ge=r(e,"H2",{class:!0});var Bo=p(Ge);Le=r(Bo,"A",{id:!0,class:!0,href:!0});var Br=p(Le);Dl=r(Br,"SPAN",{});var xr=p(Dl);y(It.$$.fragment,xr),xr.forEach(l),Br.forEach(l),Ui=$(Bo),Ol=r(Bo,"SPAN",{});var Pr=p(Ol);Ci=i(Pr,"AutoClass"),Pr.forEach(l),Bo.forEach(l),ro=$(e),y(Wt.$$.fragment,e),po=$(e),L=r(e,"P",{});var ue=p(L);Zi=i(ue,"Al suo interno, le classi "),Ll=r(ue,"CODE",{});var Yr=p(Ll);Ri=i(Yr,"AutoModelForSequenceClassification"),Yr.forEach(l),Gi=i(ue," e "),Kl=r(ue,"CODE",{});var Qr=p(Kl);Ii=i(Qr,"AutoTokenizer"),Qr.forEach(l),Wi=i(ue," lavorano assieme per dare potere alla "),ea=r(ue,"CODE",{});var Hr=p(ea);Fi=i(Hr,"pipeline()"),Hr.forEach(l),Ai=i(ue,". Una "),Kt=r(ue,"A",{href:!0});var Dr=p(Kt);Vi=i(Dr,"AutoClass"),Dr.forEach(l),qi=i(ue," \xE8 una scorciatoia che automaticamente recupera l\u2019architettura di un modello pre-allenato a partire dal suo nome o path. Hai solo bisogno di selezionare la "),ta=r(ue,"CODE",{});var Or=p(ta);Ni=i(Or,"AutoClass"),Or.forEach(l),Xi=i(ue," appropriata per il tuo compito e il suo tokenizer associato con "),la=r(ue,"CODE",{});var Lr=p(la);Si=i(Lr,"AutoTokenizer"),Lr.forEach(l),Bi=i(ue,"."),ue.forEach(l),co=$(e),ke=r(e,"P",{});var $l=p(ke);xi=i($l,"Ritorniamo al nostro esempio e vediamo come puoi utilizzare la "),aa=r($l,"CODE",{});var Kr=p(aa);Pi=i(Kr,"AutoClass"),Kr.forEach(l),Yi=i($l," per replicare i risultati della "),oa=r($l,"CODE",{});var ep=p(oa);Qi=i(ep,"pipeline()"),ep.forEach(l),Hi=i($l,"."),$l.forEach(l),uo=$(e),Ie=r(e,"H3",{class:!0});var xo=p(Ie);Ke=r(xo,"A",{id:!0,class:!0,href:!0});var tp=p(Ke);sa=r(tp,"SPAN",{});var lp=p(sa);y(Ft.$$.fragment,lp),lp.forEach(l),tp.forEach(l),Di=$(xo),ia=r(xo,"SPAN",{});var ap=p(ia);Oi=i(ap,"AutoTokenizer"),ap.forEach(l),xo.forEach(l),mo=$(e),Ee=r(e,"P",{});var hl=p(Ee);Li=i(hl,"Un tokenizer \xE8 responsabile dell\u2019elaborazione del testo in modo da trasformarlo in un formato comprensibile dal modello. Per prima cosa, il tokenizer divider\xE0 il testo in parole chiamate "),na=r(hl,"EM",{});var op=p(na);Ki=i(op,"token"),op.forEach(l),en=i(hl,". Ci sono diverse regole che governano il processo di tokenizzazione, tra cui come dividere una parola e a quale livello (impara di pi\xF9 sulla tokenizzazione "),el=r(hl,"A",{href:!0});var sp=p(el);tn=i(sp,"qui"),sp.forEach(l),ln=i(hl,"). La cosa pi\xF9 importante da ricordare comunque \xE8 che hai bisogno di inizializzare il tokenizer con lo stesso nome del modello in modo da assicurarti che stai utilizzando le stesse regole di tokenizzazione con cui il modello \xE8 stato pre-allenato."),hl.forEach(l),fo=$(e),et=r(e,"P",{});var Po=p(et);an=i(Po,"Carica un tokenizer con "),ra=r(Po,"CODE",{});var ip=p(ra);on=i(ip,"AutoTokenizer"),ip.forEach(l),sn=i(Po,":"),Po.forEach(l),$o=$(e),y(At.$$.fragment,e),ho=$(e),tt=r(e,"P",{});var Yo=p(tt);nn=i(Yo,"Dopodich\xE9, il tokenizer converte i token in numeri in modo da costruire un tensore come input del modello. Questo \xE8 conosciuto come il "),pa=r(Yo,"EM",{});var np=p(pa);rn=i(np,"vocabolario"),np.forEach(l),pn=i(Yo," del modello."),Yo.forEach(l),go=$(e),tl=r(e,"P",{});var rp=p(tl);cn=i(rp,"Passa il tuo testo al tokenizer:"),rp.forEach(l),bo=$(e),y(Vt.$$.fragment,e),vo=$(e),ll=r(e,"P",{});var pp=p(ll);un=i(pp,"Il tokenizer restituir\xE0 un dizionario contenente:"),pp.forEach(l),_o=$(e),lt=r(e,"UL",{});var Qo=p(lt);al=r(Qo,"LI",{});var Hn=p(al);ol=r(Hn,"A",{href:!0});var cp=p(ol);mn=i(cp,"input_ids"),cp.forEach(l),fn=i(Hn,": rappresentazioni numeriche dei tuoi token."),Hn.forEach(l),dn=$(Qo),sl=r(Qo,"LI",{});var Dn=p(sl);il=r(Dn,"A",{href:!0});var up=p(il);$n=i(up,"attention_mask"),up.forEach(l),hn=i(Dn,": indica quali token devono essere presi in considerazione."),Dn.forEach(l),Qo.forEach(l),zo=$(e),at=r(e,"P",{});var Ho=p(at);gn=i(Ho,"Come con la "),ca=r(Ho,"CODE",{});var mp=p(ca);bn=i(mp,"pipeline()"),mp.forEach(l),vn=i(Ho,", il tokenizer accetter\xE0 una lista di input. In pi\xF9, il tokenizer pu\xF2 anche completare (pad, in inglese) e troncare il testo in modo da restituire un lotto (batch, in inglese) di lunghezza uniforme:"),Ho.forEach(l),yo=$(e),y(ot.$$.fragment,e),Mo=$(e),st=r(e,"P",{});var Do=p(st);_n=i(Do,"Leggi il tutorial sul "),nl=r(Do,"A",{href:!0});var fp=p(nl);zn=i(fp,"preprocessing"),fp.forEach(l),yn=i(Do," per maggiori dettagli sulla tokenizzazione."),Do.forEach(l),wo=$(e),We=r(e,"H3",{class:!0});var Oo=p(We);it=r(Oo,"A",{id:!0,class:!0,href:!0});var dp=p(it);ua=r(dp,"SPAN",{});var $p=p(ua);y(qt.$$.fragment,$p),$p.forEach(l),dp.forEach(l),Mn=$(Oo),ma=r(Oo,"SPAN",{});var hp=p(ma);wn=i(hp,"AutoModel"),hp.forEach(l),Oo.forEach(l),jo=$(e),y(nt.$$.fragment,e),ko=$(e),y(rt.$$.fragment,e),Eo=$(e),K=r(e,"P",{});var me=p(K);jn=i(me,"I modelli sono "),Nt=r(me,"A",{href:!0,rel:!0});var gp=p(Nt);fa=r(gp,"CODE",{});var bp=p(fa);kn=i(bp,"torch.nn.Module"),bp.forEach(l),gp.forEach(l),En=i(me," o "),Xt=r(me,"A",{href:!0,rel:!0});var vp=p(Xt);da=r(vp,"CODE",{});var _p=p(da);Tn=i(_p,"tf.keras.Model"),_p.forEach(l),vp.forEach(l),Jn=i(me," standard cos\xEC puoi utilizzarli all\u2019interno del tuo training loop usuale. Tuttavia, per rendere le cose pi\xF9 semplici, \u{1F917} Transformers fornisce una classe "),$a=r(me,"CODE",{});var zp=p($a);Un=i(zp,"Trainer"),zp.forEach(l),Cn=i(me," per PyTorch che aggiunge delle funzionalit\xE0 per l\u2019allenamento distribuito, precisione mista, e altro ancora. Per TensorFlow, puoi utilizzare il metodo "),ha=r(me,"CODE",{});var yp=p(ha);Zn=i(yp,"fit"),yp.forEach(l),Rn=i(me," di "),St=r(me,"A",{href:!0,rel:!0});var Mp=p(St);Gn=i(Mp,"Keras"),Mp.forEach(l),In=i(me,". Fai riferimento al "),rl=r(me,"A",{href:!0});var wp=p(rl);Wn=i(wp,"tutorial per il training"),wp.forEach(l),Fn=i(me," per maggiori dettagli."),me.forEach(l),To=$(e),y(pt.$$.fragment,e),Jo=$(e),Fe=r(e,"H3",{class:!0});var Lo=p(Fe);ct=r(Lo,"A",{id:!0,class:!0,href:!0});var jp=p(ct);ga=r(jp,"SPAN",{});var kp=p(ga);y(Bt.$$.fragment,kp),kp.forEach(l),jp.forEach(l),An=$(Lo),ba=r(Lo,"SPAN",{});var Ep=p(ba);Vn=i(Ep,"Salva un modello"),Ep.forEach(l),Lo.forEach(l),Uo=$(e),y(ut.$$.fragment,e),Co=$(e),Te=r(e,"P",{});var gl=p(Te);qn=i(gl,"Una caratteristica particolarmente interessante di \u{1F917} Transformers \xE8 la sua abilit\xE0 di salvare un modello e ri-caricarlo sia come modello di PyTorch che di TensorFlow. I parametri "),va=r(gl,"CODE",{});var Tp=p(va);Nn=i(Tp,"from_pt"),Tp.forEach(l),Xn=i(gl," o "),_a=r(gl,"CODE",{});var Jp=p(_a);Sn=i(Jp,"from_tf"),Jp.forEach(l),Bn=i(gl," possono convertire un modello da un framework all\u2019altro:"),gl.forEach(l),Zo=$(e),y(mt.$$.fragment,e),this.h()},h(){_(a,"name","hf:doc:metadata"),_(a,"content",JSON.stringify(dc)),_(f,"id","quick-tour"),_(f,"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"),_(f,"href","#quick-tour"),_(o,"class","relative group"),_(Z,"href","./model_doc/auto"),_(x,"id","pipeline"),_(x,"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"),_(x,"href","#pipeline"),_(H,"class","relative group"),_(Xe,"id","utilizzo-della-pipeline"),_(Xe,"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"),_(Xe,"href","#utilizzo-della-pipeline"),_(Ze,"class","relative group"),_(vt,"href","https://huggingface.co/MilaNLProc/feel-it-italian-sentiment"),_(vt,"rel","nofollow"),_(yt,"href","https://huggingface.co/docs/datasets/"),_(yt,"rel","nofollow"),_(jt,"href","https://huggingface.co/docs/datasets/quickstart.html"),_(jt,"rel","nofollow"),_(kt,"href","https://huggingface.co/datasets/PolyAI/minds14"),_(kt,"rel","nofollow"),_(Dt,"href","./main_classes/pipelines"),_(De,"id","utilizzare-un-altro-modello-e-tokenizer-nella-pipeline"),_(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"),_(De,"href","#utilizzare-un-altro-modello-e-tokenizer-nella-pipeline"),_(Re,"class","relative group"),_(Ct,"href","https://huggingface.co/models"),_(Ct,"rel","nofollow"),_(Zt,"href","https://huggingface.co/nlptown/bert-base-multilingual-uncased-sentiment"),_(Zt,"rel","nofollow"),_(Ot,"href","./training"),_(Lt,"href","./model_sharing"),_(Le,"id","autoclass"),_(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"),_(Le,"href","#autoclass"),_(Ge,"class","relative group"),_(Kt,"href","./model_doc/auto"),_(Ke,"id","autotokenizer"),_(Ke,"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"),_(Ke,"href","#autotokenizer"),_(Ie,"class","relative group"),_(el,"href","./tokenizer_summary"),_(ol,"href","./glossary#input-ids"),_(il,"href",".glossary#attention-mask"),_(nl,"href","./preprocessing"),_(it,"id","automodel"),_(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"),_(it,"href","#automodel"),_(We,"class","relative group"),_(Nt,"href","https://pytorch.org/docs/stable/nn.html#torch.nn.Module"),_(Nt,"rel","nofollow"),_(Xt,"href","https://www.tensorflow.org/api_docs/python/tf/keras/Model"),_(Xt,"rel","nofollow"),_(St,"href","https://keras.io/"),_(St,"rel","nofollow"),_(rl,"href","./training"),_(ct,"id","salva-un-modello"),_(ct,"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"),_(ct,"href","#salva-un-modello"),_(Fe,"class","relative group")},m(e,c){t(document.head,a),u(e,m,c),u(e,o,c),t(o,f),t(f,h),M(b,h,null),t(o,U),t(o,I),t(I,E),u(e,R,c),M(W,e,c),u(e,F,c),u(e,V,c),t(V,N),t(V,T),t(T,G),t(V,g),t(V,Z),t(Z,B),t(V,S),u(e,Q,c),M(Y,e,c),u(e,te,c),u(e,H,c),t(H,x),t(x,ee),M(D,ee,null),t(H,O),t(H,fe),t(fe,oe),u(e,$e,c),u(e,se,c),t(se,le),t(le,ie),t(se,he),u(e,J,c),M(A,e,c),u(e,ne,c),u(e,v,c),t(v,q),t(v,pe),t(pe,Ce),t(v,de),u(e,be,c),u(e,re,c),t(re,Ve),t(Ve,ve),t(re,Yt),u(e,dt,c),u(e,P,c),t(P,_l),t(_l,Ko),t(P,es),t(P,zl),t(zl,ts),t(P,ls),t(P,yl),t(yl,as),t(P,os),t(P,Ml),t(Ml,ss),t(P,is),t(P,wl),t(wl,ns),t(P,rs),t(P,jl),t(jl,ps),t(P,cs),t(P,kl),t(kl,us),t(P,ms),t(P,El),t(El,fs),u(e,Ta,c),u(e,$t,c),t($t,Tl),t(Tl,ds),t($t,$s),u(e,Ja,c),u(e,_e,c),t(_e,Jl),t(Jl,hs),t(_e,gs),t(_e,Ul),t(Ul,bs),t(_e,vs),t(_e,Cl),t(Cl,_s),u(e,Ua,c),u(e,ht,c),t(ht,Zl),t(Zl,zs),t(ht,ys),u(e,Ca,c),u(e,qe,c),t(qe,Rl),t(Rl,Ms),t(qe,ws),t(qe,Gl),t(Gl,js),u(e,Za,c),M(Ne,e,c),u(e,Ra,c),u(e,Ze,c),t(Ze,Xe),t(Xe,Il),M(gt,Il,null),t(Ze,ks),t(Ze,Wl),t(Wl,Es),u(e,Ga,c),u(e,Se,c),t(Se,Ts),t(Se,Fl),t(Fl,Js),t(Se,Us),u(e,Ia,c),u(e,Qt,c),t(Qt,Cs),u(e,Wa,c),M(Be,e,c),u(e,Fa,c),u(e,xe,c),t(xe,Zs),t(xe,Al),t(Al,Rs),t(xe,Gs),u(e,Aa,c),M(bt,e,c),u(e,Va,c),u(e,ze,c),t(ze,Is),t(ze,vt),t(vt,Ws),t(ze,Fs),t(ze,Vl),t(Vl,As),t(ze,Vs),u(e,qa,c),M(_t,e,c),u(e,Na,c),u(e,Pe,c),t(Pe,qs),t(Pe,ql),t(ql,Ns),t(Pe,Xs),u(e,Xa,c),M(zt,e,c),u(e,Sa,c),u(e,ye,c),t(ye,Ss),t(ye,Nl),t(Nl,Bs),t(ye,xs),t(ye,yt),t(yt,Ps),t(ye,Ys),u(e,Ba,c),M(Mt,e,c),u(e,xa,c),u(e,Ye,c),t(Ye,Qs),t(Ye,Xl),t(Xl,Hs),t(Ye,Ds),u(e,Pa,c),M(wt,e,c),u(e,Ya,c),u(e,Me,c),t(Me,Os),t(Me,jt),t(jt,Ls),t(Me,Ks),t(Me,kt),t(kt,ei),t(Me,ti),u(e,Qa,c),M(Et,e,c),u(e,Ha,c),u(e,Qe,c),t(Qe,li),t(Qe,Sl),t(Sl,ai),t(Qe,oi),u(e,Da,c),M(Tt,e,c),u(e,Oa,c),u(e,Ht,c),t(Ht,si),u(e,La,c),M(Jt,e,c),u(e,Ka,c),u(e,He,c),t(He,ii),t(He,Dt),t(Dt,ni),t(He,ri),u(e,eo,c),u(e,Re,c),t(Re,De),t(De,Bl),M(Ut,Bl,null),t(Re,pi),t(Re,xl),t(xl,ci),u(e,to,c),u(e,ce,c),t(ce,ui),t(ce,Pl),t(Pl,mi),t(ce,fi),t(ce,Ct),t(Ct,di),t(ce,$i),t(ce,Yl),t(Yl,hi),t(ce,gi),t(ce,Zt),t(Zt,bi),t(ce,vi),u(e,lo,c),M(Rt,e,c),u(e,ao,c),M(Oe,e,c),u(e,oo,c),u(e,we,c),t(we,_i),t(we,Ql),t(Ql,zi),t(we,yi),t(we,Hl),t(Hl,Mi),t(we,wi),u(e,so,c),M(Gt,e,c),u(e,io,c),u(e,je,c),t(je,ji),t(je,Ot),t(Ot,ki),t(je,Ei),t(je,Lt),t(Lt,Ti),t(je,Ji),u(e,no,c),u(e,Ge,c),t(Ge,Le),t(Le,Dl),M(It,Dl,null),t(Ge,Ui),t(Ge,Ol),t(Ol,Ci),u(e,ro,c),M(Wt,e,c),u(e,po,c),u(e,L,c),t(L,Zi),t(L,Ll),t(Ll,Ri),t(L,Gi),t(L,Kl),t(Kl,Ii),t(L,Wi),t(L,ea),t(ea,Fi),t(L,Ai),t(L,Kt),t(Kt,Vi),t(L,qi),t(L,ta),t(ta,Ni),t(L,Xi),t(L,la),t(la,Si),t(L,Bi),u(e,co,c),u(e,ke,c),t(ke,xi),t(ke,aa),t(aa,Pi),t(ke,Yi),t(ke,oa),t(oa,Qi),t(ke,Hi),u(e,uo,c),u(e,Ie,c),t(Ie,Ke),t(Ke,sa),M(Ft,sa,null),t(Ie,Di),t(Ie,ia),t(ia,Oi),u(e,mo,c),u(e,Ee,c),t(Ee,Li),t(Ee,na),t(na,Ki),t(Ee,en),t(Ee,el),t(el,tn),t(Ee,ln),u(e,fo,c),u(e,et,c),t(et,an),t(et,ra),t(ra,on),t(et,sn),u(e,$o,c),M(At,e,c),u(e,ho,c),u(e,tt,c),t(tt,nn),t(tt,pa),t(pa,rn),t(tt,pn),u(e,go,c),u(e,tl,c),t(tl,cn),u(e,bo,c),M(Vt,e,c),u(e,vo,c),u(e,ll,c),t(ll,un),u(e,_o,c),u(e,lt,c),t(lt,al),t(al,ol),t(ol,mn),t(al,fn),t(lt,dn),t(lt,sl),t(sl,il),t(il,$n),t(sl,hn),u(e,zo,c),u(e,at,c),t(at,gn),t(at,ca),t(ca,bn),t(at,vn),u(e,yo,c),M(ot,e,c),u(e,Mo,c),u(e,st,c),t(st,_n),t(st,nl),t(nl,zn),t(st,yn),u(e,wo,c),u(e,We,c),t(We,it),t(it,ua),M(qt,ua,null),t(We,Mn),t(We,ma),t(ma,wn),u(e,jo,c),M(nt,e,c),u(e,ko,c),M(rt,e,c),u(e,Eo,c),u(e,K,c),t(K,jn),t(K,Nt),t(Nt,fa),t(fa,kn),t(K,En),t(K,Xt),t(Xt,da),t(da,Tn),t(K,Jn),t(K,$a),t($a,Un),t(K,Cn),t(K,ha),t(ha,Zn),t(K,Rn),t(K,St),t(St,Gn),t(K,In),t(K,rl),t(rl,Wn),t(K,Fn),u(e,To,c),M(pt,e,c),u(e,Jo,c),u(e,Fe,c),t(Fe,ct),t(ct,ga),M(Bt,ga,null),t(Fe,An),t(Fe,ba),t(ba,Vn),u(e,Uo,c),M(ut,e,c),u(e,Co,c),u(e,Te,c),t(Te,qn),t(Te,va),t(va,Nn),t(Te,Xn),t(Te,_a),t(_a,Sn),t(Te,Bn),u(e,Zo,c),M(mt,e,c),Ro=!0},p(e,[c]){const xt={};c&2&&(xt.$$scope={dirty:c,ctx:e}),Y.$set(xt);const za={};c&2&&(za.$$scope={dirty:c,ctx:e}),Ne.$set(za);const ya={};c&2&&(ya.$$scope={dirty:c,ctx:e}),Be.$set(ya);const Ma={};c&2&&(Ma.$$scope={dirty:c,ctx:e}),Oe.$set(Ma);const Ae={};c&2&&(Ae.$$scope={dirty:c,ctx:e}),ot.$set(Ae);const wa={};c&2&&(wa.$$scope={dirty:c,ctx:e}),nt.$set(wa);const ja={};c&2&&(ja.$$scope={dirty:c,ctx:e}),rt.$set(ja);const Pt={};c&2&&(Pt.$$scope={dirty:c,ctx:e}),pt.$set(Pt);const ka={};c&2&&(ka.$$scope={dirty:c,ctx:e}),ut.$set(ka);const Ea={};c&2&&(Ea.$$scope={dirty:c,ctx:e}),mt.$set(Ea)},i(e){Ro||(w(b.$$.fragment,e),w(W.$$.fragment,e),w(Y.$$.fragment,e),w(D.$$.fragment,e),w(A.$$.fragment,e),w(Ne.$$.fragment,e),w(gt.$$.fragment,e),w(Be.$$.fragment,e),w(bt.$$.fragment,e),w(_t.$$.fragment,e),w(zt.$$.fragment,e),w(Mt.$$.fragment,e),w(wt.$$.fragment,e),w(Et.$$.fragment,e),w(Tt.$$.fragment,e),w(Jt.$$.fragment,e),w(Ut.$$.fragment,e),w(Rt.$$.fragment,e),w(Oe.$$.fragment,e),w(Gt.$$.fragment,e),w(It.$$.fragment,e),w(Wt.$$.fragment,e),w(Ft.$$.fragment,e),w(At.$$.fragment,e),w(Vt.$$.fragment,e),w(ot.$$.fragment,e),w(qt.$$.fragment,e),w(nt.$$.fragment,e),w(rt.$$.fragment,e),w(pt.$$.fragment,e),w(Bt.$$.fragment,e),w(ut.$$.fragment,e),w(mt.$$.fragment,e),Ro=!0)},o(e){j(b.$$.fragment,e),j(W.$$.fragment,e),j(Y.$$.fragment,e),j(D.$$.fragment,e),j(A.$$.fragment,e),j(Ne.$$.fragment,e),j(gt.$$.fragment,e),j(Be.$$.fragment,e),j(bt.$$.fragment,e),j(_t.$$.fragment,e),j(zt.$$.fragment,e),j(Mt.$$.fragment,e),j(wt.$$.fragment,e),j(Et.$$.fragment,e),j(Tt.$$.fragment,e),j(Jt.$$.fragment,e),j(Ut.$$.fragment,e),j(Rt.$$.fragment,e),j(Oe.$$.fragment,e),j(Gt.$$.fragment,e),j(It.$$.fragment,e),j(Wt.$$.fragment,e),j(Ft.$$.fragment,e),j(At.$$.fragment,e),j(Vt.$$.fragment,e),j(ot.$$.fragment,e),j(qt.$$.fragment,e),j(nt.$$.fragment,e),j(rt.$$.fragment,e),j(pt.$$.fragment,e),j(Bt.$$.fragment,e),j(ut.$$.fragment,e),j(mt.$$.fragment,e),Ro=!1},d(e){l(a),e&&l(m),e&&l(o),k(b),e&&l(R),k(W,e),e&&l(F),e&&l(V),e&&l(Q),k(Y,e),e&&l(te),e&&l(H),k(D),e&&l($e),e&&l(se),e&&l(J),k(A,e),e&&l(ne),e&&l(v),e&&l(be),e&&l(re),e&&l(dt),e&&l(P),e&&l(Ta),e&&l($t),e&&l(Ja),e&&l(_e),e&&l(Ua),e&&l(ht),e&&l(Ca),e&&l(qe),e&&l(Za),k(Ne,e),e&&l(Ra),e&&l(Ze),k(gt),e&&l(Ga),e&&l(Se),e&&l(Ia),e&&l(Qt),e&&l(Wa),k(Be,e),e&&l(Fa),e&&l(xe),e&&l(Aa),k(bt,e),e&&l(Va),e&&l(ze),e&&l(qa),k(_t,e),e&&l(Na),e&&l(Pe),e&&l(Xa),k(zt,e),e&&l(Sa),e&&l(ye),e&&l(Ba),k(Mt,e),e&&l(xa),e&&l(Ye),e&&l(Pa),k(wt,e),e&&l(Ya),e&&l(Me),e&&l(Qa),k(Et,e),e&&l(Ha),e&&l(Qe),e&&l(Da),k(Tt,e),e&&l(Oa),e&&l(Ht),e&&l(La),k(Jt,e),e&&l(Ka),e&&l(He),e&&l(eo),e&&l(Re),k(Ut),e&&l(to),e&&l(ce),e&&l(lo),k(Rt,e),e&&l(ao),k(Oe,e),e&&l(oo),e&&l(we),e&&l(so),k(Gt,e),e&&l(io),e&&l(je),e&&l(no),e&&l(Ge),k(It),e&&l(ro),k(Wt,e),e&&l(po),e&&l(L),e&&l(co),e&&l(ke),e&&l(uo),e&&l(Ie),k(Ft),e&&l(mo),e&&l(Ee),e&&l(fo),e&&l(et),e&&l($o),k(At,e),e&&l(ho),e&&l(tt),e&&l(go),e&&l(tl),e&&l(bo),k(Vt,e),e&&l(vo),e&&l(ll),e&&l(_o),e&&l(lt),e&&l(zo),e&&l(at),e&&l(yo),k(ot,e),e&&l(Mo),e&&l(st),e&&l(wo),e&&l(We),k(qt),e&&l(jo),k(nt,e),e&&l(ko),k(rt,e),e&&l(Eo),e&&l(K),e&&l(To),k(pt,e),e&&l(Jo),e&&l(Fe),k(Bt),e&&l(Uo),k(ut,e),e&&l(Co),e&&l(Te),e&&l(Zo),k(mt,e)}}}const dc={local:"quick-tour",sections:[{local:"pipeline",sections:[{local:"utilizzo-della-pipeline",title:"Utilizzo della Pipeline"},{local:"utilizzare-un-altro-modello-e-tokenizer-nella-pipeline",title:"Utilizzare un altro modello e tokenizer nella pipeline"}],title:"Pipeline"},{local:"autoclass",sections:[{local:"autotokenizer",title:"AutoTokenizer"},{local:"automodel",title:"AutoModel"},{local:"salva-un-modello",title:"Salva un modello"}],title:"AutoClass"}],title:"Quick tour"};function $c(C){return Ip(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class wc extends Cp{constructor(a){super();Zp(this,a,$c,fc,Rp,{})}}export{wc as default,dc as metadata};
