Buckets:

rtrm's picture
|
download
raw
12.6 kB
# Quiz de fin de chapitre
<CourseFloatingBanner
chapter={6}
classNames="absolute z-10 right-0 top-0"
/>
Testons ce que vous avez appris dans ce chapitre !
### 1. Quand devez-vous entraîner un nouveau <i>tokenizer</i> ?
<Question
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: true
},
{
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>."
}
]}
/>
### 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> ?
<Question
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: true
},
{
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 ?"
}
]}
/>
### 3. Quels sont les avantages d'utiliser un <i>tokenizer</i> « rapide » ?
<Question
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: true
},
{
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: true
}
]}
/>
### 4. Comment le pipeline `token-classification` gère-t-il les entités qui s'étendent sur plusieurs <i>tokens</i> ?
<Question
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: true
},
{
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: true
},
{
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: true
}
]}
/>
### 5. Comment le pipeline `question-answering` gère-t-il les contextes longs ?
<Question
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: true
},
{
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 la réponse serait divisée en deux parties."
}
]}
/>
### 6. Qu'est-ce que la normalisation ?
<Question
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: true
},
{
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."
}
]}
/>
### 7. Qu'est-ce que la pré-tokénisation pour un <i>tokenizer</i> en sous-mots ?
<Question
choices={[
{
text: "C'est l'étape qui précède la tokénisation, 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, 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: true
},
{
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>."
}
]}
/>
### 8. Sélectionnez les phrases qui s'appliquent au <i>tokenizer</i> BPE.
<Question
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: true
},
{
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: true
},
{
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: true
},
{
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."
},
]}
/>
### 9. Sélectionnez les phrases qui s'appliquent au <i>tokenizer</i> WordPiece.
<Question
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: true
},
{
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: true
},
{
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: true
},
]}
/>
### 10. Sélectionnez les phrases qui s'appliquent au <i>tokenizer</i> Unigram.
<Question
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: true
},
{
text: "Unigram adapte son vocabulaire en minimisant une perte calculée sur l'ensemble du corpus.",
explain: " ",
correct: true
},
{
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: true
},
{
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."
},
]}
/>
<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/fr/chapter6/10.mdx" />

Xet Storage Details

Size:
12.6 kB
·
Xet hash:
b58c07119a909c83588b73a19dcdde31da47e2d8f0a3863fe61697397c20d72f

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