Buckets:

rtrm's picture
|
download
raw
12.5 kB

Quiz de fin de chapitre

1. Quel est l'ordre du pipeline de modélisation du langage ?

<Question choices={[ { text: " Tout d'abord, le modèle, qui traite le texte et renvoie des prédictions brutes. Puis le tokenizer donne un sens à ces prédictions et les reconvertit en texte si nécessaire.", explain: " Le modèle ne peut pas comprendre le texte ! Le tokenizer doit d'abord tokeniser le texte et le convertir en identifiants afin qu'il soit compréhensible par le modèle."}, { text: " Tout d'abord, le tokenizer, qui traite le texte et renvoie des identifiants. Puis le modèle traite ces identifiants et produit une prédiction, qui peut être du texte.", explain: " La prédiction du modèle ne peut pas être du texte immédiatement. Le tokenizer doit être utilisé afin de reconvertir la prédiction en texte !"}, { text: " Le tokenizer traite le texte et renvoie des identifiants. Le modèle traite ces identifiants et produit une prédiction. Le tokenizer peut alors être utilisé à nouveau pour reconvertir ces prédictions en texte.", explain: " Le tokenizer peut être utilisé à la fois pour la tokenisation et la dé-tokénisation.", correct: true } ]} />

2. Combien de dimensions le tenseur produit par le transformer de base possède-t-il et quelles sont-elles ?

<Question choices={[ { text: "2: la longueur de la séquence et la taille du batch", explain: "Le tenseur produit par le modèle possède une troisième dimension : la taille cachée." }, { text: "2: la longueur de la séquence et la taille cachée", explain: "Tous les transformers gèrent les batchs, même avec une seule séquence ce serait une taille de batch de 1 !" }, { text: "3: la longueur de la séquence, la taille du batch et la taille cachée.", explain: "", correct: true } ]} />

3. Lequel des éléments suivants est un exemple de tokenisation en sous-mots ?

<Question choices={[ { text: "WordPiece", explain: "Oui, c'est un exemple de tokenisation en sous-mots !", correct: true }, { text: "La tokenization basée sur les caractères", explain: "La tokenization basée sur les caractères n’est pas un type de tokenisation en sous-mots." }, { text: "Découpage sur les espaces et la ponctuation", explain: "C’est une tokenisation basée sur les mots !" }, { text: "BPE", explain: "Oui, c'est un exemple de tokenisation en sous-mots !", correct: true }, { text: "Unigram", explain: "Oui, c'est un exemple de tokenisation en sous-mots !", correct: true }, { text: "Aucune des propositions ci-dessus", explain: "" } ]} />

4. Qu'est-ce qu'une tête de modèle ?

<Question choices={[ { text: " Un composant du transformer de base qui redirige les tenseurs vers leurs couches correctes.", explain: "Il n'y a pas de tel composant." }, { text: "Également connu sous le nom de mécanisme d'auto-attention, il adapte la représentation d'un token en fonction des autres tokens de la séquence.", explain: "La couche d'auto-attention contient des têtes d'attention mais ce ne sont pas des têtes d'adaptation." }, { text: "Un composant supplémentaire, généralement constitué d'une ou plusieurs couches, pour convertir les prédictions du transformer en une sortie spécifique à la tâche.", explain: "Les têtes d'adaptation, aussi appelées simplement têtes, se présentent sous différentes formes : têtes de modélisation du langage, têtes de réponse aux questions, têtes de classification des séquences, etc.", correct: true } ]} />

