Buckets:

rtrm's picture
download
raw
19.6 kB
import{s as he,n as Ce,o as be}from"../chunks/scheduler.893fe8c9.js";import{S as we,i as Pe,e as ge,s,c as r,h as _e,a as xe,d as i,b as a,f as ke,g as l,j as ye,k as ze,l as Ee,m as n,n as u,t as o,o as p,p as m}from"../chunks/index.2d09ebb4.js";import{C as Qe,H as d,E as Le}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.48779b37.js";import{C as Te}from"../chunks/CourseFloatingBanner.2900b001.js";import{Q as c}from"../chunks/Question.6e77d2db.js";function Ue(qe){let f,G,M,H,$,N,g,R,x,A,q,ve="Testons ce que vous avez appris dans ce chapitre !",F,v,O,k,J,z,K,h,X,C,Y,b,Z,w,ee,P,te,_,ie,y,ne,E,se,Q,ae,L,re,T,le,U,ue,I,oe,S,pe,j,me,B,de,W,ce,D,fe,V,$e;return $=new Qe({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),g=new d({props:{title:"Quiz de fin de chapitre",local:"quiz-de-fin-de-chapitre",headingTag:"h1"}}),x=new Te({props:{chapter:6,classNames:"absolute z-10 right-0 top-0"}}),v=new d({props:{title:"1. Quand devez-vous entraîner un nouveau <i> tokenizer </i> ?",local:"1-quand-devez-vous-entraîner-un-nouveau-i-tokenizer-i-",headingTag:"h3"}}),k=new c({props:{choices:[{text:"Lorsque votre jeu de données est similaire à celui utilisé par un modèle pré-entraîné existant et que vous voulez pré-entraîner un nouveau modèle",explain:"Dans ce cas, pour économiser du temps et des ressources de calcul, il est préférable d'utiliser le même <i>tokenizer</i> que le modèle pré-entraîné et de <i>finetuner</i> ce modèle à la place."},{text:"Lorsque votre jeu de données est similaire à celui utilisé par un modèle pré-entraîné existant et que vous souhaitez <i>finetuner</i> un nouveau modèle en utilisant ce modèle pré-entraîné.",explain:"Pour <i>finetuner</i> un modèle à partir d'un modèle pré-entraîné, vous devez toujours utiliser le même <i>tokenizer</i>."},{text:"Lorsque votre jeu de données est différent de celui utilisé par un modèle pré-entraîné existant et que vous souhaitez pré-entraîner un nouveau modèle.",explain:"Dans ce cas, il n'y a aucun avantage à utiliser le même <i>tokenizer</i>.",correct:!0},{text:"Lorsque votre jeu de données est différent de celui utilisé par un modèle pré-entraîné existant mais que vous souhaitez <i>finetuner</i> un nouveau modèle en utilisant ce modèle pré-entraîné.",explain:"Pour <i>finetuner</i> un modèle à partir d'un modèle pré-entraîné, vous devez toujours utiliser le même <i>tokenizer</i>."}]}}),z=new d({props:{title:"2. Quel est l’avantage d’utiliser un générateur de listes par rapport à une liste de listes lors de l’utilisation de <code> train_new_from_iterator() </code> ?",local:"2-quel-est-lavantage-dutiliser-un-générateur-de-listes-par-rapport-à-une-liste-de-listes-lors-de-lutilisation-de-code-trainnewfromiterator-code-",headingTag:"h3"}}),h=new c({props:{choices:[{text:"C'est le seul type que la méthode <code>train_new_from_iterator()</code> accepte.",explain:"Une liste de listes de textes est un type particulier de générateur de listes de textes, la méthode l'acceptera donc aussi. Essayez à nouveau !"},{text:"Vous éviterez de charger l'ensemble des données en mémoire en une seule fois.",explain:"Chaque batch de textes sera libéré de la mémoire lorsque vous itérerez et le gain sera particulièrement visible si vous utilisez des 🤗 <i>Datasets</i> pour stocker vos textes.",correct:!0},{text:"Cela permettra à la bibliothèque 🤗 <i>Tokenizers</i> d'utiliser le multitraitement.",explain:"Il utilisera le multiprocesseur dans tous les cas."},{text:"Le <i>tokenizer</i> que vous entraînez générera de meilleurs textes.",explain:"Le <i>tokenizer</i> ne génère pas de texte. Vous le confondez avec un modèle de langage ?"}]}}),C=new d({props:{title:"3. Quels sont les avantages d’utiliser un <i> tokenizer </i> « rapide » ?",local:"3-quels-sont-les-avantages-dutiliser-un-i-tokenizer-i--rapide--",headingTag:"h3"}}),b=new c({props:{choices:[{text:"Il peut traiter les entrées plus rapidement qu'un <i>tokenizer</i> lent lorsque vous faites des batchs d'entrées.",explain:"Grâce au parallélisme implémenté dans Rust, il sera plus rapide sur les batchs d'entrées. Quel autre avantage pouvez-vous imaginer ?",correct:!0},{text:"Les <i>tokenizers</i> rapides sont toujours plus rapides que leurs homologues lents.",explain:"Un <i>tokenizer</i> rapide peut en fait être plus lent si vous ne lui donnez qu'un seul ou très peu de textes, car il ne peut pas utiliser le parallélisme."},{text:"Il peut appliquer le <i>padding</i> et la troncature.",explain:"C'est vrai, mais les <i>tokenizers</i> lents le font aussi."},{text:"Il possède des fonctionnalités supplémentaires qui vous permettent d'associer les <i>tokens</i> à l'extrait de texte qui les a créés.",explain:"En effet, c'est ce qu'on appelle des correspondances d'<i>offset</i>. Ce n'est pas le seul avantage, cependant.",correct:!0}]}}),w=new d({props:{title:"4. Comment le pipeline token-classification gère-t-il les entités qui s’étendent sur plusieurs <i> tokens </i> ?",local:"4-comment-le-pipeline-token-classification-gère-t-il-les-entités-qui-sétendent-sur-plusieurs-i-tokens-i-",headingTag:"h3"}}),P=new c({props:{choices:[{text:"Les entités ayant la même étiquette sont fusionnées en une seule entité.",explain:"C'est un peu trop simplifier les choses. Essayez encore !"},{text:"Il existe une étiquette pour le début d'une entité et une étiquette pour la suite d'une entité.",explain:" ",correct:!0},{text:"Dans un mot donné, tant que le premier <i>token</i> porte l'étiquette de l'entité, le mot entier est considéré comme étiqueté avec cette entité.",explain:"C'est une stratégie pour gérer les entités. Quelles autres réponses s'appliquent ici ?",correct:!0},{text:"Lorsqu'un <i>token</i> a l'étiquette d'une entité donnée, tout autre <i>token</i> suivant ayant la même étiquette est considéré comme faisant partie de la même entité, à moins qu'il ne soit étiqueté comme le début d'une nouvelle entité.",explain:"C'est la façon la plus courante de regrouper des entités, mais ce n'est pas la seule bonne réponse.",correct:!0}]}}),_=new d({props:{title:"5. Comment le pipeline question-answering gère-t-il les contextes longs ?",local:"5-comment-le-pipeline-question-answering-gère-t-il-les-contextes-longs-",headingTag:"h3"}}),y=new c({props:{choices:[{text:"Ce n'est pas vraiment le cas car il tronque le long contexte à la longueur maximale acceptée par le modèle.",explain:"Il existe une astuce que vous pouvez utiliser pour gérer les longs contextes. Vous en souvenez-vous ?"},{text:"Il divise le contexte en plusieurs parties et fait la moyenne des résultats obtenus.",explain:"Cela n'aurait pas de sens de faire la moyenne des résultats car certaines parties du contexte n'incluront pas la réponse."},{text:"Il divise le contexte en plusieurs parties (avec chevauchement) et trouve le score maximum pour une réponse dans chaque partie.",explain:"C'est la bonne réponse !",correct:!0},{text:"Il divise le contexte en plusieurs parties (sans chevauchemen par souci d'efficacité) et trouve le score maximum pour une réponse dans chaque partie.",explain:"Il comprend un certain chevauchement entre les parties pour éviter une situation où la réponse serait divisée en deux parties."}]}}),E=new d({props:{title:"6. Qu’est-ce que la normalisation ?",local:"6-quest-ce-que-la-normalisation-",headingTag:"h3"}}),Q=new c({props:{choices:[{text:"C'est le nettoyage que le <i>tokenizer</i> effectue sur les textes lors des étapes initiales.",explain:"Par exemple, il peut s'agir de supprimer les accents ou les espaces, ou de mettre les entrées en minuscules.",correct:!0},{text:"Il s'agit d'une technique d'augmentation de données qui consiste à rendre le texte plus normal en supprimant les mots rares.",explain:"Essayez encore."},{text:"C'est l'étape finale du post-traitement où le <i>tokenizer</i> ajoute les <i>tokens</i> spéciaux.",explain:"Cette étape est simplement appelée post-traitement."},{text:"C'est lorsque les enchâssements sont faits avec une moyenne nulle et un écart-type de 1, en soustrayant la moyenne et en divisant par l'écart-type.",explain:"Ce processus est communément appelé normalisation lorsqu'il est appliqué aux valeurs des pixels en vision par ordinateur, mais ce n'est pas ce que signifie la normalisation en NLP."}]}}),L=new d({props:{title:"7. Qu’est-ce que la pré-tokénisation pour un <i> tokenizer </i> en sous-mots ?",local:"7-quest-ce-que-la-pré-tokénisation-pour-un-i-tokenizer-i-en-sous-mots-",headingTag:"h3"}}),T=new c({props:{choices:[{text:"C'est l'étape qui précède la tokénisation, où l'augmentation des données (comme le masquage aléatoire) est appliquée.",explain:"Cette étape fait partie du prétraitement."},{text:"C'est l'étape avant la tokénisation, où les opérations de nettoyage souhaitées sont appliquées au texte.",explain:"C'est l'étape de normalisation."},{text:"C'est l'étape qui précède l'application du modèle <i>tokenizer</i>, pour diviser l'entrée en mots.",explain:"C'est la bonne réponse !",correct:!0},{text:"Il s'agit de l'étape précédant l'application du modèle <i>tokenizer</i>, qui divise l'entrée en <i>tokens</i>.",explain:"La division en <i>tokens</i> est le travail du modèle <i>tokenizer</i>."}]}}),U=new d({props:{title:"8. Sélectionnez les phrases qui s’appliquent au <i> tokenizer </i> BPE.",local:"8-sélectionnez-les-phrases-qui-sappliquent-au-i-tokenizer-i-bpe",headingTag:"h3"}}),I=new c({props:{choices:[{text:"BPE est un algorithme de tokénisation en sous-mots qui part d'un petit vocabulaire et apprend des règles de fusion.",explain:"C'est le cas en effet !",correct:!0},{text:"BPE est un algorithme de tokénisation en sous-mots qui part d'un grand vocabulaire et en retire progressivement les <i>tokens</i>.",explain:"C'est l'approche adoptée par un algorithme de tokénisation différent."},{text:"Un <i>tokenizer</i> BPE apprend les règles de fusion en fusionnant la paire de <i>tokens</i> la plus fréquente.",explain:"C'est exact !",correct:!0},{text:"Un <i>tokenizer</i> BPE apprend une règle de fusion en fusionnant la paire de <i>tokens</i> qui maximise un score qui privilégie les paires fréquentes avec des parties individuelles moins fréquentes.",explain:"C'est la stratégie appliquée par un autre algorithme de tokenization."},{text:"BPE tokenise les mots en sous-mots en les divisant en caractères, puis en appliquant les règles de fusion.",explain:" ",correct:!0},{text:"BPE tokenise les mots en sous-mots en trouvant le plus long sous-mot du vocabulaire en commençant par le début, puis en répétant le processus pour le reste du texte.",explain:"C'est la façon de faire d'un autre algorithme de tokenization."}]}}),S=new d({props:{title:"9. Sélectionnez les phrases qui s’appliquent au <i> tokenizer </i> WordPiece.",local:"9-sélectionnez-les-phrases-qui-sappliquent-au-i-tokenizer-i-wordpiece",headingTag:"h3"}}),j=new c({props:{choices:[{text:"WordPiece est un algorithme de tokénisation en sous-mots qui part d'un petit vocabulaire et apprend des règles de fusion.",explain:"C'est le cas en effet !",correct:!0},{text:"WordPiece est un algorithme de tokénisation en sous-mots qui part d'un grand vocabulaire et en retire progressivement les <i>tokens</i>.",explain:"C'est la façon de faire d'un autre algorithme de tokenization."},{text:"Les <i>tokenizer</i> WordPiece apprennent les règles de fusion en fusionnant la paire de <i>tokens</i> la plus fréquente.",explain:"C'est la façon de faire d'un autre algorithme de tokenization."},{text:"Un <i>tokenizer</i> WordPiece apprend une règle de fusion en fusionnant la paire de <i>tokens</i> qui maximise un score qui privilégie les paires fréquentes avec des parties individuelles moins fréquentes.",explain:" ",correct:!0},{text:"WordPiece tokenise les mots en sous-mots en trouvant la segmentation en <i>tokens</i> la plus probable, selon le modèle.",explain:"C'est la façon de faire d'un autre algorithme de tokenization."},{text:"WordPiece tokenise les mots en sous-mots en trouvant le plus long sous-mot du vocabulaire en commençant par le début, puis en répétant le processus pour le reste du texte.",explain:"C'est ainsi que WordPiece procède pour l'encodage.",correct:!0}]}}),B=new d({props:{title:"10. Sélectionnez les phrases qui s’appliquent au <i> tokenizer </i> Unigram.",local:"10-sélectionnez-les-phrases-qui-sappliquent-au-i-tokenizer-i-unigram",headingTag:"h3"}}),W=new c({props:{choices:[{text:"Unigram est un algorithme de tokénisation en sous-mots qui part d'un petit vocabulaire et apprend des règles de fusion.",explain:"C'est la façon de faire d'un autre algorithme de tokenization."},{text:"Unigram est un algorithme de tokénisation en sous-mots qui part d'un grand vocabulaire et en retire progressivement les <i>tokens</i>.",explain:" ",correct:!0},{text:"Unigram adapte son vocabulaire en minimisant une perte calculée sur l'ensemble du corpus.",explain:" ",correct:!0},{text:"Unigram adapte son vocabulaire en conservant les sous-mots les plus fréquents.",explain:" "},{text:"Unigram segmente les mots en sous-mots en trouvant la segmentation la plus probable en <i>tokens</i>, selon le modèle.",explain:" ",correct:!0},{text:"Unigram décompose les mots en sous-mots en les divisant en caractères puis en appliquant les règles de fusion.",explain:"C'est la façon de faire d'un autre algorithme de tokenization."}]}}),D=new Le({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fr/chapter6/10.mdx"}}),{c(){f=ge("meta"),G=s(),M=ge("p"),H=s(),r($.$$.fragment),N=s(),r(g.$$.fragment),R=s(),r(x.$$.fragment),A=s(),q=ge("p"),q.textContent=ve,F=s(),r(v.$$.fragment),O=s(),r(k.$$.fragment),J=s(),r(z.$$.fragment),K=s(),r(h.$$.fragment),X=s(),r(C.$$.fragment),Y=s(),r(b.$$.fragment),Z=s(),r(w.$$.fragment),ee=s(),r(P.$$.fragment),te=s(),r(_.$$.fragment),ie=s(),r(y.$$.fragment),ne=s(),r(E.$$.fragment),se=s(),r(Q.$$.fragment),ae=s(),r(L.$$.fragment),re=s(),r(T.$$.fragment),le=s(),r(U.$$.fragment),ue=s(),r(I.$$.fragment),oe=s(),r(S.$$.fragment),pe=s(),r(j.$$.fragment),me=s(),r(B.$$.fragment),de=s(),r(W.$$.fragment),ce=s(),r(D.$$.fragment),fe=s(),V=ge("p"),this.h()},l(e){const t=_e("svelte-u9bgzb",document.head);f=xe(t,"META",{name:!0,content:!0}),t.forEach(i),G=a(e),M=xe(e,"P",{}),ke(M).forEach(i),H=a(e),l($.$$.fragment,e),N=a(e),l(g.$$.fragment,e),R=a(e),l(x.$$.fragment,e),A=a(e),q=xe(e,"P",{"data-svelte-h":!0}),ye(q)!=="svelte-n4p1na"&&(q.textContent=ve),F=a(e),l(v.$$.fragment,e),O=a(e),l(k.$$.fragment,e),J=a(e),l(z.$$.fragment,e),K=a(e),l(h.$$.fragment,e),X=a(e),l(C.$$.fragment,e),Y=a(e),l(b.$$.fragment,e),Z=a(e),l(w.$$.fragment,e),ee=a(e),l(P.$$.fragment,e),te=a(e),l(_.$$.fragment,e),ie=a(e),l(y.$$.fragment,e),ne=a(e),l(E.$$.fragment,e),se=a(e),l(Q.$$.fragment,e),ae=a(e),l(L.$$.fragment,e),re=a(e),l(T.$$.fragment,e),le=a(e),l(U.$$.fragment,e),ue=a(e),l(I.$$.fragment,e),oe=a(e),l(S.$$.fragment,e),pe=a(e),l(j.$$.fragment,e),me=a(e),l(B.$$.fragment,e),de=a(e),l(W.$$.fragment,e),ce=a(e),l(D.$$.fragment,e),fe=a(e),V=xe(e,"P",{}),ke(V).forEach(i),this.h()},h(){ze(f,"name","hf:doc:metadata"),ze(f,"content",Ie)},m(e,t){Ee(document.head,f),n(e,G,t),n(e,M,t),n(e,H,t),u($,e,t),n(e,N,t),u(g,e,t),n(e,R,t),u(x,e,t),n(e,A,t),n(e,q,t),n(e,F,t),u(v,e,t),n(e,O,t),u(k,e,t),n(e,J,t),u(z,e,t),n(e,K,t),u(h,e,t),n(e,X,t),u(C,e,t),n(e,Y,t),u(b,e,t),n(e,Z,t),u(w,e,t),n(e,ee,t),u(P,e,t),n(e,te,t),u(_,e,t),n(e,ie,t),u(y,e,t),n(e,ne,t),u(E,e,t),n(e,se,t),u(Q,e,t),n(e,ae,t),u(L,e,t),n(e,re,t),u(T,e,t),n(e,le,t),u(U,e,t),n(e,ue,t),u(I,e,t),n(e,oe,t),u(S,e,t),n(e,pe,t),u(j,e,t),n(e,me,t),u(B,e,t),n(e,de,t),u(W,e,t),n(e,ce,t),u(D,e,t),n(e,fe,t),n(e,V,t),$e=!0},p:Ce,i(e){$e||(o($.$$.fragment,e),o(g.$$.fragment,e),o(x.$$.fragment,e),o(v.$$.fragment,e),o(k.$$.fragment,e),o(z.$$.fragment,e),o(h.$$.fragment,e),o(C.$$.fragment,e),o(b.$$.fragment,e),o(w.$$.fragment,e),o(P.$$.fragment,e),o(_.$$.fragment,e),o(y.$$.fragment,e),o(E.$$.fragment,e),o(Q.$$.fragment,e),o(L.$$.fragment,e),o(T.$$.fragment,e),o(U.$$.fragment,e),o(I.$$.fragment,e),o(S.$$.fragment,e),o(j.$$.fragment,e),o(B.$$.fragment,e),o(W.$$.fragment,e),o(D.$$.fragment,e),$e=!0)},o(e){p($.$$.fragment,e),p(g.$$.fragment,e),p(x.$$.fragment,e),p(v.$$.fragment,e),p(k.$$.fragment,e),p(z.$$.fragment,e),p(h.$$.fragment,e),p(C.$$.fragment,e),p(b.$$.fragment,e),p(w.$$.fragment,e),p(P.$$.fragment,e),p(_.$$.fragment,e),p(y.$$.fragment,e),p(E.$$.fragment,e),p(Q.$$.fragment,e),p(L.$$.fragment,e),p(T.$$.fragment,e),p(U.$$.fragment,e),p(I.$$.fragment,e),p(S.$$.fragment,e),p(j.$$.fragment,e),p(B.$$.fragment,e),p(W.$$.fragment,e),p(D.$$.fragment,e),$e=!1},d(e){e&&(i(G),i(M),i(H),i(N),i(R),i(A),i(q),i(F),i(O),i(J),i(K),i(X),i(Y),i(Z),i(ee),i(te),i(ie),i(ne),i(se),i(ae),i(re),i(le),i(ue),i(oe),i(pe),i(me),i(de),i(ce),i(fe),i(V)),i(f),m($,e),m(g,e),m(x,e),m(v,e),m(k,e),m(z,e),m(h,e),m(C,e),m(b,e),m(w,e),m(P,e),m(_,e),m(y,e),m(E,e),m(Q,e),m(L,e),m(T,e),m(U,e),m(I,e),m(S,e),m(j,e),m(B,e),m(W,e),m(D,e)}}}const Ie='{"title":"Quiz de fin de chapitre","local":"quiz-de-fin-de-chapitre","sections":[{"title":"1. Quand devez-vous entraîner un nouveau <i> tokenizer </i> ?","local":"1-quand-devez-vous-entraîner-un-nouveau-i-tokenizer-i-","sections":[],"depth":3},{"title":"2. Quel est l’avantage d’utiliser un générateur de listes par rapport à une liste de listes lors de l’utilisation de <code> train_new_from_iterator() </code> ?","local":"2-quel-est-lavantage-dutiliser-un-générateur-de-listes-par-rapport-à-une-liste-de-listes-lors-de-lutilisation-de-code-trainnewfromiterator-code-","sections":[],"depth":3},{"title":"3. Quels sont les avantages d’utiliser un <i> tokenizer </i> « rapide » ?","local":"3-quels-sont-les-avantages-dutiliser-un-i-tokenizer-i--rapide--","sections":[],"depth":3},{"title":"4. Comment le pipeline token-classification gère-t-il les entités qui s’étendent sur plusieurs <i> tokens </i> ?","local":"4-comment-le-pipeline-token-classification-gère-t-il-les-entités-qui-sétendent-sur-plusieurs-i-tokens-i-","sections":[],"depth":3},{"title":"5. Comment le pipeline question-answering gère-t-il les contextes longs ?","local":"5-comment-le-pipeline-question-answering-gère-t-il-les-contextes-longs-","sections":[],"depth":3},{"title":"6. Qu’est-ce que la normalisation ?","local":"6-quest-ce-que-la-normalisation-","sections":[],"depth":3},{"title":"7. Qu’est-ce que la pré-tokénisation pour un <i> tokenizer </i> en sous-mots ?","local":"7-quest-ce-que-la-pré-tokénisation-pour-un-i-tokenizer-i-en-sous-mots-","sections":[],"depth":3},{"title":"8. Sélectionnez les phrases qui s’appliquent au <i> tokenizer </i> BPE.","local":"8-sélectionnez-les-phrases-qui-sappliquent-au-i-tokenizer-i-bpe","sections":[],"depth":3},{"title":"9. Sélectionnez les phrases qui s’appliquent au <i> tokenizer </i> WordPiece.","local":"9-sélectionnez-les-phrases-qui-sappliquent-au-i-tokenizer-i-wordpiece","sections":[],"depth":3},{"title":"10. Sélectionnez les phrases qui s’appliquent au <i> tokenizer </i> Unigram.","local":"10-sélectionnez-les-phrases-qui-sappliquent-au-i-tokenizer-i-unigram","sections":[],"depth":3}],"depth":1}';function Se(qe){return be(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ve extends we{constructor(f){super(),Pe(this,f,Se,Ue,he,{})}}export{Ve as component};

Xet Storage Details

Size:
19.6 kB
·
Xet hash:
85cc5a9d550d092c3d087a12a842e1eec542373ac6d915f55a67c8cb4ba377b4

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.