Buckets:

rtrm's picture
|
download
raw
14.3 kB

Quiz de fin de chapitre

Testons ce que vous avez appris dans ce chapitre !

1. Laquelle des tâches suivantes peut être considérée comme un problème de classification de tokens ?

<Question choices={[ { text: "Trouvez les composants grammaticaux d'une phrase.", explain: "Nous pouvons alors étiqueter chaque mot comme étant un nom, un verbe, etc.", correct: true }, { text: "Trouvez si une phrase est grammaticalement correcte ou non.", explain: "C'est un problème de classification des séquences." }, { text: "Trouvez les personnes mentionnées dans une phrase.", explain: "Nous pouvons étiqueter chaque mot comme personne ou non personne.", correct: true }, { text: "Trouvez le groupe de mots dans une phrase qui répond à une question.", explain: "C'est un problème de réponse aux questions." } ]} />

2. Quelle partie du prétraitement pour la classification de tokens diffère des autres pipelines de prétraitement ?

<Question choices={[ { text: "Il n'y a rien à faire, les textes sont déjà tokenisés.", explain: "Les textes sont en effet donnés sous la forme de mots séparés mais nous devons encore appliquer le modèle de tokenisation en sous-mots." }, { text: "Les textes sont donnés sous forme de mots, il suffit donc d'appliquer la tokénisation en sous-mots.", explain: "C'est différent du prétraitement habituel, où nous devons appliquer le pipeline complet de tokénisation. Pouvez-vous penser à une autre différence ?", correct: true }, { text: "Nous utilisons -100 pour étiqueter les tokens spéciaux.", explain: "Ce n'est pas spécifique à la classification de tokens. Nous utilisons toujours -100 comme étiquette pour les tokens que nous voulons ignorer dans la perte." }, { text: "Nous devons nous assurer que les étiquettes sont tronquées ou rembourrées à la même taille que les entrées, lorsque nous appliquons la troncature/le padding.", explain: "En effet mais ce n'est pas la seule différence.", correct: true } ]} />

3. Quel problème se pose lorsque nous tokenisons les mots dans un problème de classification de tokens et que nous voulons étiqueter les tokens ?

<Question choices={[ { text: "Le tokenizer ajoute des tokens spéciaux et nous n'avons pas d'étiquettes pour eux.", explain: "Nous les étiquetons par -100 ils sont donc ignorés dans la perte." }, { text: "Chaque mot peut produire plusieurs tokens, ce qui fait que nous nous retrouvons avec plus de tokens que d'étiquettes.", explain: "C'est le problème principal et nous devons aligner les étiquettes originales avec les tokens.", correct: true }, { text: "Les tokens ajoutés n'ont pas d'étiquettes, il n'y a donc pas de problème.", explain: "Nous avons besoin d'autant d'étiquettes que de tokens, sinon nos modèles se tromperont." } ]} />

4. Que signifie « adaptation au domaine » ?

<Question choices={[ { text: "C'est lorsque nous exécutons un modèle sur un jeu de données et que nous obtenons les prédictions pour chaque échantillon de ce jeu de données.", explain: "C'est juste une inférence." }, { text: "C'est quand on entraîne un modèle sur un jeu de données.", explain: "Il s'agit d'entraîner un modèle. Il n'y a pas d'adaptation ici." }, { text: "C'est lorsque nous finetunons un modèle pré-entraîné sur un nouveau jeu de données et qu'il donne des prédictions qui sont plus adaptées à ce nouveau jeu de données.", explain: "Le modèle a adapté ses connaissances au nouveau jeu de données.", correct: true }, { text: "C'est lorsque nous ajoutons des échantillons mal classés à un jeu de données pour rendre notre modèle plus robuste.", explain: "C'est certainement quelque chose que vous devriez faire si vous réentraînez votre modèle régulièrement, mais ce n'est pas une adaptation au domaine." } ]} />

5. Quelles sont les étiquettes dans un problème de modélisation du langage masqué ?

