# End-of-chapter quiz[[end-of-chapter-quiz]]

Testați-vă cunoștințele din acest capitol!

### 1. Dataset-ul `emotion` conține mesaje de pe Twitter etichetate cu emoții. Căutați-l în [Hub](https://huggingface.co/datasets) și citiți descrierea dataset-ului. Care dintre acestea nu este una dintre emoțiile sale de bază?

### 2. Căutați dataset-ul `ar_sarcasm` în [Hub](https://huggingface.co/datasets). Ce tip de sarcină suportă?

descrierea dataset-ului!"
		},
		{
			text: "Named entity recognition",
			explain: "Nu este corect — aruncați din nou o privire la descrierea dataset-ului!"
		},
        {
			text: "Răspuns la întrebări (Question answering)",
			explain: "Din păcate, nu ați răspuns corect. Încercați din nou!"
		}
	]}
/>

### 3. Cum se așteaptă modelul BERT ca o pereche de propoziții să fie procesată?

[SEP] pentru a separa cele două propoziții, dar nu este singurul lucru necesar!"
		},
		{
			text: "[CLS] Tokens_of_sentence_1 Tokens_of_sentence_2",
			explain: "Este nevoie de un token special [CLS] la început, dar nu este singurul lucru necesar!"
		},
		{
			text: "[CLS] Tokens_of_sentence_1 [SEP] Tokens_of_sentence_2 [SEP]",
			explain: "Corect!",
            correct: true
		},
        {
			text: "[CLS] Tokens_of_sentence_1 [SEP] Tokens_of_sentence_2",
			explain: "Este nevoie atât de un token special [CLS] la început, cât și de un token special [SEP] pentru a separa cele două propoziții, dar mai lipsește ceva!"
		}
	]}
/>

{#if fw === 'pt'}
### 4. Care sunt avantajele metodei `Dataset.map()`?

### 5. Ce înseamnă umplerea dinamică (dynamic padding)?

### 6. Care este scopul unei funcții de „collate"?

DataCollatorWithPadding în mod specific."
		},
		{
			text: "Reunește toate eșantioanele într-un batch.",
			explain: "Corect! Poți transmite funcția de collate ca argument al unui DataLoader. Am folosit funcția DataCollatorWithPadding, care împachetează toate elementele dintr-un batch astfel încât să aibă aceeași lungime.",
            correct: true
		},
		{
			text: "Preprocesează întregul set de date.",
			explain: "Aceasta ar fi o funcție de preprocessing, nu o funcție de collate."
		},
        {
			text: "Trunchiază secvențele din setul de date.",
			explain: "O funcție de collate se ocupă de manipularea batch-urilor individuale, nu a întregului set de date. Dacă sunteți interesați de trunchiere, puteți folosi argumentul truncate al tokenizer."
		}
	]}
/>

### 7. Ce se întâmplă când instanțiați una dintre clasele `AutoModelForXxx` cu un model de limbaj preantrenat (cum ar fi `bert-base-uncased`), care corespunde unei alte sarcini decât cea pentru care a fost antrenat?

AutoModelForSequenceClassification cu bert-base-uncased, am primit avertismente la instanțierea modelului. Head-ul preantrenat nu este folosit pentru sarcina de clasificare secvențială, așa că este eliminat și un nou head este instanțiat cu greutăți inițializate aleator.",
            correct: true
		},
		{
			text: "Head-ul modelului preantrenat este eliminat.",
			explain: "Mai trebuie să se întâmple și altceva. Încercați din nou!"
		},
        {
			text: "Nimic, pentru că modelul poate fi ajustat fin (fine-tuned) chiar și pentru o altă sarcină.",
			explain: "Head-ul preantrenat al modelului nu a fost antrenat pentru această sarcină, deci trebuie eliminat!"
		}
	]}
/>

### 8. Care este scopul folosirii `TrainingArguments`?

Trainer.",
			explain: "Corect!",
            correct: true
		},
		{
			text: "Specifică dimensiunea modelului.",
			explain: "Dimensiunea modelului este definită de configurația modelului, nu de clasa TrainingArguments."
		},
		{
			text: "Conține doar hiperparametrii folosiți pentru evaluare.",
			explain: "În exemplu, am specificat și unde va fi salvat modelul și checkpoint-urile. Încercați din nou!"
		},
        {
			text: "Conține doar hiperparametrii folosiți pentru antrenare.",
			explain: "În exemplu, am folosit și un evaluation_strategy, așadar acest lucru afectează evaluarea. Încercați din nou!"
		}
	]}
/>

### 9. De ce ar trebui să folosiți biblioteca 🤗 Accelerate?

Trainer, nu cu biblioteca 🤗 Accelerate. Încercați din nou!"
		},
		{
			text: "Face ca buclele noastre de antrenament să funcționeze pe strategii distribuite.",
			explain: "Corect! Cu 🤗 Accelerate, buclele voastre de antrenament vor funcționa pentru mai multe GPU-uri și TPU-uri.",
            correct: true
		},
        {
			text: "Oferă mai multe funcții de optimizare.",
			explain: "Nu, biblioteca 🤗 Accelerate nu oferă nicio funcție de optimizare."
		}
	]}
/>

{:else}
### 4. Ce se întâmplă când instanțiați una dintre clasele `TFAutoModelForXxx` cu un model de limbaj preantrenat (cum ar fi `bert-base-uncased`), care corespunde unei alte sarcini decât cea pentru care a fost antrenat?

TFAutoModelForSequenceClassification cu bert-base-uncased, am primit avertismente la instanțierea modelului. Head-ul preantrenat nu este folosit pentru sarcina de clasificare secvențială, așa că este eliminat și un nou head este instanțiat cu greutăți inițializate aleator.",
            correct: true
		},
		{
			text: "Head-ul modelului preantrenat este eliminat.",
			explain: "Mai trebuie să se întâmple și altceva. Încercați din nou!"
		},
        {
			text: "Nimic, pentru că modelul poate fi ajustat fin (fine-tuned) chiar și pentru o altă sarcină.",
			explain: "Head-ul preantrenat al modelului nu a fost antrenat pentru această sarcină, deci trebuie eliminat!"
		}
	]}
/>

### 5. Modelele TensorFlow din `transformers` sunt deja modele Keras. Ce avantaj oferă acest lucru?

TPUStrategy, inclusiv inițializarea modelului."
		},
		{
			text: "Puteți valorifica metodele existente precum compile(), fit() și predict().",
			explain: "Corect! Odată ce aveți datele, antrenarea necesită foarte puțin efort.",
            correct: true
		},
		{
			text: "Învățați atât Keras, cât și transformers.",
			explain: "Corect, dar căutăm altceva :)",
			correct: true
		},
        {
			text: "Puteți calcula cu ușurință metrici legate de dataset.",
			explain: "Keras ne ajută la antrenarea și evaluarea modelului, nu la calcularea metricilor legate de dataset."
		}
	]}
/>

### 6. Cum vă puteți defini propria metrică personalizată?

tf.keras.metrics.Metric.",
			explain: "Perfect!",
			correct: true
		},
		{
			text: "Folosind API-ul funcțional Keras.",
			explain: "Mai încearcă!"
		},
		{
			text: "Folosind o funcție apelabilă cu semnătura metric_fn(y_true, y_pred).",
			explain: "Corect!",
			correct: true
		},
        {
			text: "Căutând pe Google.",
			explain: "Nu este răspunsul pe care îl căutăm, dar probabil v-ar putea ajuta să-l găsiți.",
			correct: true
		}
	]}
/>

{/if}

