# Quiz de fin de chapitre

Ce chapitre a couvert beaucoup de terrain ! Ne vous inquiétez pas si vous n'avez pas saisi tous les détails, les chapitres suivants vous aideront à comprendre comment les choses fonctionnent sous le capot.

Avant de poursuivre, testons ce que vous avez appris dans ce chapitre.

### 1. La fonction `load_dataset()` dans 🤗 *Datasets* vous permet de charger un jeu de données depuis lequel des emplacements suivants ?

data_files de load_dataset() pour charger les jeux de données locaux.",
			correct: true
		},
		{
			text: "Le Hub d’Hugging Face.",
			explain: "Vous pouvez charger des jeux de données sur le Hub  en fournissant l'ID du jeu de données. Par exemple : load_dataset('emotion').",
			correct: true
		},
		{
			text: "Un serveur distant.",
			explain: "Vous pouvez passer des URLs à l'argument data_files de load_dataset() pour charger des fichiers distants.",
			correct: true
		},
	]}
/>

### 2. Supposons que vous chargiez l'une des tâches du jeu de données GLUE comme suit :

```py
from datasets import load_dataset

dataset = load_dataset("glue", "mrpc", split="train")
```

Laquelle des commandes suivantes produira un échantillon aléatoire de 50 éléments à partir de `dataset` ?

dataset.sample(50)",
			explain: "Il n'y a pas de méthode Dataset.sample()."
		},
		{
			text: "dataset.shuffle().select(range(50))",
			explain: "Comme vous l'avez vu dans ce chapitre, vous mélangez d'abord le jeu de données puis sélectionnez les échantillons à partir de celui-ci.",
			correct: true
		},
		{
			text: "dataset.select(range(50)).shuffle()",
			explain: "Bien que le code s'exécute, il ne mélange que les 50 premiers éléments du jeu de données."
		}
	]}
/>

### 3. Supposons que vous disposiez d'un jeu de données sur les animaux domestiques appelé `pets_dataset` qui comporte une colonne `name` indiquant le nom de chaque animal. Parmi les approches suivantes, laquelle vous permettrait de filtrer le jeu de données pour tous les animaux dont le nom commence par la lettre « L » ?

pets_dataset.filter(lambda x : x['name'].startswith('L'))",
			explain: "L'utilisation d'une fonction Python lambda pour ces filtres rapides est une excellente idée. Pouvez-vous penser à une autre solution ?",
			correct: true
		},
		{
			text: "pets_dataset.filter(lambda x['name'].startswith('L'))",
			explain: "Une fonction lambda prend la forme générale lambda *arguments* : *expression*, vous devez donc fournir des arguments dans ce cas."
		},
		{
			text: "Créer une fonction comme def filter_names(x): return x['name'].startswith('L') et exécuter pets_dataset.filter(filter_names).",
			explain: "Tout comme avec Dataset.map(), vous pouvez passer des fonctions explicites à Dataset.filter(). Ceci est utile lorsque vous avez une logique complexe qui ne convient pas à une fonction lambda courte. Parmi les autres solutions, laquelle fonctionnerait ?",
			correct: true
		}
	]}
/>

### 4. Qu'est-ce que le *memory mapping* ?

mapping entre la RAM CPU et GPU.",
			explain: "Ce n'est pas ça, réessayez !",
		},
		{
			text: "Un mapping entre la RAM et le stockage du système de fichiers.",
			explain: "🤗 Datasets traite chaque jeu de données comme un fichier mappé en mémoire. Cela permet à la bibliothèque d'accéder et d'opérer sur des éléments du jeu de données sans avoir à le charger complètement en mémoire.",
			correct: true
		},
		{
			text: "Un mapping entre deux fichiers dans le cache 🤗 Datasets.",
			explain: "Ce n'est pas ça, réessayez !"
		}
	]}
/>

### 5. Parmi les éléments suivants, lesquels sont les principaux avantages du *memory mapping* ?

Datasets d'être extrêmement rapide. Ce n'est cependant pas le seul avantage.",
			correct: true
		},
		{
			text: "Les applications peuvent accéder à des segments de données dans un fichier extrêmement volumineux sans avoir à lire tout le fichier dans la RAM au préalable.",
			explain: "Cela permet à 🤗 Datasets de charger des jeux de données de plusieurs Go sur votre ordinateur portable sans faire exploser votre CPU. Quel autre avantage cette technique offre-t-elle ?",
			correct: true
		},
		{
			text: "Cela consomme moins d'énergie, donc votre batterie dure plus longtemps.",
			explain: "Ce n'est pas ça, réessayez !"
		}
	]}
/>

### 6. Pourquoi le code suivant échoue-t-il ?

```py
from datasets import load_dataset

dataset = load_dataset("allocine", streaming=True, split="train")
dataset[0]
```

IterableDataset.",
			explain: "Un IterableDataset est un générateur, pas un conteneur. Vous devez donc accéder à ses éléments en utilisant next(iter(dataset)).",
			correct: true
		},
		{
			text: "Le jeu de données allocine n'a pas d’échantillon train.",
			explain: "Consultez le jeu de données allocine sur le Hub (https://huggingface.co/datasets/allocine) pour voir quels échantillons il contient."
		}
	]}
/>

### 7. Parmi les avantages suivants, lesquels sont les principaux pour la création d'une fiche pour les jeux de données ?

### 8. Qu'est-ce que la recherche sémantique ?

recherche lexicale et c'est ce que vous voyez généralement avec les moteurs de recherche traditionnels."
		},
		{
			text: "Un moyen de rechercher des documents correspondants en comprenant la signification contextuelle d'une requête.",
			explain: "La recherche sémantique utilise des vecteurs d’enchâssement pour représenter les requêtes et les documents. Elle utilise ensuite une métrique de similarité pour mesurer la quantité de chevauchement entre eux. Comment la décrire autrement ?",
			correct: true
		},
		{
			text: "Un moyen d'améliorer la précision de la recherche.",
			explain: "Les moteurs de recherche sémantique peuvent capturer l'intention d'une requête bien mieux que la correspondance des mots clés et récupèrent généralement les documents avec une plus grande précision. Mais ce n'est pas la seule bonne réponse. Qu'est-ce que la recherche sémantique apporte d'autre ?",
			correct: true
		}
	]}
/>

### 9. Pour la recherche sémantique asymétrique, vous avez généralement :

### 10. Puis-je utiliser 🤗 *Datasets* pour charger des données à utiliser dans d'autres domaines, comme le traitement de la parole ?

Datasets prend actuellement en charge les données tabulaires, l'audio et la vision par ordinateur. Consultez le jeu de données MNIST sur le Hub pour un exemple de vision par ordinateur."
		},
		{
			text: "Oui.",
			explain: "Découvrez les développements passionnants concernant la parole et la vision dans la bibliothèque 🤗 Transformers pour voir comment 🤗 Datasets est utilisé dans ces domaines.",
			correct : true
		},
	]}
/>

