Buckets:

rtrm's picture
|
download
raw
11.6 kB

Quiz di fine capitolo

Testiamo cosa avete imparato in questo capitolo!

1. Il dataset emotion contiene messaggi Twitter etichettati con emozioni. Cercalo nel Hub e leggi la carta del dataset. Quale di queste non fa parte delle sue emozioni di base?

<Question choices={[ { text: "Joy (Gioia)", explain: "Prova ancora — questa emozione è contenuta nel dataset!" }, { text: "Love (Amore)", explain: "Prova ancora — questa emozione è contenuta nel dataset!" }, { text: "Confusion (Confusione)", explain: "Corretto! Confusion non è una della sei emozioni di base.", correct: true }, { text: "Surprise (Sorpresa)", explain: "Sorpresa! Prova ancora!" } ]} />

2. Cerca il dataset ar_sarcasm nel Hub. Quali compiti supporta?

<Question choices={[ { text: "Sentiment classification (Classificazione dei sentimenti)", explain: "Corretto! Si capisce dai tag.", correct: true }, { text: "Machine translation (Traduzione automatica)", explain: "Sbagliato — dai un'altra occhiata alla dataset card!" }, { text: "Named entity recognition (Riconoscimento di entità con un nome)", explain: "Sbagliato — dai un'altra occhiata alla dataset card!" }, { text: "Question answering (Risposte a domande)", explain: "Purtroppo non hai risposto correttamente. Prova ancora!" } ]} />

3. Come deve essere preparata una coppia di frasi per essere processata dal modello BERT?

<Question choices={[ { text: "Tokens_della_frase_1 [SEP] Tokens_della_frase_2", explain: "Un token speciale [SEP] è necessario per separare le due frasi, ma non è l'unica cosa!" }, { text: "[CLS] Tokens_della_frase_1 Tokens_della_frase_2", explain: "Un token speciale [CLS] è necessario all'inizio, ma non è l'unica cosa!" }, { text: "[CLS] Tokens_della_frase_1 [SEP] Tokens_della_frase_2 [SEP]", explain: "Corretto!", correct: true }, { text: "[CLS] Tokens_della_frase_1 [SEP] Tokens_della_frase_2", explain: "Un token speciale [CLS] è necessario all'inizio e un token speciale [SEP] è necessario per separare le due frasi, ma non è l'unica cosa!" } ]} />

