import{S as ma,i as ha,s as va,e as i,k as d,w as x,t as p,l as fa,M as $a,c as r,d as a,m as u,x as w,a as n,h as f,b as l,G as t,g as c,y as z,o as g,p as ga,q as b,B as E,v as ba,n as _a}from"../../chunks/vendor-hf-doc-builder.js";import{I as xe}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{Q as we}from"../../chunks/Question-hf-doc-builder.js";import{F as xa}from"../../chunks/FrameworkSwitchCourse-hf-doc-builder.js";function wa(Le){let $,q,k,y,j,_,me,U,ze,he,ue,Z,ne,G,C,N,T,X,se,le,ee,I,ge,L,H,pe,P,F,ae,Q,V,A,te,O,B,ve,M,ce,J;return y=new xe({}),C=new we({props:{choices:[{text:"Nulla, ma viene mostrato un avvertimento",explain:"L'avvertimento non \xE8 l'unica cosa!"},{text:"La testa del modello pre-addestrato viene scartata e una nuova testa, appropriata per il compito, viene inserita al suo posto",explain:"Corretto. Ad esempio, quando abbiamo usato <code>TFAutoModelForSequenceClassification</code> con <code>bert-base-uncased</code>, abbiamo ottenuto un avvertimento mentre il modello veniva istanziato. La testa pre-addestrata non viene usata per il compito di classificazione delle sequenze, ma viene scartata e una nuova testa viene istanziata con pesi casuali.",correct:!0},{text:"La testa del modello pre-addestrato viene scartata",explain:"Deve succedere anche qualcos'altro. Prova ancora!"},{text:"Nulla, dato che il modello pu\xF2 comunque essere affinato per un compito differente.",explain:"La testa del modello pre-addestrato non era stata addestrata per risolvere questo compito, quindi dovremmo scartarla!"}]}}),le=new xe({}),F=new we({props:{choices:[{text:"I modelli funzionano automaticamente su una TPU.",explain:"Quasi! Sono richiesti alcuni cambiamenti. Ad esempio, bisogna eseguire tutto all'interno di uno scope <code>TPUStrategy</code>, incluso l'inizializzazione del modello"},{text:"Si possono sfruttare metodi gi\xE0 esistenti quali <code>compile()</code>, <code>fit()</code>, e <code>predict()</code>.",explain:"Correto! Una volta ottenuti i dati, l'addestramento richiede molto poco sforzo.",correct:!0},{text:"Puoi imparare Keras in aggiunta ai transformers.",explain:"Corretto, anche se cercavamo qualcosa in p\xF9 :)",correct:!0},{text:"Si possono calcolare facilmente delle metriche relative al dataset",explain:"Keras \xE8 d'aiuto nell'addestramento e valutazione del modello, non nel calcolare metriche relative al dataset."}]}}),te=new xe({}),ce=new we({props:{choices:[{text:"Creando una sottoclasse di <code>tf.keras.metrics.Metric</code>.",explain:"Ottimo!",correct:!0},{text:"Usando l'API funzionale di Keras",explain:"Prova ancora!"},{text:"Utilizzando una funzione con segnatura <code>metric_fn(y_true, y_pred)</code>.",explain:"Corretto!",correct:!0},{text:"Chiedendo a Google",explain:"Non \xE8 la risposta che cercavamo, ma dovrebbe comunque aiutarvi a risolvere il problema.",correct:!0}]}}),{c(){$=i("h3"),q=i("a"),k=i("span"),x(y.$$.fragment),j=d(),_=i("span"),me=p("4. Cosa succede quando una classe di tipo "),U=i("code"),ze=p("TFAutoModelForXxx"),he=p(" viene istanziata con un modello di linguaggio pre-addestrato (come "),ue=i("code"),Z=p("bert-base-uncased"),ne=p(") che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?"),G=d(),x(C.$$.fragment),N=d(),T=i("h3"),X=i("a"),se=i("span"),x(le.$$.fragment),ee=d(),I=i("span"),ge=p("5. I modelli Tensorflow da "),L=i("code"),H=p("transformers"),pe=p(" sono gi\xE0 dei modelli Keras. Quali benefici offre ci\xF2?"),P=d(),x(F.$$.fragment),ae=d(),Q=i("h3"),V=i("a"),A=i("span"),x(te.$$.fragment),O=d(),B=i("span"),ve=p("6. Come si definisce una metrica personalizzata (custom metric)?"),M=d(),x(ce.$$.fragment),this.h()},l(s){$=r(s,"H3",{class:!0});var v=n($);q=r(v,"A",{id:!0,class:!0,href:!0});var Ee=n(q);k=r(Ee,"SPAN",{});var oe=n(k);w(y.$$.fragment,oe),oe.forEach(a),Ee.forEach(a),j=u(v),_=r(v,"SPAN",{});var D=n(_);me=f(D,"4. Cosa succede quando una classe di tipo "),U=r(D,"CODE",{});var be=n(U);ze=f(be,"TFAutoModelForXxx"),be.forEach(a),he=f(D," viene istanziata con un modello di linguaggio pre-addestrato (come "),ue=r(D,"CODE",{});var fe=n(ue);Z=f(fe,"bert-base-uncased"),fe.forEach(a),ne=f(D,") che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?"),D.forEach(a),v.forEach(a),G=u(s),w(C.$$.fragment,s),N=u(s),T=r(s,"H3",{class:!0});var $e=n(T);X=r($e,"A",{id:!0,class:!0,href:!0});var ie=n(X);se=r(ie,"SPAN",{});var qe=n(se);w(le.$$.fragment,qe),qe.forEach(a),ie.forEach(a),ee=u($e),I=r($e,"SPAN",{});var R=n(I);ge=f(R,"5. I modelli Tensorflow da "),L=r(R,"CODE",{});var K=n(L);H=f(K,"transformers"),K.forEach(a),pe=f(R," sono gi\xE0 dei modelli Keras. Quali benefici offre ci\xF2?"),R.forEach(a),$e.forEach(a),P=u(s),w(F.$$.fragment,s),ae=u(s),Q=r(s,"H3",{class:!0});var de=n(Q);V=r(de,"A",{id:!0,class:!0,href:!0});var S=n(V);A=r(S,"SPAN",{});var W=n(A);w(te.$$.fragment,W),W.forEach(a),S.forEach(a),O=u(de),B=r(de,"SPAN",{});var Y=n(B);ve=f(Y,"6. Come si definisce una metrica personalizzata (custom metric)?"),Y.forEach(a),de.forEach(a),M=u(s),w(ce.$$.fragment,s),this.h()},h(){l(q,"id","4.-cosa-succede-quando-una-classe-di-tipo-<code>tfautomodelforxxx</code>-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-(come-<code>bert-base-uncased</code>)-che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato?"),l(q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(q,"href","#4.-cosa-succede-quando-una-classe-di-tipo-<code>tfautomodelforxxx</code>-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-(come-<code>bert-base-uncased</code>)-che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato?"),l($,"class","relative group"),l(X,"id","5.-i-modelli-tensorflow-da-<code>transformers</code>-sono-gi\xE0-dei-modelli-keras.-quali-benefici-offre-ci\xF2?"),l(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"),l(X,"href","#5.-i-modelli-tensorflow-da-<code>transformers</code>-sono-gi\xE0-dei-modelli-keras.-quali-benefici-offre-ci\xF2?"),l(T,"class","relative group"),l(V,"id","6.-come-si-definisce-una-metrica-personalizzata-(custom-metric)?"),l(V,"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"),l(V,"href","#6.-come-si-definisce-una-metrica-personalizzata-(custom-metric)?"),l(Q,"class","relative group")},m(s,v){c(s,$,v),t($,q),t(q,k),z(y,k,null),t($,j),t($,_),t(_,me),t(_,U),t(U,ze),t(_,he),t(_,ue),t(ue,Z),t(_,ne),c(s,G,v),z(C,s,v),c(s,N,v),c(s,T,v),t(T,X),t(X,se),z(le,se,null),t(T,ee),t(T,I),t(I,ge),t(I,L),t(L,H),t(I,pe),c(s,P,v),z(F,s,v),c(s,ae,v),c(s,Q,v),t(Q,V),t(V,A),z(te,A,null),t(Q,O),t(Q,B),t(B,ve),c(s,M,v),z(ce,s,v),J=!0},i(s){J||(b(y.$$.fragment,s),b(C.$$.fragment,s),b(le.$$.fragment,s),b(F.$$.fragment,s),b(te.$$.fragment,s),b(ce.$$.fragment,s),J=!0)},o(s){g(y.$$.fragment,s),g(C.$$.fragment,s),g(le.$$.fragment,s),g(F.$$.fragment,s),g(te.$$.fragment,s),g(ce.$$.fragment,s),J=!1},d(s){s&&a($),E(y),s&&a(G),E(C,s),s&&a(N),s&&a(T),E(le),s&&a(P),E(F,s),s&&a(ae),s&&a(Q),E(te),s&&a(M),E(ce,s)}}}function za(Le){let $,q,k,y,j,_,me,U,ze,he,ue,Z,ne,G,C,N,T,X,se,le,ee,I,ge,L,H,pe,P,F,ae,Q,V,A,te,O,B,ve,M,ce,J,s,v,Ee,oe,D,be,fe,$e,ie,qe,R,K,de,S,W,Y,Ne,Te,ke,Ie,o,m,_e,re,Ae,Qe,ye,Pe,De,Oe,Ce,Se,He;return y=new xe({}),Z=new we({props:{choices:[{text:"I risultati della funzione vengono conservati, cos\xEC la ri-esecuzione del codice sar\xE0 rapidissima",explain:"Questo \xE8 sicuramente uno dei benefici di questo metodo! Ma non \xE8 l'unico...",correct:!0},{text:"\xC8 possibile applicare multiprocessing per un'esecuzione pi\xF9 rapida rispetto all'applicazione seriale ad ogni elemento del dataset",explain:"Questo \xE8 sicuramente uno dei benefici di questo metodo! Ma non \xE8 l'unico...",correct:!0},{text:"Non carica l'intero dataset in memoria, salvando i risultati appena ogni elemento \xE8 stato processato.",explain:"Questo \xE8 sicuramente uno dei benefici di questo metodo! Ma non \xE8 l'unico...",correct:!0}]}}),T=new xe({}),I=new we({props:{choices:[{text:"\xC8 quando si applica in ogni batch il padding fino alla lunghezza massima dell'intero dataset",explain:"Riguarda il padding per ogni batch, ma non fino alla lunghezza massima dell'intero dataset."},{text:"\xC8 quando si applica in ogni batch il padding fino alla lunghezza massima delle frasi in quella batch",explain:'Corretto! la parte "dinamica" viene dal fatto che la dimensione per ogni batch viene determinata al momento della creazione, e quindi le batch potrebbero avere dimensioni differenti.',correct:!0},{text:"\xC8 quando si applica il padding agli input in modo che ogni frase abbia lo stesso numero di token della frase precedente nel dataset.",explain:"Sbagliato. In pi\xF9 non avrebbe senso considerare l'ordine del dataset dato che lo rimischiamo durante l'apprendimento."}]}}),P=new xe({}),A=new we({props:{choices:[{text:"Di assicurarsi che tutte le sequenze nel dataset abbiano la stessa lunghezza.",explain:"Una funzione di raccolta gestisce solo batch individuali, non l'intero dataset. In pi\xF9, si sta parlando di funzioni di raccolta in generale, e non specificatamente di <code>DataCollatorWithPadding</code>."},{text:"Di raccogliere tutti i campioni in una batch.",explain:"Corretto! Puoi passare la funzione di raccolta come argomento di un <code>DataLoader</code>. Noi abbiamo usato la funzione <code>DataCollatorWithPadding</code>, che applica padding a tutti gli elementi di una batch affinch\xE9 abbiano la stessa lunghezza.",correct:!0},{text:"Di preprocessare l'intero dataset",explain:"Quella sarebbe una funzione di preprocessing, non di raccolta."},{text:"Di troncare le sequenze nel dataset.",explain:"Una funzione di raccolta gestisce solo batch individuali, non l'intero dataset. Se siete interessati al troncamento, potete usare l'argomento <code>truncate</code> del <code>tokenizer</code>."}]}}),M=new xe({}),ie=new we({props:{choices:[{text:"Nulla, ma viene mostrato un avvertimento",explain:"L'avvertimento non \xE8 'l'unica cosa!"},{text:"La testa del modello pre-addestrato viene scartata e una nuova testa, appropriata per il compito, viene inserita al suo posto",explain:"Corretto. Ad esempio, quando abbiamo usato <code>AutoModelForSequenceClassification</code> con <code>bert-base-uncased</code>, abbiamo ottenuto un avvertimento mentre il modello veniva istanziato. La testa pre-addestrata non viene usata per il compito di classificazione delle sequenze, ma viene scartata e una nuova testa viene istanziata con pesi casuali.",correct:!0},{text:"La testa del modello pre-addestrato viene scartata",explain:"Deve succedere anche qualcos'altro. Prova ancora!"},{text:"Nulla, dato che il modello pu\xF2 comunque essere affinato per un compito differente.",explain:"La testa del modello pre-addestrato non era stata addestrata per risolvere questo compito, quindi dovremmo scartarla!"}]}}),S=new xe({}),m=new we({props:{choices:[{text:"Contiene tutti gli iperparametri usati per l'addestramento e la valutazione con il <code>Trainer</code>.",explain:"Corretto!",correct:!0},{text:"Specifica le dimensioni del modello.",explain:"Le dimensioni del modello sono definite dalla configurazione del modello, non dalla classe <code>TrainingArguments</code>."},{text:"Contiene soltanto gli iperparametri usati per la valutazione.",explain:"Nell'esempio, abbiamo specificato anche dove salvare il modello e i suoi checkpoint. Prova ancora!"},{text:"Contiene soltanto gli iperparametri usati per l'addestramento.",explain:"Nell'esempio, abbiamo usato anche una <code>evaluation_strategy</code> (stragia di valutazione). Prova ancora!"}]}}),ye=new xe({}),Se=new we({props:{choices:[{text:"Fornisce l'accesso a modelli pi\xF9 veloci.",explain:"No, la libreria \u{1F917} Accelerate non fornisce l'accesso ad alcun modello"},{text:"Fornisce una API di alto livello, cos\xEC non devo implementare il mio ciclo di addestramento.",explain:"Questa \xE8 la funzionalit\xE0 del <code>Trainer</code>, non della libreria \u{1F917} Accelerate. Prova ancora!"},{text:"Permette ai nostri cicli di addestramento di venire eseguiti con strategie distribuite.",explain:"Corretto! Con \u{1F917} Accelerate, i tuoi cicli di addestramento funzioneranno con svariate GPU e TPU.",correct:!0},{text:"Fornisce altre funzioni di ottimizzazione.",explain:"No, la libreria \u{1F917} Accelerate library non fornisce alcuna funzione di ottimizzazione."}]}}),{c(){$=i("h3"),q=i("a"),k=i("span"),x(y.$$.fragment),j=d(),_=i("span"),me=p("4. Quali sono i benefici del metodo "),U=i("code"),ze=p("Dataset.map()"),he=p("?"),ue=d(),x(Z.$$.fragment),ne=d(),G=i("h3"),C=i("a"),N=i("span"),x(T.$$.fragment),X=d(),se=i("span"),le=p("5. Qual \xE8 il significato di padding dinamico (dynamic padding)?"),ee=d(),x(I.$$.fragment),ge=d(),L=i("h3"),H=i("a"),pe=i("span"),x(P.$$.fragment),F=d(),ae=i("span"),Q=p("6. Qual \xE8 lo scopo di una funzione di raccolta (collate function)?"),V=d(),x(A.$$.fragment),te=d(),O=i("h3"),B=i("a"),ve=i("span"),x(M.$$.fragment),ce=d(),J=i("span"),s=p("7. Cosa succede quando una classe di tipo "),v=i("code"),Ee=p("AutoModelForXxx"),oe=p(" viene istanziata con un modello di linguaggio pre-addestrato (come "),D=i("code"),be=p("bert-base-uncased"),fe=p(") che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?"),$e=d(),x(ie.$$.fragment),qe=d(),R=i("h3"),K=i("a"),de=i("span"),x(S.$$.fragment),W=d(),Y=i("span"),Ne=p("8. Qual \xE8 lo scopo di "),Te=i("code"),ke=p("TrainingArguments"),Ie=p("?"),o=d(),x(m.$$.fragment),_e=d(),re=i("h3"),Ae=i("a"),Qe=i("span"),x(ye.$$.fragment),Pe=d(),De=i("span"),Oe=p("9. Perch\xE9 si dovrebbe usare la libreria \u{1F917} Accelerate?"),Ce=d(),x(Se.$$.fragment),this.h()},l(e){$=r(e,"H3",{class:!0});var h=n($);q=r(h,"A",{id:!0,class:!0,href:!0});var Ke=n(q);k=r(Ke,"SPAN",{});var Fe=n(k);w(y.$$.fragment,Fe),Fe.forEach(a),Ke.forEach(a),j=u(h),_=r(h,"SPAN",{});var Me=n(_);me=f(Me,"4. Quali sono i benefici del metodo "),U=r(Me,"CODE",{});var Ge=n(U);ze=f(Ge,"Dataset.map()"),Ge.forEach(a),he=f(Me,"?"),Me.forEach(a),h.forEach(a),ue=u(e),w(Z.$$.fragment,e),ne=u(e),G=r(e,"H3",{class:!0});var Ue=n(G);C=r(Ue,"A",{id:!0,class:!0,href:!0});var Ve=n(C);N=r(Ve,"SPAN",{});var Ye=n(N);w(T.$$.fragment,Ye),Ye.forEach(a),Ve.forEach(a),X=u(Ue),se=r(Ue,"SPAN",{});var Ze=n(se);le=f(Ze,"5. Qual \xE8 il significato di padding dinamico (dynamic padding)?"),Ze.forEach(a),Ue.forEach(a),ee=u(e),w(I.$$.fragment,e),ge=u(e),L=r(e,"H3",{class:!0});var Xe=n(L);H=r(Xe,"A",{id:!0,class:!0,href:!0});var ea=n(H);pe=r(ea,"SPAN",{});var aa=n(pe);w(P.$$.fragment,aa),aa.forEach(a),ea.forEach(a),F=u(Xe),ae=r(Xe,"SPAN",{});var ta=n(ae);Q=f(ta,"6. Qual \xE8 lo scopo di una funzione di raccolta (collate function)?"),ta.forEach(a),Xe.forEach(a),V=u(e),w(A.$$.fragment,e),te=u(e),O=r(e,"H3",{class:!0});var Be=n(O);B=r(Be,"A",{id:!0,class:!0,href:!0});var oa=n(B);ve=r(oa,"SPAN",{});var ia=n(ve);w(M.$$.fragment,ia),ia.forEach(a),oa.forEach(a),ce=u(Be),J=r(Be,"SPAN",{});var Re=n(J);s=f(Re,"7. Cosa succede quando una classe di tipo "),v=r(Re,"CODE",{});var ra=n(v);Ee=f(ra,"AutoModelForXxx"),ra.forEach(a),oe=f(Re," viene istanziata con un modello di linguaggio pre-addestrato (come "),D=r(Re,"CODE",{});var na=n(D);be=f(na,"bert-base-uncased"),na.forEach(a),fe=f(Re,") che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?"),Re.forEach(a),Be.forEach(a),$e=u(e),w(ie.$$.fragment,e),qe=u(e),R=r(e,"H3",{class:!0});var Je=n(R);K=r(Je,"A",{id:!0,class:!0,href:!0});var sa=n(K);de=r(sa,"SPAN",{});var la=n(de);w(S.$$.fragment,la),la.forEach(a),sa.forEach(a),W=u(Je),Y=r(Je,"SPAN",{});var We=n(Y);Ne=f(We,"8. Qual \xE8 lo scopo di "),Te=r(We,"CODE",{});var ca=n(Te);ke=f(ca,"TrainingArguments"),ca.forEach(a),Ie=f(We,"?"),We.forEach(a),Je.forEach(a),o=u(e),w(m.$$.fragment,e),_e=u(e),re=r(e,"H3",{class:!0});var je=n(re);Ae=r(je,"A",{id:!0,class:!0,href:!0});var da=n(Ae);Qe=r(da,"SPAN",{});var ua=n(Qe);w(ye.$$.fragment,ua),ua.forEach(a),da.forEach(a),Pe=u(je),De=r(je,"SPAN",{});var pa=n(De);Oe=f(pa,"9. Perch\xE9 si dovrebbe usare la libreria \u{1F917} Accelerate?"),pa.forEach(a),je.forEach(a),Ce=u(e),w(Se.$$.fragment,e),this.h()},h(){l(q,"id","4.-quali-sono-i-benefici-del-metodo-<code>dataset.map()</code>?"),l(q,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(q,"href","#4.-quali-sono-i-benefici-del-metodo-<code>dataset.map()</code>?"),l($,"class","relative group"),l(C,"id","5.-qual-\xE8-il-significato-di-padding-dinamico-(dynamic-padding)?"),l(C,"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"),l(C,"href","#5.-qual-\xE8-il-significato-di-padding-dinamico-(dynamic-padding)?"),l(G,"class","relative group"),l(H,"id","6.-qual-\xE8-lo-scopo-di-una-funzione-di-raccolta-(collate-function)?"),l(H,"class","header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full"),l(H,"href","#6.-qual-\xE8-lo-scopo-di-una-funzione-di-raccolta-(collate-function)?"),l(L,"class","relative group"),l(B,"id","7.-cosa-succede-quando-una-classe-di-tipo-<code>automodelforxxx</code>-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-(come-<code>bert-base-uncased</code>)-che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato?"),l(B,"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"),l(B,"href","#7.-cosa-succede-quando-una-classe-di-tipo-<code>automodelforxxx</code>-viene-istanziata-con-un-modello-di-linguaggio-pre-addestrato-(come-<code>bert-base-uncased</code>)-che-corrisponde-ad-un-compito-differente-rispetto-a-quello-per-cui-era-stato-addestrato?"),l(O,"class","relative group"),l(K,"id","8.-qual-\xE8-lo-scopo-di-<code>trainingarguments</code>?"),l(K,"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"),l(K,"href","#8.-qual-\xE8-lo-scopo-di-<code>trainingarguments</code>?"),l(R,"class","relative group"),l(Ae,"id","9.-perch\xE9-si-dovrebbe-usare-la-libreria-\u{1F917}-accelerate?"),l(Ae,"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"),l(Ae,"href","#9.-perch\xE9-si-dovrebbe-usare-la-libreria-\u{1F917}-accelerate?"),l(re,"class","relative group")},m(e,h){c(e,$,h),t($,q),t(q,k),z(y,k,null),t($,j),t($,_),t(_,me),t(_,U),t(U,ze),t(_,he),c(e,ue,h),z(Z,e,h),c(e,ne,h),c(e,G,h),t(G,C),t(C,N),z(T,N,null),t(G,X),t(G,se),t(se,le),c(e,ee,h),z(I,e,h),c(e,ge,h),c(e,L,h),t(L,H),t(H,pe),z(P,pe,null),t(L,F),t(L,ae),t(ae,Q),c(e,V,h),z(A,e,h),c(e,te,h),c(e,O,h),t(O,B),t(B,ve),z(M,ve,null),t(O,ce),t(O,J),t(J,s),t(J,v),t(v,Ee),t(J,oe),t(J,D),t(D,be),t(J,fe),c(e,$e,h),z(ie,e,h),c(e,qe,h),c(e,R,h),t(R,K),t(K,de),z(S,de,null),t(R,W),t(R,Y),t(Y,Ne),t(Y,Te),t(Te,ke),t(Y,Ie),c(e,o,h),z(m,e,h),c(e,_e,h),c(e,re,h),t(re,Ae),t(Ae,Qe),z(ye,Qe,null),t(re,Pe),t(re,De),t(De,Oe),c(e,Ce,h),z(Se,e,h),He=!0},i(e){He||(b(y.$$.fragment,e),b(Z.$$.fragment,e),b(T.$$.fragment,e),b(I.$$.fragment,e),b(P.$$.fragment,e),b(A.$$.fragment,e),b(M.$$.fragment,e),b(ie.$$.fragment,e),b(S.$$.fragment,e),b(m.$$.fragment,e),b(ye.$$.fragment,e),b(Se.$$.fragment,e),He=!0)},o(e){g(y.$$.fragment,e),g(Z.$$.fragment,e),g(T.$$.fragment,e),g(I.$$.fragment,e),g(P.$$.fragment,e),g(A.$$.fragment,e),g(M.$$.fragment,e),g(ie.$$.fragment,e),g(S.$$.fragment,e),g(m.$$.fragment,e),g(ye.$$.fragment,e),g(Se.$$.fragment,e),He=!1},d(e){e&&a($),E(y),e&&a(ue),E(Z,e),e&&a(ne),e&&a(G),E(T),e&&a(ee),E(I,e),e&&a(ge),e&&a(L),E(P),e&&a(V),E(A,e),e&&a(te),e&&a(O),E(M),e&&a($e),E(ie,e),e&&a(qe),e&&a(R),E(S),e&&a(o),E(m,e),e&&a(_e),e&&a(re),E(ye),e&&a(Ce),E(Se,e)}}}function Ea(Le){let $,q,k,y,j,_,me,U,ze,he,ue,Z,ne,G,C,N,T,X,se,le,ee,I,ge,L,H,pe,P,F,ae,Q,V,A,te,O,B,ve,M,ce,J,s,v,Ee,oe,D,be,fe,$e,ie,qe,R,K,de,S,W,Y,Ne;k=new xa({props:{fw:Le[0]}}),U=new xe({}),H=new we({props:{choices:[{text:"Joy (Gioia)",explain:"Prova ancora \u2014 questa emozione \xE8 contenuta nel dataset!"},{text:"Love (Amore)",explain:"Prova ancora \u2014 questa emozione \xE8 contenuta nel dataset!"},{text:"Confusion (Confusione)",explain:"Corretto! Confusion non \xE8 una della sei emozioni di base.",correct:!0},{text:"Surprise (Sorpresa)",explain:"Sorpresa! Prova ancora!"}]}}),Q=new xe({}),v=new we({props:{choices:[{text:"Sentiment classification (Classificazione dei sentimenti)",explain:"Corretto! Si capisce dai tag.",correct:!0},{text:"Machine translation (Traduzione automatica)",explain:"Sbagliato \u2014 dai un'altra occhiata alla <a href='https://huggingface.co/datasets/ar_sarcasm'>dataset card</a>!"},{text:"Named entity recognition (Riconoscimento di entit\xE0 con un nome)",explain:"Sbagliato \u2014 dai un'altra occhiata alla <a href='https://huggingface.co/datasets/ar_sarcasm'>dataset card</a>!"},{text:"Question answering (Risposte a domande)",explain:"Purtroppo non hai risposto correttamente. Prova ancora!"}]}}),fe=new xe({}),K=new we({props:{choices:[{text:"Tokens_della_frase_1 [SEP] Tokens_della_frase_2",explain:"Un token speciale <code>[SEP]</code> \xE8 necessario per separare le due frasi, ma non \xE8 l'unica cosa!"},{text:"[CLS] Tokens_della_frase_1 Tokens_della_frase_2",explain:"Un token speciale <code>[CLS]</code> \xE8 necessario all'inizio, ma non \xE8 l'unica cosa!"},{text:"[CLS] Tokens_della_frase_1 [SEP] Tokens_della_frase_2 [SEP]",explain:"Corretto!",correct:!0},{text:"[CLS] Tokens_della_frase_1 [SEP] Tokens_della_frase_2",explain:"Un token speciale <code>[CLS]</code> \xE8 necessario all'inizio e un token speciale <code>[SEP]</code> \xE8 necessario per separare le due frasi, ma non \xE8 l'unica cosa!"}]}});const Te=[za,wa],ke=[];function Ie(o,m){return o[0]==="pt"?0:1}return S=Ie(Le),W=ke[S]=Te[S](Le),{c(){$=i("meta"),q=d(),x(k.$$.fragment),y=d(),j=i("h1"),_=i("a"),me=i("span"),x(U.$$.fragment),ze=d(),he=i("span"),ue=p("Quiz di fine capitolo"),Z=d(),ne=i("p"),G=p("Testiamo cosa avete imparato in questo capitolo!"),C=d(),N=i("h3"),T=p("1. Il dataset "),X=i("code"),se=p("emotion"),le=p(" contiene messaggi Twitter etichettati con emozioni. Cercalo nel "),ee=i("a"),I=p("Hub"),ge=p(" e leggi la carta del dataset. Quale di queste non fa parte delle sue emozioni di base?"),L=d(),x(H.$$.fragment),pe=d(),P=i("h3"),F=i("a"),ae=i("span"),x(Q.$$.fragment),V=d(),A=i("span"),te=p("2. Cerca il dataset "),O=i("code"),B=p("ar_sarcasm"),ve=p(" nel "),M=i("a"),ce=p("Hub"),J=p(". Quali compiti supporta?"),s=d(),x(v.$$.fragment),Ee=d(),oe=i("h3"),D=i("a"),be=i("span"),x(fe.$$.fragment),$e=d(),ie=i("span"),qe=p("3. Come deve essere preparata una coppia di frasi per essere processata dal modello BERT?"),R=d(),x(K.$$.fragment),de=d(),W.c(),Y=fa(),this.h()},l(o){const m=$a('[data-svelte="svelte-1phssyn"]',document.head);$=r(m,"META",{name:!0,content:!0}),m.forEach(a),q=u(o),w(k.$$.fragment,o),y=u(o),j=r(o,"H1",{class:!0});var _e=n(j);_=r(_e,"A",{id:!0,class:!0,href:!0});var re=n(_);me=r(re,"SPAN",{});var Ae=n(me);w(U.$$.fragment,Ae),Ae.forEach(a),re.forEach(a),ze=u(_e),he=r(_e,"SPAN",{});var Qe=n(he);ue=f(Qe,"Quiz di fine capitolo"),Qe.forEach(a),_e.forEach(a),Z=u(o),ne=r(o,"P",{});var ye=n(ne);G=f(ye,"Testiamo cosa avete imparato in questo capitolo!"),ye.forEach(a),C=u(o),N=r(o,"H3",{});var Pe=n(N);T=f(Pe,"1. Il dataset "),X=r(Pe,"CODE",{});var De=n(X);se=f(De,"emotion"),De.forEach(a),le=f(Pe," contiene messaggi Twitter etichettati con emozioni. Cercalo nel "),ee=r(Pe,"A",{href:!0,rel:!0});var Oe=n(ee);I=f(Oe,"Hub"),Oe.forEach(a),ge=f(Pe," e leggi la carta del dataset. Quale di queste non fa parte delle sue emozioni di base?"),Pe.forEach(a),L=u(o),w(H.$$.fragment,o),pe=u(o),P=r(o,"H3",{class:!0});var Ce=n(P);F=r(Ce,"A",{id:!0,class:!0,href:!0});var Se=n(F);ae=r(Se,"SPAN",{});var He=n(ae);w(Q.$$.fragment,He),He.forEach(a),Se.forEach(a),V=u(Ce),A=r(Ce,"SPAN",{});var e=n(A);te=f(e,"2. Cerca il dataset "),O=r(e,"CODE",{});var h=n(O);B=f(h,"ar_sarcasm"),h.forEach(a),ve=f(e," nel "),M=r(e,"A",{href:!0,rel:!0});var Ke=n(M);ce=f(Ke,"Hub"),Ke.forEach(a),J=f(e,". Quali compiti supporta?"),e.forEach(a),Ce.forEach(a),s=u(o),w(v.$$.fragment,o),Ee=u(o),oe=r(o,"H3",{class:!0});var Fe=n(oe);D=r(Fe,"A",{id:!0,class:!0,href:!0});var Me=n(D);be=r(Me,"SPAN",{});var Ge=n(be);w(fe.$$.fragment,Ge),Ge.forEach(a),Me.forEach(a),$e=u(Fe),ie=r(Fe,"SPAN",{});var Ue=n(ie);qe=f(Ue,"3. Come deve essere preparata una coppia di frasi per essere processata dal modello BERT?"),Ue.forEach(a),Fe.forEach(a),R=u(o),w(K.$$.fragment,o),de=u(o),W.l(o),Y=fa(),this.h()},h(){l($,"name","hf:doc:metadata"),l($,"content",JSON.stringify(qa)),l(_,"id","quiz-di-fine-capitolo"),l(_,"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"),l(_,"href","#quiz-di-fine-capitolo"),l(j,"class","relative group"),l(ee,"href","https://huggingface.co/datasets"),l(ee,"rel","nofollow"),l(F,"id","2.-cerca-il-dataset-<code>ar_sarcasm</code>-nel-hub.-quali-compiti-supporta?"),l(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"),l(F,"href","#2.-cerca-il-dataset-<code>ar_sarcasm</code>-nel-hub.-quali-compiti-supporta?"),l(M,"href","https://huggingface.co/datasets"),l(M,"rel","nofollow"),l(P,"class","relative group"),l(D,"id","3.-come-deve-essere-preparata-una-coppia-di-frasi-per-essere-processata-dal-modello-bert?"),l(D,"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"),l(D,"href","#3.-come-deve-essere-preparata-una-coppia-di-frasi-per-essere-processata-dal-modello-bert?"),l(oe,"class","relative group")},m(o,m){t(document.head,$),c(o,q,m),z(k,o,m),c(o,y,m),c(o,j,m),t(j,_),t(_,me),z(U,me,null),t(j,ze),t(j,he),t(he,ue),c(o,Z,m),c(o,ne,m),t(ne,G),c(o,C,m),c(o,N,m),t(N,T),t(N,X),t(X,se),t(N,le),t(N,ee),t(ee,I),t(N,ge),c(o,L,m),z(H,o,m),c(o,pe,m),c(o,P,m),t(P,F),t(F,ae),z(Q,ae,null),t(P,V),t(P,A),t(A,te),t(A,O),t(O,B),t(A,ve),t(A,M),t(M,ce),t(A,J),c(o,s,m),z(v,o,m),c(o,Ee,m),c(o,oe,m),t(oe,D),t(D,be),z(fe,be,null),t(oe,$e),t(oe,ie),t(ie,qe),c(o,R,m),z(K,o,m),c(o,de,m),ke[S].m(o,m),c(o,Y,m),Ne=!0},p(o,[m]){const _e={};m&1&&(_e.fw=o[0]),k.$set(_e);let re=S;S=Ie(o),S!==re&&(_a(),g(ke[re],1,1,()=>{ke[re]=null}),ga(),W=ke[S],W||(W=ke[S]=Te[S](o),W.c()),b(W,1),W.m(Y.parentNode,Y))},i(o){Ne||(b(k.$$.fragment,o),b(U.$$.fragment,o),b(H.$$.fragment,o),b(Q.$$.fragment,o),b(v.$$.fragment,o),b(fe.$$.fragment,o),b(K.$$.fragment,o),b(W),Ne=!0)},o(o){g(k.$$.fragment,o),g(U.$$.fragment,o),g(H.$$.fragment,o),g(Q.$$.fragment,o),g(v.$$.fragment,o),g(fe.$$.fragment,o),g(K.$$.fragment,o),g(W),Ne=!1},d(o){a($),o&&a(q),E(k,o),o&&a(y),o&&a(j),E(U),o&&a(Z),o&&a(ne),o&&a(C),o&&a(N),o&&a(L),E(H,o),o&&a(pe),o&&a(P),E(Q),o&&a(s),E(v,o),o&&a(Ee),o&&a(oe),E(fe),o&&a(R),E(K,o),o&&a(de),ke[S].d(o),o&&a(Y)}}}const qa={local:"quiz-di-fine-capitolo",title:"Quiz di fine capitolo"};function ka(Le,$,q){let k="pt";return ba(()=>{const y=new URLSearchParams(window.location.search);q(0,k=y.get("fw")||"pt")}),[k]}class Ca extends ma{constructor($){super();ha(this,$,ka,Ea,va,{})}}export{Ca as default,qa as metadata};
