Buckets:

rtrm's picture
download
raw
19.3 kB
import{s as ke,n as ze,o as he}from"../chunks/scheduler.37c15a92.js";import{S as Ce,i as be,g as fe,s,r,A as we,h as $e,f as i,c as a,j as qe,u,x as Pe,k as ve,y as _e,a as n,v as l,d as o,t as p,w as m}from"../chunks/index.2bf4358c.js";import{C as ye}from"../chunks/CourseFloatingBanner.6add7356.js";import{Q as c}from"../chunks/Question.668688bc.js";import{H as d,E as Ee}from"../chunks/getInferenceSnippets.ebf8be91.js";function Qe(ge){let f,A,D,G,$,H,g,M,x,xe="Testons ce que vous avez appris dans ce chapitre !",N,q,R,v,F,k,O,z,J,h,K,C,X,b,Y,w,Z,P,ee,_,te,y,ie,E,ne,Q,se,T,ae,U,re,L,ue,I,le,j,oe,B,pe,S,me,W,de,V,ce;return $=new d({props:{title:"Quiz de fin de chapitre",local:"quiz-de-fin-de-chapitre",headingTag:"h1"}}),g=new ye({props:{chapter:6,classNames:"absolute z-10 right-0 top-0"}}),q=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"}}),v=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>."}]}}),k=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"}}),z=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 ?"}]}}),h=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"}}),C=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}]}}),b=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"}}),w=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}]}}),P=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"}}),_=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."}]}}),y=new d({props:{title:"6. Qu’est-ce que la normalisation ?",local:"6-quest-ce-que-la-normalisation-",headingTag:"h3"}}),E=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."}]}}),Q=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"}}),L=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."}]}}),I=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"}}),S=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."}]}}),W=new Ee({props:{source:"https://github.com/huggingface/course/blob/main/chapters/fr/chapter6/10.mdx"}}),{c(){f=fe("meta"),A=s(),D=fe("p"),G=s(),r($.$$.fragment),H=s(),r(g.$$.fragment),M=s(),x=fe("p"),x.textContent=xe,N=s(),r(q.$$.fragment),R=s(),r(v.$$.fragment),F=s(),r(k.$$.fragment),O=s(),r(z.$$.fragment),J=s(),r(h.$$.fragment),K=s(),r(C.$$.fragment),X=s(),r(b.$$.fragment),Y=s(),r(w.$$.fragment),Z=s(),r(P.$$.fragment),ee=s(),r(_.$$.fragment),te=s(),r(y.$$.fragment),ie=s(),r(E.$$.fragment),ne=s(),r(Q.$$.fragment),se=s(),r(T.$$.fragment),ae=s(),r(U.$$.fragment),re=s(),r(L.$$.fragment),ue=s(),r(I.$$.fragment),le=s(),r(j.$$.fragment),oe=s(),r(B.$$.fragment),pe=s(),r(S.$$.fragment),me=s(),r(W.$$.fragment),de=s(),V=fe("p"),this.h()},l(e){const t=we("svelte-u9bgzb",document.head);f=$e(t,"META",{name:!0,content:!0}),t.forEach(i),A=a(e),D=$e(e,"P",{}),qe(D).forEach(i),G=a(e),u($.$$.fragment,e),H=a(e),u(g.$$.fragment,e),M=a(e),x=$e(e,"P",{"data-svelte-h":!0}),Pe(x)!=="svelte-n4p1na"&&(x.textContent=xe),N=a(e),u(q.$$.fragment,e),R=a(e),u(v.$$.fragment,e),F=a(e),u(k.$$.fragment,e),O=a(e),u(z.$$.fragment,e),J=a(e),u(h.$$.fragment,e),K=a(e),u(C.$$.fragment,e),X=a(e),u(b.$$.fragment,e),Y=a(e),u(w.$$.fragment,e),Z=a(e),u(P.$$.fragment,e),ee=a(e),u(_.$$.fragment,e),te=a(e),u(y.$$.fragment,e),ie=a(e),u(E.$$.fragment,e),ne=a(e),u(Q.$$.fragment,e),se=a(e),u(T.$$.fragment,e),ae=a(e),u(U.$$.fragment,e),re=a(e),u(L.$$.fragment,e),ue=a(e),u(I.$$.fragment,e),le=a(e),u(j.$$.fragment,e),oe=a(e),u(B.$$.fragment,e),pe=a(e),u(S.$$.fragment,e),me=a(e),u(W.$$.fragment,e),de=a(e),V=$e(e,"P",{}),qe(V).forEach(i),this.h()},h(){ve(f,"name","hf:doc:metadata"),ve(f,"content",Te)},m(e,t){_e(document.head,f),n(e,A,t),n(e,D,t),n(e,G,t),l($,e,t),n(e,H,t),l(g,e,t),n(e,M,t),n(e,x,t),n(e,N,t),l(q,e,t),n(e,R,t),l(v,e,t),n(e,F,t),l(k,e,t),n(e,O,t),l(z,e,t),n(e,J,t),l(h,e,t),n(e,K,t),l(C,e,t),n(e,X,t),l(b,e,t),n(e,Y,t),l(w,e,t),n(e,Z,t),l(P,e,t),n(e,ee,t),l(_,e,t),n(e,te,t),l(y,e,t),n(e,ie,t),l(E,e,t),n(e,ne,t),l(Q,e,t),n(e,se,t),l(T,e,t),n(e,ae,t),l(U,e,t),n(e,re,t),l(L,e,t),n(e,ue,t),l(I,e,t),n(e,le,t),l(j,e,t),n(e,oe,t),l(B,e,t),n(e,pe,t),l(S,e,t),n(e,me,t),l(W,e,t),n(e,de,t),n(e,V,t),ce=!0},p:ze,i(e){ce||(o($.$$.fragment,e),o(g.$$.fragment,e),o(q.$$.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(T.$$.fragment,e),o(U.$$.fragment,e),o(L.$$.fragment,e),o(I.$$.fragment,e),o(j.$$.fragment,e),o(B.$$.fragment,e),o(S.$$.fragment,e),o(W.$$.fragment,e),ce=!0)},o(e){p($.$$.fragment,e),p(g.$$.fragment,e),p(q.$$.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(T.$$.fragment,e),p(U.$$.fragment,e),p(L.$$.fragment,e),p(I.$$.fragment,e),p(j.$$.fragment,e),p(B.$$.fragment,e),p(S.$$.fragment,e),p(W.$$.fragment,e),ce=!1},d(e){e&&(i(A),i(D),i(G),i(H),i(M),i(x),i(N),i(R),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(ue),i(le),i(oe),i(pe),i(me),i(de),i(V)),i(f),m($,e),m(g,e),m(q,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(T,e),m(U,e),m(L,e),m(I,e),m(j,e),m(B,e),m(S,e),m(W,e)}}}const Te='{"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 Ue(ge){return he(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class We extends Ce{constructor(f){super(),be(this,f,Ue,Qe,ke,{})}}export{We as component};

Xet Storage Details

Size:
19.3 kB
·
Xet hash:
fd5489cb194107fe794288cf6598329e7094f94120c8be344c8d9dc0a316f4d1

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