{#if fw === 'pt'}

4. Quali sono i benefici del metodo Dataset.map()?

<Question choices={[ { text: "I risultati della funzione vengono conservati, così la ri-esecuzione del codice sarà rapidissima", explain: "Questo è sicuramente uno dei benefici di questo metodo! Ma non è l'unico...", correct: true }, { text: "È possibile applicare multiprocessing per un'esecuzione più rapida rispetto all'applicazione seriale ad ogni elemento del dataset", explain: "Questo è sicuramente uno dei benefici di questo metodo! Ma non è l'unico...", correct: true }, { text: "Non carica l'intero dataset in memoria, salvando i risultati appena ogni elemento è stato processato.", explain: "Questo è sicuramente uno dei benefici di questo metodo! Ma non è l'unico...", correct: true }, ]} />

5. Qual è il significato di padding dinamico (dynamic padding)?

<Question choices={[ { text: "È quando si applica in ogni batch il padding fino alla lunghezza massima dell'intero dataset", explain: "Riguarda il padding per ogni batch, ma non fino alla lunghezza massima dell'intero dataset." }, { text: "È quando si applica in ogni batch il padding fino alla lunghezza massima delle frasi in quella batch", explain: "Corretto! la parte "dinamica" viene dal fatto che la dimensione per ogni batch viene determinata al momento della creazione, e quindi le batch potrebbero avere dimensioni differenti.", correct: true }, { text: "È quando si applica il padding agli input in modo che ogni frase abbia lo stesso numero di token della frase precedente nel dataset.", explain: "Sbagliato. In più non avrebbe senso considerare l'ordine del dataset dato che lo rimischiamo durante l'apprendimento." }, ]} />

6. Qual è lo scopo di una funzione di raccolta (collate function)?

<Question choices={[ { text: "Di assicurarsi che tutte le sequenze nel dataset abbiano la stessa lunghezza.", explain: "Una funzione di raccolta gestisce solo batch individuali, non l'intero dataset. In più, si sta parlando di funzioni di raccolta in generale, e non specificatamente di DataCollatorWithPadding." }, { text: "Di raccogliere tutti i campioni in una batch.", explain: "Corretto! Puoi passare la funzione di raccolta come argomento di un DataLoader. Noi abbiamo usato la funzione DataCollatorWithPadding, che applica padding a tutti gli elementi di una batch affinché abbiano la stessa lunghezza.", correct: true }, { text: "Di preprocessare l'intero dataset", explain: "Quella sarebbe una funzione di preprocessing, non di raccolta." }, { text: "Di troncare le sequenze nel dataset.", explain: "Una funzione di raccolta gestisce solo batch individuali, non l'intero dataset. Se siete interessati al troncamento, potete usare l'argomento truncate del tokenizer." } ]} />

7. Cosa succede quando una classe di tipo AutoModelForXxx viene istanziata con un modello di linguaggio pre-addestrato (come bert-base-uncased) che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?

<Question choices={[ { text: "Nulla, ma viene mostrato un avvertimento", explain: "L'avvertimento non è 'l'unica cosa!" }, { text: "La testa del modello pre-addestrato viene scartata e una nuova testa, appropriata per il compito, viene inserita al suo posto", explain: "Corretto. Ad esempio, quando abbiamo usato AutoModelForSequenceClassification con bert-base-uncased, abbiamo ottenuto un avvertimento mentre il modello veniva istanziato. La testa pre-addestrata non viene usata per il compito di classificazione delle sequenze, ma viene scartata e una nuova testa viene istanziata con pesi casuali.", correct: true }, { text: "La testa del modello pre-addestrato viene scartata", explain: "Deve succedere anche qualcos'altro. Prova ancora!" }, { text: "Nulla, dato che il modello può comunque essere affinato per un compito differente.", explain: "La testa del modello pre-addestrato non era stata addestrata per risolvere questo compito, quindi dovremmo scartarla!" } ]} />

8. Qual è lo scopo di TrainingArguments?

<Question choices={[ { text: "Contiene tutti gli iperparametri usati per l'addestramento e la valutazione con il Trainer.", explain: "Corretto!", correct: true }, { text: "Specifica le dimensioni del modello.", explain: "Le dimensioni del modello sono definite dalla configurazione del modello, non dalla classe TrainingArguments." }, { text: "Contiene soltanto gli iperparametri usati per la valutazione.", explain: "Nell'esempio, abbiamo specificato anche dove salvare il modello e i suoi checkpoint. Prova ancora!" }, { text: "Contiene soltanto gli iperparametri usati per l'addestramento.", explain: "Nell'esempio, abbiamo usato anche una evaluation_strategy (stragia di valutazione). Prova ancora!" } ]} />

9. Perché si dovrebbe usare la libreria 🤗 Accelerate?

<Question choices={[ { text: "Fornisce l'accesso a modelli più veloci.", explain: "No, la libreria 🤗 Accelerate non fornisce l'accesso ad alcun modello" }, { text: "Fornisce una API di alto livello, così non devo implementare il mio ciclo di addestramento.", explain: "Questa è la funzionalità del Trainer, non della libreria 🤗 Accelerate. Prova ancora!" }, { text: "Permette ai nostri cicli di addestramento di venire eseguiti con strategie distribuite.", explain: "Corretto! Con 🤗 Accelerate, i tuoi cicli di addestramento funzioneranno con svariate GPU e TPU.", correct: true }, { text: "Fornisce altre funzioni di ottimizzazione.", explain: "No, la libreria 🤗 Accelerate library non fornisce alcuna funzione di ottimizzazione." } ]} />

{:else}

4. Cosa succede quando una classe di tipo TFAutoModelForXxx viene istanziata con un modello di linguaggio pre-addestrato (come bert-base-uncased) che corrisponde ad un compito differente rispetto a quello per cui era stato addestrato?

<Question choices={[ { text: "Nulla, ma viene mostrato un avvertimento", explain: "L'avvertimento non è l'unica cosa!" }, { text: "La testa del modello pre-addestrato viene scartata e una nuova testa, appropriata per il compito, viene inserita al suo posto", explain: "Corretto. Ad esempio, quando abbiamo usato TFAutoModelForSequenceClassification con bert-base-uncased, abbiamo ottenuto un avvertimento mentre il modello veniva istanziato. La testa pre-addestrata non viene usata per il compito di classificazione delle sequenze, ma viene scartata e una nuova testa viene istanziata con pesi casuali.", correct: true }, { text: "La testa del modello pre-addestrato viene scartata", explain: "Deve succedere anche qualcos'altro. Prova ancora!" }, { text: "Nulla, dato che il modello può comunque essere affinato per un compito differente.", explain: "La testa del modello pre-addestrato non era stata addestrata per risolvere questo compito, quindi dovremmo scartarla!" } ]} />

5. I modelli Tensorflow da transformers sono già dei modelli Keras. Quali benefici offre ciò?

<Question choices={[ { text: "I modelli funzionano automaticamente su una TPU.", explain: "Quasi! Sono richiesti alcuni cambiamenti. Ad esempio, bisogna eseguire tutto all'interno di uno scope TPUStrategy, incluso l'inizializzazione del modello" }, { text: "Si possono sfruttare metodi già esistenti quali compile(), fit(), e predict().", explain: "Correto! Una volta ottenuti i dati, l'addestramento richiede molto poco sforzo.", correct: true }, { text: "Puoi imparare Keras in aggiunta ai transformers.", explain: "Corretto, anche se cercavamo qualcosa in pù :)", correct: true }, { text: "Si possono calcolare facilmente delle metriche relative al dataset", explain: "Keras è d'aiuto nell'addestramento e valutazione del modello, non nel calcolare metriche relative al dataset." } ]} />

6. Come si definisce una metrica personalizzata (custom metric)?

<Question choices={[ { text: "Creando una sottoclasse di tf.keras.metrics.Metric.", explain: "Ottimo!", correct: true }, { text: "Usando l'API funzionale di Keras", explain: "Prova ancora!" }, { text: "Utilizzando una funzione con segnatura metric_fn(y_true, y_pred).", explain: "Corretto!", correct: true }, { text: "Chiedendo a Google", explain: "Non è la risposta che cercavamo, ma dovrebbe comunque aiutarvi a risolvere il problema.", correct: true } ]} />

{/if}

Xet Storage Details

Size:
11.6 kB
·
Xet hash:
0bd0074d13e22e047fc2645745f97d9374099505909b53eb4af19cd7785daba0

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