<Question choices={[ { text: "Certains des tokens de la phrase d'entrée sont masqués de manière aléatoire et les étiquettes sont les tokens d'entrée originaux.", explain: "C'est ça !", correct: true }, { text: "Certains des tokens de la phrase d'entrée sont masqués de manière aléatoire et les étiquettes sont les tokens d'entrée originaux, décalés vers la gauche.", explain: "Non, le déplacement des étiquettes vers la gauche correspond à la prédiction du mot suivant, ce qui est une modélisation causale du langage." }, { text: "Certains des tokens de la phrase d'entrée sont masqués de manière aléatoire et l'étiquette indique si la phrase est positive ou négative.", explain: "Il s'agit d'un problème de classification de séquences avec une certaine augmentation de données et non d'une modélisation du langage masqué." }, { text: "Certains des tokens des deux phrases d'entrée sont masqués de manière aléatoire et l'étiquette indique si les deux phrases sont similaires ou non.", explain: "Il s'agit d'un problème de classification de séquences avec une certaine augmentation de données et non d'une modélisation du langage masqué." } ]} />

6. Laquelle de ces tâches peut être considérée comme un problème de séquence à séquence ?

<Question choices={[ { text: "Rédiger de courtes critiques de longs documents.", explain: "C'est un problème de résumé. Essayez une autre réponse !", correct: true }, { text: "Répondre à des questions sur un document.", explain: "Cela peut être formulé comme un problème de séquence à séquence. Ce n'est cependant pas la seule bonne réponse.", correct: true }, { text: "Traduire un texte en chinois en anglais.", explain: "C'est définitivement un problème de séquence à séquence. Pouvez-vous en trouver un autre ?", correct: true }, { text: "Corriger les messages envoyés par mon neveu/ami pour qu'ils soient en anglais correct.", explain: "Il s'agit d'un problème de traduction donc d'une tâche de séquence à séquence. Mais ce n'est pas la seule bonne réponse !", correct: true } ]} />

7. Quelle est la bonne façon de prétraiter les données pour un problème de séquence à séquence ?

<Question choices={[ { text: "Les entrées et les cibles doivent être envoyées ensemble au tokenizer avec les éléments suivants inputs=... et targets=....", explain: "Nous pourrions ajouter cette API à l'avenir mais ce n'est pas possible pour le moment." }, { text: "Les entrées et les cibles doivent être prétraitées, en deux appels séparés au tokenizer.", explain: "C'est vrai, mais incomplet. Il y a quelque chose que vous devez faire pour vous assurer que le tokenizer traite les deux correctement." }, { text: "Comme d'habitude, nous devons simplement tokeniser les entrées.", explain: "Pas dans un problème de classification de séquences. Les cibles sont aussi des textes que nous devons convertir en chiffres !" }, { text: "Les entrées doivent être envoyées au tokenizer, et les cibles aussi, mais sous un gestionnaire de contexte spécial.", explain: "C'est exact, le tokenizer doit être mis en mode cible par ce gestionnaire de contexte.", correct: true } ]} />

