import{S as Et,i as bt,s as wt,e as r,k as p,w as _,t as d,l as _t,M as yt,c as n,d as e,m,x as E,a as o,h as c,b as i,G as t,g as u,y as b,o as $,p as kt,q as x,B as w,v as zt,n as At}from"../../chunks/vendor-hf-doc-builder.js";import{I as ye}from"../../chunks/IconCopyLink-hf-doc-builder.js";import{Q as ke}from"../../chunks/Question-hf-doc-builder.js";import{F as Ct}from"../../chunks/FrameworkSwitchCourse-hf-doc-builder.js";function Pt(De){let v,y,A,P,K,g,xe,D,ze,ge,ce,Y,ne,R,S,j,N,I,V,oe,X,B,Ae,pe,Z,ee,M,q,F,C,L,le,T,_e,U,Ee,J,k,te;return P=new ye({}),S=new ke({props:{choices:[{text:"Rien, mais vous recevez un message d'avertissement.",explain:"Effectivement, mais ce n'est pas tout !"},{text:"La t\xEAte du mod\xE8le pr\xE9-entra\xEEn\xE9 est supprim\xE9e et une nouvelle t\xEAte adapt\xE9e \xE0 la t\xE2che est ins\xE9r\xE9e \xE0 la place.",explain:"Par exemple, lorsque nous avons utilis\xE9 <code>TFAutoModelForSequenceClassification</code> avec <code>bert-base-uncased</code>, nous avons eu des messages d'avertissement lors de l'instanciation du mod\xE8le. La t\xEAte pr\xE9-entra\xEEn\xE9e n'est pas utilis\xE9e pour la t\xE2che de classification de s\xE9quences, elle est donc supprim\xE9e et une nouvelle t\xEAte est instanci\xE9e avec des poids al\xE9atoires..",correct:!0},{text:"La t\xEAte du mod\xE8le pr\xE9-entra\xEEn\xE9 est supprim\xE9e.",explain:"Quelque chose d'autre doit se produire. Essayez encore !"},{text:"Rien, puisque le mod\xE8le peut encore \xEAtre <i>finetun\xE9</i> pour les diff\xE9rentes t\xE2ches.",explain:"La t\xEAte du mod\xE8le pr\xE9-entra\xEEn\xE9 n'a pas \xE9t\xE9 entra\xEEn\xE9e \xE0 r\xE9soudre cette t\xE2che, nous devons donc la supprimer !"}]}}),oe=new ye({}),q=new ke({props:{choices:[{text:"Les mod\xE8les fonctionnent sur un TPU pr\xEAt \xE0 l'emploi.",explain:"Presque ! Il y a quelques petites modifications suppl\xE9mentaires \xE0 apporter. Par exemple, vous devez tout ex\xE9cuter dans un fichier de type <code>TPUStrategy</code>, y compris l'initialisation du mod\xE8le."},{text:"Vous pouvez tirer parti des m\xE9thodes existantes telles que <code>compile()</code>, <code>fit()</code> et <code>predict()</code>.",explain:"Une fois que vous disposez des donn\xE9es, l'entra\xEEnement sur celles-ci ne demande que tr\xE8s peu de travail.",correct:!0},{text:"Vous apprendrez \xE0 conna\xEEtre Keras ainsi que transformers.",explain:"Mais nous cherchons quelque chose d'autre :)",correct:!0},{text:"Vous pouvez facilement calculer les m\xE9triques li\xE9es au jeu de donn\xE9es.",explain:"Keras nous aide \xE0 entra\xEEner et \xE0 \xE9valuer le mod\xE8le, et non \xE0 calculer les param\xE8tres li\xE9s aux jeux de donn\xE9es."}]}}),T=new ye({}),k=new ke({props:{choices:[{text:"Par le biais de la sous-classe <code>tf.keras.metrics.Metric</code>.",explain:"Excellent !",correct:!0},{text:"Utilisation de l'API fonctionnelle de Keras.",explain:"Essayez \xE0 nouveau !"},{text:"En utilisant un callable avec la signature <code>metric_fn(y_true, y_pred)</code>.",explain:" ",correct:!0},{text:"En le googlant.",explain:"Ce n'est pas la r\xE9ponse que nous cherchons, mais cela devrait vous aider \xE0 la trouver.",correct:!0}]}}),{c(){v=r("h3"),y=r("a"),A=r("span"),_(P.$$.fragment),K=p(),g=r("span"),xe=d("4. Que se passe-t-il lorsque vous instanciez une des classes "),D=r("code"),ze=d("TFAutoModelForXxx"),ge=d(" avec un mod\xE8le de langage pr\xE9-entra\xEEn\xE9 (tel que "),ce=r("code"),Y=d("bert-base-uncased"),ne=d(") qui correspond \xE0 une t\xE2che diff\xE9rente de celle pour laquelle il a \xE9t\xE9 entra\xEEn\xE9 ?"),R=p(),_(S.$$.fragment),j=p(),N=r("h3"),I=r("a"),V=r("span"),_(oe.$$.fragment),X=p(),B=r("span"),Ae=d("5. Les mod\xE8les TensorFlow de "),pe=r("code"),Z=d("transformers"),ee=d(" sont d\xE9j\xE0 des mod\xE8les Keras. Quel avantage cela offre-t-il ?"),M=p(),_(q.$$.fragment),F=p(),C=r("h3"),L=r("a"),le=r("span"),_(T.$$.fragment),_e=p(),U=r("span"),Ee=d("6. Comment pouvez-vous d\xE9finir votre propre m\xE9trique personnalis\xE9e ?"),J=p(),_(k.$$.fragment),this.h()},l(l){v=n(l,"H3",{class:!0});var z=o(v);y=n(z,"A",{id:!0,class:!0,href:!0});var G=o(y);A=n(G,"SPAN",{});var me=o(A);E(P.$$.fragment,me),me.forEach(e),G.forEach(e),K=m(z),g=n(z,"SPAN",{});var W=o(g);xe=c(W,"4. Que se passe-t-il lorsque vous instanciez une des classes "),D=n(W,"CODE",{});var se=o(D);ze=c(se,"TFAutoModelForXxx"),se.forEach(e),ge=c(W," avec un mod\xE8le de langage pr\xE9-entra\xEEn\xE9 (tel que "),ce=n(W,"CODE",{});var ie=o(ce);Y=c(ie,"bert-base-uncased"),ie.forEach(e),ne=c(W,") qui correspond \xE0 une t\xE2che diff\xE9rente de celle pour laquelle il a \xE9t\xE9 entra\xEEn\xE9 ?"),W.forEach(e),z.forEach(e),R=m(l),E(S.$$.fragment,l),j=m(l),N=n(l,"H3",{class:!0});var ae=o(N);I=n(ae,"A",{id:!0,class:!0,href:!0});var fe=o(I);V=n(fe,"SPAN",{});var je=o(V);E(oe.$$.fragment,je),je.forEach(e),fe.forEach(e),X=m(ae),B=n(ae,"SPAN",{});var ue=o(B);Ae=c(ue,"5. Les mod\xE8les TensorFlow de "),pe=n(ue,"CODE",{});var he=o(pe);Z=c(he,"transformers"),he.forEach(e),ee=c(ue," sont d\xE9j\xE0 des mod\xE8les Keras. Quel avantage cela offre-t-il ?"),ue.forEach(e),ae.forEach(e),M=m(l),E(q.$$.fragment,l),F=m(l),C=n(l,"H3",{class:!0});var ve=o(C);L=n(ve,"A",{id:!0,class:!0,href:!0});var Q=o(L);le=n(Q,"SPAN",{});var re=o(le);E(T.$$.fragment,re),re.forEach(e),Q.forEach(e),_e=m(ve),U=n(ve,"SPAN",{});var H=o(U);Ee=c(H,"6. Comment pouvez-vous d\xE9finir votre propre m\xE9trique personnalis\xE9e ?"),H.forEach(e),ve.forEach(e),J=m(l),E(k.$$.fragment,l),this.h()},h(){i(y,"id","4.-que-se-passe-t-il-lorsque-vous-instanciez-une-des-classes-<code>tfautomodelforxxx</code>-avec-un-mod\xE8le-de-langage-pr\xE9-entra\xEEn\xE9-(tel-que-<code>bert-base-uncased</code>)-qui-correspond-\xE0-une-t\xE2che-diff\xE9rente-de-celle-pour-laquelle-il-a-\xE9t\xE9-entra\xEEn\xE9-?"),i(y,"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"),i(y,"href","#4.-que-se-passe-t-il-lorsque-vous-instanciez-une-des-classes-<code>tfautomodelforxxx</code>-avec-un-mod\xE8le-de-langage-pr\xE9-entra\xEEn\xE9-(tel-que-<code>bert-base-uncased</code>)-qui-correspond-\xE0-une-t\xE2che-diff\xE9rente-de-celle-pour-laquelle-il-a-\xE9t\xE9-entra\xEEn\xE9-?"),i(v,"class","relative group"),i(I,"id","5.-les-mod\xE8les-tensorflow-de-<code>transformers</code>-sont-d\xE9j\xE0-des-mod\xE8les-keras.-quel-avantage-cela-offre-t-il-?"),i(I,"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"),i(I,"href","#5.-les-mod\xE8les-tensorflow-de-<code>transformers</code>-sont-d\xE9j\xE0-des-mod\xE8les-keras.-quel-avantage-cela-offre-t-il-?"),i(N,"class","relative group"),i(L,"id","6.-comment-pouvez-vous-d\xE9finir-votre-propre-m\xE9trique-personnalis\xE9e-?"),i(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"),i(L,"href","#6.-comment-pouvez-vous-d\xE9finir-votre-propre-m\xE9trique-personnalis\xE9e-?"),i(C,"class","relative group")},m(l,z){u(l,v,z),t(v,y),t(y,A),b(P,A,null),t(v,K),t(v,g),t(g,xe),t(g,D),t(D,ze),t(g,ge),t(g,ce),t(ce,Y),t(g,ne),u(l,R,z),b(S,l,z),u(l,j,z),u(l,N,z),t(N,I),t(I,V),b(oe,V,null),t(N,X),t(N,B),t(B,Ae),t(B,pe),t(pe,Z),t(B,ee),u(l,M,z),b(q,l,z),u(l,F,z),u(l,C,z),t(C,L),t(L,le),b(T,le,null),t(C,_e),t(C,U),t(U,Ee),u(l,J,z),b(k,l,z),te=!0},i(l){te||(x(P.$$.fragment,l),x(S.$$.fragment,l),x(oe.$$.fragment,l),x(q.$$.fragment,l),x(T.$$.fragment,l),x(k.$$.fragment,l),te=!0)},o(l){$(P.$$.fragment,l),$(S.$$.fragment,l),$(oe.$$.fragment,l),$(q.$$.fragment,l),$(T.$$.fragment,l),$(k.$$.fragment,l),te=!1},d(l){l&&e(v),w(P),l&&e(R),w(S,l),l&&e(j),l&&e(N),w(oe),l&&e(M),w(q,l),l&&e(F),l&&e(C),w(T),l&&e(J),w(k,l)}}}function St(De){let v,y,A,P,K,g,xe,D,ze,ge,ce,Y,ne,R,S,j,N,I,V,oe,X,B,Ae,pe,Z,ee,M,q,F,C,L,le,T,_e,U,Ee,J,k,te,l,z,G,me,W,se,ie,ae,fe,je,ue,he,ve,Q,re,H,O,Ne,be,Ue,qe,Oe,a,h,de,Ce,we,Pe,He,$e,Re,Te,Ie,Le,Je,Ke,Se,Qe,Me;return P=new ye({}),Y=new ke({props:{choices:[{text:"Les r\xE9sultats de la fonction sont mis en cache, donc cela ne prendra pas de temps si nous r\xE9ex\xE9cutons le code.",explain:"C'est en effet l'un des avantages de cette m\xE9thode ! Ce n'est pas le seul, cependant...",correct:!0},{text:"Elle peut appliquer le multitraitement pour aller plus vite que l'application de la fonction sur chaque \xE9l\xE9ment du jeu de donn\xE9es.",explain:"C'est une caract\xE9ristique int\xE9ressante de cette m\xE9thode, mais ce n'est pas la seule !",correct:!0},{text:"Elle ne charge pas le jeu de donn\xE9es en m\xE9moire, mais sauvegarde les r\xE9sultats d\xE8s qu'un \xE9l\xE9ment est trait\xE9.",explain:"C'est l'un des avantages de cette m\xE9thode. Mais il y en a d'autres !",correct:!0}]}}),N=new ye({}),Z=new ke({props:{choices:[{text:"C'est lorsque vous remplissez les entr\xE9es de chaque batch \xE0 la longueur maximale du jeu de donn\xE9es entier.",explain:"Cela implique un remplissage lors de la cr\xE9ation du batch, mais pas \xE0 la longueur maximale du jeu de donn\xE9es entier."},{text:"C'est lorsque vous remplissez vos entr\xE9es lorsque le batch est cr\xE9\xE9, \xE0 la longueur maximale des phrases \xE0 l'int\xE9rieur de ce batch.",explain:"La partie dynamique vient du fait que la taille de chaque batch est d\xE9termin\xE9e au moment de la cr\xE9ation, et que tous vos batchs peuvent avoir des formes diff\xE9rentes.",correct:!0},{text:"C'est lorsque vous remplissez vos entr\xE9es de sorte que chaque phrase ait le m\xEAme nombre de <i>tokens</i> que la pr\xE9c\xE9dente dans le jeu de donn\xE9es.",explain:"Cela n'a pas de sens de regarder l'ordre dans le jeu de donn\xE9es puisque nous le m\xE9langeons pendant l'entra\xEEnement."}]}}),C=new ye({}),U=new ke({props:{choices:[{text:"Elle garantit que toutes les s\xE9quences du jeu de donn\xE9es ont la m\xEAme longueur.",explain:"Une fonction de rassemblement est impliqu\xE9e dans le traitement des batchs individuels, et non de tout le jeu de donn\xE9es. De plus, nous parlons de fonctions g\xE9n\xE9riques et pas sp\xE9cialement du <code>DataCollatorWithPadding</code>."},{text:"Elle rassemble tous les \xE9chantillons dans un batch.",explain:"Vous pouvez passer la fonction de rassemblement comme argument d'une fonction <code>DataLoader</code>. Nous avons utilis\xE9 la fonction <code>DataCollatorWithPadding</code> qui remplit tous les \xE9l\xE9ments d'un batch pour qu'ils aient la m\xEAme longueur.",correct:!0},{text:"Elle pr\xE9-traite tout le jeu de donn\xE9es.",explain:"Ce serait une fonction de pr\xE9traitement, pas une fonction de rassemblement."},{text:"Elle tronque les s\xE9quences dans le jeu de donn\xE9es.",explain:"Une fonction de rassemblement est impliqu\xE9e dans le traitement des batchs individuels, et non de tout le jeu de donn\xE9es. Si vous \xEAtes int\xE9ress\xE9 par la troncature, vous pouvez utiliser la fonction <code>truncate</code> en argument du <code>tokenizer</code>."}]}}),l=new ye({}),he=new ke({props:{choices:[{text:"Rien, mais vous recevez un message d'avertissement.",explain:"Effectivement, mais ce n'est pas tout !"},{text:"La t\xEAte du mod\xE8le pr\xE9-entra\xEEn\xE9 est supprim\xE9e et une nouvelle t\xEAte adapt\xE9e \xE0 la t\xE2che est ins\xE9r\xE9e \xE0 la place.",explain:"Par exemple, lorsque nous avons utilis\xE9 l'<code>AutoModelForSequenceClassification</code> avec <code>bert-base-uncased</code>, nous avons eu des messages d'avertissement lors de l'instanciation du mod\xE8le. La t\xEAte pr\xE9-entra\xEEn\xE9e n'est pas utilis\xE9e pour la t\xE2che de classification de s\xE9quences, elle est donc supprim\xE9e et une nouvelle t\xEAte est instanci\xE9e avec des poids al\xE9atoires..",correct:!0},{text:"La t\xEAte du mod\xE8le pr\xE9-entra\xEEn\xE9 est supprim\xE9e.",explain:"Quelque chose d'autre doit se produire. Essayez encore !"},{text:"Rien, puisque le mod\xE8le peut encore \xEAtre <i>finetun\xE9</i> pour les diff\xE9rentes t\xE2ches.",explain:"La t\xEAte du mod\xE8le pr\xE9-entra\xEEn\xE9 n'a pas \xE9t\xE9 entra\xEEn\xE9e \xE0 r\xE9soudre cette t\xE2che, nous devons donc la supprimer !"}]}}),O=new ye({}),de=new ke({props:{choices:[{text:"Contenir tous les hyperparam\xE8tres utilis\xE9s pour l'entra\xEEnement et l'\xE9valuation avec le <code>Trainer</code>.",explain:"",correct:!0},{text:"Pr\xE9ciser la taille du mod\xE8le.",explain:"La taille du mod\xE8le est d\xE9finie par la configuration du mod\xE8le, et non par la classe <code>TrainingArguments</code>."},{text:"Juste contenir les hyperparam\xE8tres utilis\xE9s pour l'\xE9valuation.",explain:"Dans l'exemple, nous avons sp\xE9cifi\xE9 o\xF9 le mod\xE8le et ses <i>checkpoints</i> seront sauvegard\xE9s. Essayez \xE0 nouveau !"},{text:"Contenir seulement les hyperparam\xE8tres utilis\xE9s pour l'entra\xEEnement.",explain:"Dans l'exemple, nous avons utilis\xE9 une <code>evaluation_strategy</code> \xE9galement, ce qui a un impact sur l'\xE9valuation. Essayez \xE0 nouveau !"}]}}),$e=new ye({}),Qe=new ke({props:{choices:[{text:"Elle permet d'acc\xE9der \xE0 des mod\xE8les plus rapides.",explain:"Non, la librairie \u{1F917} <i>Accelerate</i> ne fournit aucun mod\xE8les."},{text:"Elle fournit une API de haut niveau qui \xE9vite d'avoir \xE0 mettre en place sa propre boucle d'entra\xEEnement.",explain:"C'est ce que nous avons fait avec le <code>Trainer</code> mais pas avec la librairie \u{1F917} <i>Accelerate</i>. Essayez \xE0 nouveau !"},{text:"Elle permet \xE0 nos boucles d'entra\xEEnement de fonctionner avec des strat\xE9gies distribu\xE9es.",explain:"Avec \u{1F917} <i>Accelerate</i>, vos boucles d'entra\xEEnement fonctionneront pour plusieurs GPUs et TPUs.",correct:!0},{text:"Elle offre davantage de fonctions d'optimisation.",explain:"Non, la librairie \u{1F917} <i>Accelerate</i> ne fournit pas de fonctions d'optimisation."}]}}),{c(){v=r("h3"),y=r("a"),A=r("span"),_(P.$$.fragment),K=p(),g=r("span"),xe=d("4. Quels sont les avantages de la m\xE9thode "),D=r("code"),ze=d("Dataset.map()"),ge=d(" ?"),ce=p(),_(Y.$$.fragment),ne=p(),R=r("h3"),S=r("a"),j=r("span"),_(N.$$.fragment),I=p(),V=r("span"),oe=d("5. Que signifie le remplissage ("),X=r("em"),B=d("padding"),Ae=d(") dynamique ?"),pe=p(),_(Z.$$.fragment),ee=p(),M=r("h3"),q=r("a"),F=r("span"),_(C.$$.fragment),L=p(),le=r("span"),T=d("6. Quel est le but d\u2019une fonction de rassemblement ?"),_e=p(),_(U.$$.fragment),Ee=p(),J=r("h3"),k=r("a"),te=r("span"),_(l.$$.fragment),z=p(),G=r("span"),me=d("7. Que se passe-t-il lorsque vous instanciez une des classes "),W=r("code"),se=d("AutoModelForXxx"),ie=d(" avec un mod\xE8le de langage pr\xE9-entra\xEEn\xE9 (tel que "),ae=r("code"),fe=d("bert-base-uncased"),je=d(") qui correspond \xE0 une t\xE2che diff\xE9rente de celle pour laquelle il a \xE9t\xE9 entra\xEEn\xE9 ?"),ue=p(),_(he.$$.fragment),ve=p(),Q=r("h3"),re=r("a"),H=r("span"),_(O.$$.fragment),Ne=p(),be=r("span"),Ue=d("8. Quel est le but de "),qe=r("code"),Oe=d("TrainingArguments"),a=d(" ?"),h=p(),_(de.$$.fragment),Ce=p(),we=r("h3"),Pe=r("a"),He=r("span"),_($e.$$.fragment),Re=p(),Te=r("span"),Ie=d("9. Pourquoi devriez-vous utiliser la librairie \u{1F917} "),Le=r("em"),Je=d("Accelerate"),Ke=d(" ?"),Se=p(),_(Qe.$$.fragment),this.h()},l(s){v=n(s,"H3",{class:!0});var f=o(v);y=n(f,"A",{id:!0,class:!0,href:!0});var Xe=o(y);A=n(Xe,"SPAN",{});var Be=o(A);E(P.$$.fragment,Be),Be.forEach(e),Xe.forEach(e),K=m(f),g=n(f,"SPAN",{});var Fe=o(g);xe=c(Fe,"4. Quels sont les avantages de la m\xE9thode "),D=n(Fe,"CODE",{});var rt=o(D);ze=c(rt,"Dataset.map()"),rt.forEach(e),ge=c(Fe," ?"),Fe.forEach(e),f.forEach(e),ce=m(s),E(Y.$$.fragment,s),ne=m(s),R=n(s,"H3",{class:!0});var Ge=o(R);S=n(Ge,"A",{id:!0,class:!0,href:!0});var nt=o(S);j=n(nt,"SPAN",{});var ot=o(j);E(N.$$.fragment,ot),ot.forEach(e),nt.forEach(e),I=m(Ge),V=n(Ge,"SPAN",{});var We=o(V);oe=c(We,"5. Que signifie le remplissage ("),X=n(We,"EM",{});var lt=o(X);B=c(lt,"padding"),lt.forEach(e),Ae=c(We,") dynamique ?"),We.forEach(e),Ge.forEach(e),pe=m(s),E(Z.$$.fragment,s),ee=m(s),M=n(s,"H3",{class:!0});var Ye=o(M);q=n(Ye,"A",{id:!0,class:!0,href:!0});var it=o(q);F=n(it,"SPAN",{});var ut=o(F);E(C.$$.fragment,ut),ut.forEach(e),it.forEach(e),L=m(Ye),le=n(Ye,"SPAN",{});var dt=o(le);T=c(dt,"6. Quel est le but d\u2019une fonction de rassemblement ?"),dt.forEach(e),Ye.forEach(e),_e=m(s),E(U.$$.fragment,s),Ee=m(s),J=n(s,"H3",{class:!0});var Ze=o(J);k=n(Ze,"A",{id:!0,class:!0,href:!0});var ct=o(k);te=n(ct,"SPAN",{});var pt=o(te);E(l.$$.fragment,pt),pt.forEach(e),ct.forEach(e),z=m(Ze),G=n(Ze,"SPAN",{});var Ve=o(G);me=c(Ve,"7. Que se passe-t-il lorsque vous instanciez une des classes "),W=n(Ve,"CODE",{});var mt=o(W);se=c(mt,"AutoModelForXxx"),mt.forEach(e),ie=c(Ve," avec un mod\xE8le de langage pr\xE9-entra\xEEn\xE9 (tel que "),ae=n(Ve,"CODE",{});var ft=o(ae);fe=c(ft,"bert-base-uncased"),ft.forEach(e),je=c(Ve,") qui correspond \xE0 une t\xE2che diff\xE9rente de celle pour laquelle il a \xE9t\xE9 entra\xEEn\xE9 ?"),Ve.forEach(e),Ze.forEach(e),ue=m(s),E(he.$$.fragment,s),ve=m(s),Q=n(s,"H3",{class:!0});var et=o(Q);re=n(et,"A",{id:!0,class:!0,href:!0});var ht=o(re);H=n(ht,"SPAN",{});var vt=o(H);E(O.$$.fragment,vt),vt.forEach(e),ht.forEach(e),Ne=m(et),be=n(et,"SPAN",{});var tt=o(be);Ue=c(tt,"8. Quel est le but de "),qe=n(tt,"CODE",{});var $t=o(qe);Oe=c($t,"TrainingArguments"),$t.forEach(e),a=c(tt," ?"),tt.forEach(e),et.forEach(e),h=m(s),E(de.$$.fragment,s),Ce=m(s),we=n(s,"H3",{class:!0});var st=o(we);Pe=n(st,"A",{id:!0,class:!0,href:!0});var xt=o(Pe);He=n(xt,"SPAN",{});var gt=o(He);E($e.$$.fragment,gt),gt.forEach(e),xt.forEach(e),Re=m(st),Te=n(st,"SPAN",{});var at=o(Te);Ie=c(at,"9. Pourquoi devriez-vous utiliser la librairie \u{1F917} "),Le=n(at,"EM",{});var qt=o(Le);Je=c(qt,"Accelerate"),qt.forEach(e),Ke=c(at," ?"),at.forEach(e),st.forEach(e),Se=m(s),E(Qe.$$.fragment,s),this.h()},h(){i(y,"id","4.-quels-sont-les-avantages-de-la-m\xE9thode-<code>dataset.map()</code>-?"),i(y,"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"),i(y,"href","#4.-quels-sont-les-avantages-de-la-m\xE9thode-<code>dataset.map()</code>-?"),i(v,"class","relative group"),i(S,"id","5.-que-signifie-le-remplissage-(<em>padding</em>)-dynamique-?"),i(S,"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"),i(S,"href","#5.-que-signifie-le-remplissage-(<em>padding</em>)-dynamique-?"),i(R,"class","relative group"),i(q,"id","6.-quel-est-le-but-d\u2019une-fonction-de-rassemblement-?"),i(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"),i(q,"href","#6.-quel-est-le-but-d\u2019une-fonction-de-rassemblement-?"),i(M,"class","relative group"),i(k,"id","7.-que-se-passe-t-il-lorsque-vous-instanciez-une-des-classes-<code>automodelforxxx</code>-avec-un-mod\xE8le-de-langage-pr\xE9-entra\xEEn\xE9-(tel-que-<code>bert-base-uncased</code>)-qui-correspond-\xE0-une-t\xE2che-diff\xE9rente-de-celle-pour-laquelle-il-a-\xE9t\xE9-entra\xEEn\xE9-?"),i(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"),i(k,"href","#7.-que-se-passe-t-il-lorsque-vous-instanciez-une-des-classes-<code>automodelforxxx</code>-avec-un-mod\xE8le-de-langage-pr\xE9-entra\xEEn\xE9-(tel-que-<code>bert-base-uncased</code>)-qui-correspond-\xE0-une-t\xE2che-diff\xE9rente-de-celle-pour-laquelle-il-a-\xE9t\xE9-entra\xEEn\xE9-?"),i(J,"class","relative group"),i(re,"id","8.-quel-est-le-but-de-<code>trainingarguments</code>-?"),i(re,"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"),i(re,"href","#8.-quel-est-le-but-de-<code>trainingarguments</code>-?"),i(Q,"class","relative group"),i(Pe,"id","9.-pourquoi-devriez-vous-utiliser-la-librairie-\u{1F917}-<em>accelerate</em>-?"),i(Pe,"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"),i(Pe,"href","#9.-pourquoi-devriez-vous-utiliser-la-librairie-\u{1F917}-<em>accelerate</em>-?"),i(we,"class","relative group")},m(s,f){u(s,v,f),t(v,y),t(y,A),b(P,A,null),t(v,K),t(v,g),t(g,xe),t(g,D),t(D,ze),t(g,ge),u(s,ce,f),b(Y,s,f),u(s,ne,f),u(s,R,f),t(R,S),t(S,j),b(N,j,null),t(R,I),t(R,V),t(V,oe),t(V,X),t(X,B),t(V,Ae),u(s,pe,f),b(Z,s,f),u(s,ee,f),u(s,M,f),t(M,q),t(q,F),b(C,F,null),t(M,L),t(M,le),t(le,T),u(s,_e,f),b(U,s,f),u(s,Ee,f),u(s,J,f),t(J,k),t(k,te),b(l,te,null),t(J,z),t(J,G),t(G,me),t(G,W),t(W,se),t(G,ie),t(G,ae),t(ae,fe),t(G,je),u(s,ue,f),b(he,s,f),u(s,ve,f),u(s,Q,f),t(Q,re),t(re,H),b(O,H,null),t(Q,Ne),t(Q,be),t(be,Ue),t(be,qe),t(qe,Oe),t(be,a),u(s,h,f),b(de,s,f),u(s,Ce,f),u(s,we,f),t(we,Pe),t(Pe,He),b($e,He,null),t(we,Re),t(we,Te),t(Te,Ie),t(Te,Le),t(Le,Je),t(Te,Ke),u(s,Se,f),b(Qe,s,f),Me=!0},i(s){Me||(x(P.$$.fragment,s),x(Y.$$.fragment,s),x(N.$$.fragment,s),x(Z.$$.fragment,s),x(C.$$.fragment,s),x(U.$$.fragment,s),x(l.$$.fragment,s),x(he.$$.fragment,s),x(O.$$.fragment,s),x(de.$$.fragment,s),x($e.$$.fragment,s),x(Qe.$$.fragment,s),Me=!0)},o(s){$(P.$$.fragment,s),$(Y.$$.fragment,s),$(N.$$.fragment,s),$(Z.$$.fragment,s),$(C.$$.fragment,s),$(U.$$.fragment,s),$(l.$$.fragment,s),$(he.$$.fragment,s),$(O.$$.fragment,s),$(de.$$.fragment,s),$($e.$$.fragment,s),$(Qe.$$.fragment,s),Me=!1},d(s){s&&e(v),w(P),s&&e(ce),w(Y,s),s&&e(ne),s&&e(R),w(N),s&&e(pe),w(Z,s),s&&e(ee),s&&e(M),w(C),s&&e(_e),w(U,s),s&&e(Ee),s&&e(J),w(l),s&&e(ue),w(he,s),s&&e(ve),s&&e(Q),w(O),s&&e(h),w(de,s),s&&e(Ce),s&&e(we),w($e),s&&e(Se),w(Qe,s)}}}function jt(De){let v,y,A,P,K,g,xe,D,ze,ge,ce,Y,ne,R,S,j,N,I,V,oe,X,B,Ae,pe,Z,ee,M,q,F,C,L,le,T,_e,U,Ee,J,k,te,l,z,G,me,W,se,ie,ae,fe,je,ue,he,ve,Q,re,H,O,Ne,be;A=new Ct({props:{fw:De[0]}}),D=new ye({}),ee=new ke({props:{choices:[{text:"Joie",explain:"Essayez \xE0 nouveau, cette \xE9motion est pr\xE9sente dans ce jeu de donn\xE9es !"},{text:"Amour",explain:"Essayez \xE0 nouveau, cette \xE9motion est pr\xE9sente dans ce jeu de donn\xE9es !"},{text:"Confusion",explain:"La confusion n'est pas l'une des six \xE9motions de base.",correct:!0},{text:"Surprise",explain:"Surprise ! Essayez-en une autre !"}]}}),L=new ye({}),me=new ke({props:{choices:[{text:"Classification de sentiments",explain:"C'est vrai ! Vous pouvez le dire gr\xE2ce aux <i>tags</i>.",correct:!0},{text:"Traduction automatique",explain:"Ce n'est pas \xE7a. Jetez un autre coup d'\u0153il \xE0 la <a href='https://huggingface.co/datasets/ar_sarcasm'>carte du jeu de donn\xE9es</a> !"},{text:"Reconnaissance des entit\xE9s nomm\xE9es",explain:"Ce n'est pas \xE7a. Jetez un autre coup d'\u0153il \xE0 la <a href='https://huggingface.co/datasets/ar_sarcasm'>carte du jeu de donn\xE9es</a> !"},{text:"R\xE9ponse aux questions",explain:"H\xE9las, cette question n'a pas re\xE7u de r\xE9ponse correcte. Essayez \xE0 nouveau !"}]}}),fe=new ye({}),Q=new ke({props:{choices:[{text:"Tokens_de_la_phrase_1 [SEP] Tokens_de_la_phrase_2",explain:"Un jeton sp\xE9cial <code>[SEP]</code> est n\xE9cessaire pour s\xE9parer les deux phrases, mais ce n'est pas tout !"},{text:"[CLS] Tokens_de_la_phrase_1 Tokens_de_la_phrase_2",explain:"Un jeton sp\xE9cial <code>[CLS]</code> est requis au d\xE9but, mais ce n'est pas la seule chose !"},{text:"[CLS] Tokens_de_la_phrase_1 [SEP] Tokens_de_la_phrase_2 [SEP]",explain:"C'est exact !",correct:!0},{text:"[CLS] Tokens_de_la_phrase_1 [SEP] Tokens_de_la_phrase_2",explain:"Un jeton sp\xE9cial <code>[CLS]</code> est n\xE9cessaire au d\xE9but, ainsi qu'un jeton sp\xE9cial <code>[SEP]</code> pour s\xE9parer les deux phrases, mais ce n'est pas tout !"}]}});const Ue=[St,Pt],qe=[];function Oe(a,h){return a[0]==="pt"?0:1}return H=Oe(De),O=qe[H]=Ue[H](De),{c(){v=r("meta"),y=p(),_(A.$$.fragment),P=p(),K=r("h1"),g=r("a"),xe=r("span"),_(D.$$.fragment),ze=p(),ge=r("span"),ce=d("Quiz de fin de chapitre"),Y=p(),ne=r("p"),R=d("Testez ce que vous avez appris dans ce chapitre !"),S=p(),j=r("h3"),N=d("1. Le jeu de donn\xE9es "),I=r("code"),V=d("emotion"),oe=d(" contient des messages Twitter \xE9tiquet\xE9s avec des \xE9motions. Cherchez-le dans le "),X=r("a"),B=r("em"),Ae=d("Hub"),pe=d(" et lisez la carte du jeu de donn\xE9es. Laquelle de ces \xE9motions n\u2019est pas une de ses \xE9motions de base ?"),Z=p(),_(ee.$$.fragment),M=p(),q=r("h3"),F=r("a"),C=r("span"),_(L.$$.fragment),le=p(),T=r("span"),_e=d("2. Cherchez le jeu de donn\xE9es "),U=r("code"),Ee=d("ar_sarcasme"),J=d(" dans le "),k=r("a"),te=r("em"),l=d("Hub"),z=d(". Quelle t\xE2che prend-il en charge ?"),G=p(),_(me.$$.fragment),W=p(),se=r("h3"),ie=r("a"),ae=r("span"),_(fe.$$.fragment),je=p(),ue=r("span"),he=d("3. Comment le mod\xE8le BERT attend-il qu\u2019une paire de phrases soit trait\xE9e ?"),ve=p(),_(Q.$$.fragment),re=p(),O.c(),Ne=_t(),this.h()},l(a){const h=yt('[data-svelte="svelte-1phssyn"]',document.head);v=n(h,"META",{name:!0,content:!0}),h.forEach(e),y=m(a),E(A.$$.fragment,a),P=m(a),K=n(a,"H1",{class:!0});var de=o(K);g=n(de,"A",{id:!0,class:!0,href:!0});var Ce=o(g);xe=n(Ce,"SPAN",{});var we=o(xe);E(D.$$.fragment,we),we.forEach(e),Ce.forEach(e),ze=m(de),ge=n(de,"SPAN",{});var Pe=o(ge);ce=c(Pe,"Quiz de fin de chapitre"),Pe.forEach(e),de.forEach(e),Y=m(a),ne=n(a,"P",{});var He=o(ne);R=c(He,"Testez ce que vous avez appris dans ce chapitre !"),He.forEach(e),S=m(a),j=n(a,"H3",{});var $e=o(j);N=c($e,"1. Le jeu de donn\xE9es "),I=n($e,"CODE",{});var Re=o(I);V=c(Re,"emotion"),Re.forEach(e),oe=c($e," contient des messages Twitter \xE9tiquet\xE9s avec des \xE9motions. Cherchez-le dans le "),X=n($e,"A",{href:!0,rel:!0});var Te=o(X);B=n(Te,"EM",{});var Ie=o(B);Ae=c(Ie,"Hub"),Ie.forEach(e),Te.forEach(e),pe=c($e," et lisez la carte du jeu de donn\xE9es. Laquelle de ces \xE9motions n\u2019est pas une de ses \xE9motions de base ?"),$e.forEach(e),Z=m(a),E(ee.$$.fragment,a),M=m(a),q=n(a,"H3",{class:!0});var Le=o(q);F=n(Le,"A",{id:!0,class:!0,href:!0});var Je=o(F);C=n(Je,"SPAN",{});var Ke=o(C);E(L.$$.fragment,Ke),Ke.forEach(e),Je.forEach(e),le=m(Le),T=n(Le,"SPAN",{});var Se=o(T);_e=c(Se,"2. Cherchez le jeu de donn\xE9es "),U=n(Se,"CODE",{});var Qe=o(U);Ee=c(Qe,"ar_sarcasme"),Qe.forEach(e),J=c(Se," dans le "),k=n(Se,"A",{href:!0,rel:!0});var Me=o(k);te=n(Me,"EM",{});var s=o(te);l=c(s,"Hub"),s.forEach(e),Me.forEach(e),z=c(Se,". Quelle t\xE2che prend-il en charge ?"),Se.forEach(e),Le.forEach(e),G=m(a),E(me.$$.fragment,a),W=m(a),se=n(a,"H3",{class:!0});var f=o(se);ie=n(f,"A",{id:!0,class:!0,href:!0});var Xe=o(ie);ae=n(Xe,"SPAN",{});var Be=o(ae);E(fe.$$.fragment,Be),Be.forEach(e),Xe.forEach(e),je=m(f),ue=n(f,"SPAN",{});var Fe=o(ue);he=c(Fe,"3. Comment le mod\xE8le BERT attend-il qu\u2019une paire de phrases soit trait\xE9e ?"),Fe.forEach(e),f.forEach(e),ve=m(a),E(Q.$$.fragment,a),re=m(a),O.l(a),Ne=_t(),this.h()},h(){i(v,"name","hf:doc:metadata"),i(v,"content",JSON.stringify(Nt)),i(g,"id","quiz-de-fin-de-chapitre"),i(g,"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"),i(g,"href","#quiz-de-fin-de-chapitre"),i(K,"class","relative group"),i(X,"href","https://huggingface.co/datasets"),i(X,"rel","nofollow"),i(F,"id","2.-cherchez-le-jeu-de-donn\xE9es-<code>ar_sarcasme</code>-dans-le-hub</em>.-quelle-t\xE2che-prend-il-en-charge-?"),i(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"),i(F,"href","#2.-cherchez-le-jeu-de-donn\xE9es-<code>ar_sarcasme</code>-dans-le-hub</em>.-quelle-t\xE2che-prend-il-en-charge-?"),i(k,"href","https://huggingface.co/datasets"),i(k,"rel","nofollow"),i(q,"class","relative group"),i(ie,"id","3.-comment-le-mod\xE8le-bert-attend-il-qu\u2019une-paire-de-phrases-soit-trait\xE9e-?"),i(ie,"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"),i(ie,"href","#3.-comment-le-mod\xE8le-bert-attend-il-qu\u2019une-paire-de-phrases-soit-trait\xE9e-?"),i(se,"class","relative group")},m(a,h){t(document.head,v),u(a,y,h),b(A,a,h),u(a,P,h),u(a,K,h),t(K,g),t(g,xe),b(D,xe,null),t(K,ze),t(K,ge),t(ge,ce),u(a,Y,h),u(a,ne,h),t(ne,R),u(a,S,h),u(a,j,h),t(j,N),t(j,I),t(I,V),t(j,oe),t(j,X),t(X,B),t(B,Ae),t(j,pe),u(a,Z,h),b(ee,a,h),u(a,M,h),u(a,q,h),t(q,F),t(F,C),b(L,C,null),t(q,le),t(q,T),t(T,_e),t(T,U),t(U,Ee),t(T,J),t(T,k),t(k,te),t(te,l),t(T,z),u(a,G,h),b(me,a,h),u(a,W,h),u(a,se,h),t(se,ie),t(ie,ae),b(fe,ae,null),t(se,je),t(se,ue),t(ue,he),u(a,ve,h),b(Q,a,h),u(a,re,h),qe[H].m(a,h),u(a,Ne,h),be=!0},p(a,[h]){const de={};h&1&&(de.fw=a[0]),A.$set(de);let Ce=H;H=Oe(a),H!==Ce&&(At(),$(qe[Ce],1,1,()=>{qe[Ce]=null}),kt(),O=qe[H],O||(O=qe[H]=Ue[H](a),O.c()),x(O,1),O.m(Ne.parentNode,Ne))},i(a){be||(x(A.$$.fragment,a),x(D.$$.fragment,a),x(ee.$$.fragment,a),x(L.$$.fragment,a),x(me.$$.fragment,a),x(fe.$$.fragment,a),x(Q.$$.fragment,a),x(O),be=!0)},o(a){$(A.$$.fragment,a),$(D.$$.fragment,a),$(ee.$$.fragment,a),$(L.$$.fragment,a),$(me.$$.fragment,a),$(fe.$$.fragment,a),$(Q.$$.fragment,a),$(O),be=!1},d(a){e(v),a&&e(y),w(A,a),a&&e(P),a&&e(K),w(D),a&&e(Y),a&&e(ne),a&&e(S),a&&e(j),a&&e(Z),w(ee,a),a&&e(M),a&&e(q),w(L),a&&e(G),w(me,a),a&&e(W),a&&e(se),w(fe),a&&e(ve),w(Q,a),a&&e(re),qe[H].d(a),a&&e(Ne)}}}const Nt={local:"quiz-de-fin-de-chapitre",title:"Quiz de fin de chapitre"};function Tt(De,v,y){let A="pt";return zt(()=>{const P=new URLSearchParams(window.location.search);y(0,A=P.get("fw")||"pt")}),[A]}class Mt extends Et{constructor(v){super();bt(this,v,Tt,jt,wt,{})}}export{Mt as default,Nt as metadata};