{#if fw === 'pt'}

5. Qu'est-ce qu'un AutoModel?

<Question choices={[ { text: "Un modèle qui s'entraîne automatiquement sur vos données", explain: "Vous confondez cela avec notre produit <a href='https://huggingface.co/autotrain>AutoTrain" }, { text: "Un objet qui renvoie la bonne architecture basée sur le checkpoint .", explain: "Exactement : AutoModel a seulement besoin de connaître le checkpoint à partir duquel il doit s'initialiser pour retourner à la bonne architecture.", correct: true }, { text: "Un modèle qui détecte automatiquement la langue utilisée pour ses entrées afin de charger les bonnes pondérations.", explain: "Bien que certains checkpoints et modèles soient capables de gérer plusieurs langues, il n'existe pas d'outils intégrés pour la sélection automatique des checkpoints en fonction de la langue. Vous devez vous rendre sur le Hub des modèles pour trouver le meilleur checkpoint pour votre tâche !" } ]} />

{:else}

5. What is an AutoModel?

<Question choices={[ { text: "Un modèle qui s'entraîne automatiquement sur vos données", explain: "Vous confondez cela avec notre produit <a href='https://huggingface.co/autotrain>AutoTrain" }, { text: "Un objet qui renvoie la bonne architecture basée sur le checkpoint .", explain: "Exactement : TFAutoModel a seulement besoin de connaître le checkpoint à partir duquel il doit s'initialiser pour retourner à la bonne architecture.", correct: true }, { text: "Un modèle qui détecte automatiquement la langue utilisée pour ses entrées afin de charger les bonnes pondérations.", explain: "Bien que certains checkpoints et modèles soient capables de gérer plusieurs langues, il n'existe pas d'outils intégrés pour la sélection automatique des checkpoints en fonction de la langue. Vous devez vous rendre sur le Hub des modèles pour trouver le meilleur checkpoint pour votre tâche !" } ]} />

{/if}

6. Quelles sont les techniques à connaître lors de la mise en batch de séquences de longueurs différentes ?

<Question choices={[ { text: "La troncature", explain: " La troncature est une façon correcte d'égaliser les séquences pour qu'elles s'inscrivent dans une forme rectangulaire. Mais est-ce la seule ?", correct: true }, { text: "Retourner les tenseurs", explain: "Alors que les autres techniques vous permettent de renvoyer des tenseurs rectangulaires, retourner les tenseurs n'est pas utile lorsque vous mettez en batch des séquences." }, { text: "Le padding", explain: "Le padding est une façon correcte d'égaliser les séquences pour qu'elles tiennent dans une forme rectangulaire. Mais est-ce le seul moyen ?", correct: true }, { text: "Les masques d'attention ", explain: "Les masques d'attention sont d'une importance capitale lorsqu'on manipule des séquences de longueurs différentes. Ce n'est cependant pas la seule technique à laquelle il faut faire attention.", correct: true } ]} />

7. Quel est l'intérêt d'appliquer une fonction SoftMax aux logits produits par un modèle de classification de séquences ?

<Question choices={[ { text: "Elle adoucit les logits pour qu'ils soient plus fiables.", explain: "La fonction SoftMax n'affecte pas la fiabilité des résultats." }, { text: "Elle applique une limite inférieure et supérieure pour qu'ils soient compréhensibles.", explain: "Les valeurs résultantes sont comprises entre 0 et 1. Ce n'est cependant pas la seule raison pour laquelle nous utilisons une fonction SoftMax.", correct: true }, { text: "La somme totale des sorties est alors égale à 1, ce qui permet une interprétation probabiliste.", explain: "Mais ce n'est pas la seule raison pour laquelle nous utilisons une fonction SoftMax.", correct: true } ]} />

8. Autour de quelle méthode s'articule la majeure partie de l'API tokenizer ?

<Question choices={[ { text: "encode, car elle peut encoder du texte en identifiants et des identifiants en prédictions.", explain: "Bien que la méthode encode existe sur les tokenizer, elle n'existe pas sur les modèles." }, { text: "Appeler directement l'objet tokenizer", explain: "La méthode call du tokenizer est une méthode très puissante qui peut traiter à peu près tout. C'est également la méthode utilisée pour récupérer les prédictions d'un modèle.", correct: true }, { text: "pad", explain: "Le padding est très utile mais ce n'est qu'une partie de l'API tokenizer." }, { text: "tokenize", explain: "La méthode tokenize est est sans doute l'une des méthodes les plus utiles, mais elle ne constitue pas le cœur de l'API tokenizer." } ]} />

9. Que contient la variable result dans cet exemple de code ?

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
result = tokenizer.tokenize("Hello!")

<Question choices={[ { text: "Une liste de chaînes de caractères, chaque chaîne étant un token.", explain: "Convertissez cela en identifiants, et donnez-les à un modèle !", correct: true }, { text: "Une liste d'identifiants", explain: "C'est à cela que la méthode call ou la méthode convert_tokens_to_ids sert !" }, { text: "Une chaîne contenant tous les tokens", explain: "Ce serait sous-optimal car le but est de diviser la chaîne de caractères en plusieurs éléments." } ]} />

{#if fw === 'pt'}

10. Y a-t-il un problème avec le code suivant ?

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = AutoModel.from_pretrained("gpt2")

encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)

<Question choices={[ { text: "Non, ça semble correct.", explain: "Malheureusement, coupler un modèle avec un tokenizer qui a été entraîné avec un checkpoint différent est rarement une bonne idée. Le modèle n'a pas été entraîné pour donner du sens à la sortie de ce tokenizer donc la sortie du modèle (s'il peut même fonctionner !) n'aura aucun sens." }, { text: " Le tokenizer et le modèle doivent toujours provenir du même checkpoint.", explain: "", correct: true }, { text: " C'est une bonne pratique de faire du padding et de troncage avec le tokenizer car chaque entrée est un batch.", explain: "Il est vrai que chaque entrée de modèle doit être un batch. Cependant, tronquer ou compléter cette séquence n'aurait pas nécessairement de sens puisqu'il n'y en a qu'une seule. Il s'agit là de techniques permettant de mettre en batch une liste de phrases." } ]} />

{:else}

10. Y a-t-il un problème avec le code suivant ?

from transformers import AutoTokenizer, TFAutoModel

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = TFAutoModel.from_pretrained("gpt2")

encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)

<Question choices={[ { text: "Non, ça semble correct.", explain: "Malheureusement, coupler un modèle avec un tokenizer qui a été entraîné avec un checkpoint différent est rarement une bonne idée. Le modèle n'a pas été entraîné pour donner du sens à la sortie de ce tokenizer donc la sortie du modèle (s'il peut même fonctionner !) n'aura aucun sens." }, { text: " Le tokenizer et le modèle doivent toujours provenir du même checkpoint.", explain: "", correct: true }, { text: " C'est une bonne pratique de faire du padding et de troncage avec le tokenizer car chaque entrée est un batch.", explain: "Il est vrai que chaque entrée de modèle doit être un batch. Cependant, tronquer ou compléter cette séquence n'aurait pas nécessairement de sens puisqu'il n'y en a qu'une seule. Il s'agit là de techniques permettant de mettre en batch une liste de phrases." } ]} />

{/if}

Xet Storage Details

Size:
12.5 kB
·
Xet hash:
9525ae98c7d555bfcfc3b0c901bf2cc35c4a882fd902674f7dfd7c8820f2eaa4

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