{#if fw === 'pt'}

8. Pourquoi existe-t-il une sous-classe spécifique de Trainer pour les problèmes de séquence à séquence ?

<Question choices={[ { text: "Parce que les problèmes de séquence-à-séquence utilisent une perte personnalisée, pour ignorer les étiquettes définies à -100.", explain: "Ce n'est pas du tout une perte personnalisée mais la façon dont la perte est toujours calculée." }, { text: "Parce que les problèmes de séquence à séquence nécessitent une boucle d'évaluation spéciale.", explain: "Les prédictions des modèles de séquence à séquence sont souvent exécutées en utilisant la méthode generate().", correct: true }, { text: "Parce que les cibles sont des textes dans des problèmes de séquence à séquence.", explain: "Trainer ne se soucie pas vraiment de cela puisqu'elles ont été prétraités auparavant." }, { text: "Parce que nous utilisons deux modèles dans les problèmes de séquence à séquence.", explain: "Nous utilisons en quelque sorte deux modèles, un encodeur et un décodeur, mais ils sont regroupés dans un seul modèle." } ]} />

{:else}

9. Pourquoi est-il souvent inutile de spécifier une perte quand on appelle compile() sur un transformer ?

<Question choices={[ { text: "Parce que les tranformers sont entraînés avec un apprentissage autosupervisé.", explain: "Pas tout à fait. Même l'apprentissage autosupervisé a besoin d'une fonction de perte !" }, { text: "Parce que la sortie de perte interne du modèle est utilisée par défaut.", explain: " ", correct: true }, { text: "Parce que nous calculons les mesures après l'entraînement au lieu de le faire.", explain: "Nous le faisons souvent mais cela n'explique pas d'où vient la valeur de perte que nous optimisons dans l'entraînement." }, { text: "Parce que la perte est spécifiée dans model.fit().", explain: "La fonction de perte est toujours fixée une fois que vous exécutez model.compile() et ne peut pas être modifiée dans model.fit()." } ]} />

{/if}

10. Quand devez-vous pré-entraîner un nouveau modèle ?

<Question choices={[ { text: "Lorsqu'il n'y a pas de modèle pré-entraîné disponible pour votre langue spécifique.", explain: " ", correct: true }, { text: "Lorsque vous disposez d'un grand nombre de données, même s'il existe un modèle pré-entraîné qui pourrait fonctionner sur ces données.", explain: "Dans ce cas, vous devriez probablement utiliser le modèle pré-entraîné et le finetuner sur vos données afin d'éviter d'énormes coûts de calcul." }, { text: "Lorsque vous avez des doutes sur le biais du modèle pré-entraîné que vous utilisez.", explain: "C'est vrai mais vous devez vous assurer que les données que vous utiliserez pour l'entraînement sont vraiment meilleures.", correct: true }, { text: "Lorsque les modèles pré-entraînés disponibles ne sont tout simplement pas assez bons.", explain: "Vous êtes sûr d'avoir bien débogué votre entraînement ?" } ]} />

11. Pourquoi est-il facile de prétraîner un modèle de langage sur des batchs de textes ?

<Question choices={[ { text: "Parce qu'il y a beaucoup de textes disponibles sur internet.", explain: "Bien que vrai, cela ne répond pas vraiment à la question. Essayez encore !" }, { text: "Parce que l'objectif de pré-entraînement ne nécessite pas que les humains étiquettent les données.", explain: "La modélisation du langage est un problème autosupervisé.", correct: true }, { text: "Parce que la bibliothèque 🤗 Transformers ne nécessite que quelques lignes de code pour démarrer l'entraînement.", explain: "Bien que vrai, cela ne répond pas vraiment à la question posée. Essayez une autre réponse !" } ]} />

12. Quels sont les principaux défis lors du prétraitement des données pour une tâche de réponse à des questions ?

<Question choices={[ { text: "Vous devez tokeniser les entrées.", explain: "Mais est-ce vraiment un défi majeur ?" }, { text: "Vous devez faire face à des contextes très longs, qui donnent plusieurs caractéristiques d'entraînement qui peuvent ou non contenir la réponse.", explain: "C'est certainement l'un des défis à relever.", correct: true }, { text: "Vous devez tokeniser les réponses à la question ainsi que les entrées.", explain: "Non, à moins que vous ne formuliez votre problème de réponse aux questions comme une tâche de séquence à séquence." }, { text: "À partir de l'intervalle de réponse dans le texte, vous devez trouver le token de début et de fin dans l'entrée tokenisée.", explain: "C'est une des parties les plus difficiles, oui !", correct: true } ]} />

13. Comment le post-traitement est-il généralement effectué dans les réponses aux questions ?

<Question choices={[ { text: "Le modèle vous donne les positions de début et de fin de la réponse, et vous n'avez plus qu'à décoder la plage de tokens correspondant.", explain: "Ce pourrait être une façon de faire mais c'est un peu trop simpliste." }, { text: "Le modèle vous donne les positions de début et de fin de la réponse pour chaque caractéristique créée par un exemple et il vous suffit de décoder la plage de tokens correspondant dans celui qui a le meilleur score.", explain: "C'est proche du post-traitement que nous avons étudié, mais ce n'est pas tout à fait exact." }, { text: "Le modèle vous donne les positions de début et de fin de la réponse pour chaque caractéristique créée par un exemple et vous n'avez plus qu'à les faire correspondre à la portée dans le contexte de celui qui a le meilleur score.", explain: "C'est ça en résumé !", correct: true }, { text: "Le modèle génère une réponse et il vous suffit de la décoder.", explain: "A moins que vous ne formuliez votre problème de réponse aux questions comme une tâche de séquence à séquence." } ]} />

Xet Storage Details

Size:
14.3 kB
·
Xet hash:
46498f6cc2f07dd3f91192d1ad87fddb9fa4093903f0781e42139adfa34784c3

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