Buckets:

rtrm's picture
|
download
raw
12.3 kB

Quiz de final de capítulo

A ver qué has aprendido en este capítulo:

1. El dataset emotion contiene mensajes de Twitter etiquetados con emociones. Búscalo en el Hub, y lee la tarjeta del dataset. ¿Cuál de estas no es una de sus emociones básicas?

<Question choices={[ { text: "Alegría", explain: "Inténtalo de nuevo: ¡esta emoción sí está presente en ese dataset!", }, { text: "Amor", explain: "Inténtalo de nuevo: ¡esta emoción sí está presente en ese dataset!", }, { text: "Confusión", explain: "¡Correcto! La confusión no es una de las seis emociones básicas.", correct: true, }, { text: "Sorpresa", explain: "¡Sorpresa! Inténtalo de nuevo.", }, ]} />

2. Busca el dataset ar_sarcasm en el Hub. ¿Con qué tarea es compatible?

<Question choices={[ { text: "Clasificación de sentimientos", explain: "¡Correcto! Dale las gracias a las etiquetas.", correct: true, }, { text: "Traducción automática", explain: "No es correcto, echa otro vistazo a la tarjeta del dataset.", }, { text: "Reconocimiento de entidades nombradas", explain: "No es correcto, echa otro vistazo a la tarjeta del dataset.", }, { text: "Responder preguntas", explain: "No es correcto, echa otro vistazo a la tarjeta del dataset.", }, ]} />

3. ¿Cómo se procesan un par de frases según el modelo BERT?

<Question choices={[ { text: "tokens_frase_1 [SEP] tokens_frase_2", explain: "Se necesita un token especial [SEP] para separar las dos frases, ¡pero falta algo más!", }, { text: "[CLS] tokens_frase_1 tokens_frase_2", explain: "Se necesita un token especial [CLS] al principio, ¡pero falta algo más!", }, { text: "[CLS] tokens_frase_1 [SEP] tokens_frase_2 [SEP]", explain: "¡Correcto!", correct: true, }, { text: "[CLS] tokens_frase_1 [SEP] tokens_frase_2", explain: "Se necesita un token especial [CLS] al principio y un token especial [SEP] para separar las dos frases, ¡pero falta algo más!", }, ]} />

{#if fw === 'pt'}

4. ¿Cuáles son las ventajas del método Dataset.map()?

<Question choices={[ { text: "Los resultados de la función se almacenan en caché, por lo que no tardaremos nada en volver a ejecutar el código.", explain: "Esta es una de las grandes ventajas de este método. Aunque no es la única...", correct: true, }, { text: "Puede aplicar multiprocesamiento para ir más rápido que si se aplicara la función a cada elemento del conjunto de datos.", explain: "Esta es una característica interesante de este método, ¡pero no es la única.", correct: true, }, { text: "No carga todo el conjunto de datos en memoria, sino que guarda los resultados en cuanto se procesa un elemento.", explain: "Es una de las ventajas de este método, ¡pero hay más!", correct: true, }, ]} />

5. ¿Qué significa padding dinámico?

<Question choices={[ { text: "Es cuando se rellenan las entradas de cada lote con la longitud máxima de todo el conjunto de datos.", explain: "Sí que implica rellenar al crear el lote, pero no hasta la longitud máxima en todo el conjunto de datos.", }, { text: "Es cuando rellenas tus entradas cuando se crea el lote, a la longitud máxima de las frases de ese lote.", explain: '¡Correcto! La parte "dinámica" proviene del hecho de que el tamaño de cada lote se determina en el momento de la creación, y como resultado todos sus lotes pueden tener diferentes formas.', correct: true, }, { text: "Es cuando se rellenan las entradas para que cada frase tenga el mismo número de tokens que la anterior en el conjunto de datos.", explain: "Incorrecto, no tiene sentido mirar el orden de las muestras del conjunto de datos ya que lo barajamos durante el entrenamiento.", }, ]} />

6. ¿Cuál es el objetivo de la función "collate"?

<Question choices={[ { text: "Se asegura de que todas las secuencias del conjunto de datos tengan la misma longitud.", explain: 'Una función "collate" está relacionada con el procesamiento de lotes individuales, no del conjunto de datos al completo. Además, estamos hablando de funciones "collate" genéricas, no DataCollatorWithPadding en especial.', }, { text: "Combina todas las muestras del conjunto de datos en un lote.", explain: '¡Correcto! Puedes pasar una función "collate" como argumento a un DataLoader. Nosotros usamos la función DataCollatorWithPadding, que rellena todos los elementos de un lote para que tengan la misma longitud.', correct: true, }, { text: "Preprocesa todo el conjunto de datos.", explain: 'Eso sería una función de preprocesamiento, no una función "collate".', }, { text: "Trunca las secuencias del conjunto de datos.", explain: 'Una función "collate" está relacionada con el procesamiento de lotes individuales, no del conjunto de datos completo. Si quieres truncar, puedes utilizar el argumento truncate del tokenizer.', }, ]} />

7. ¿Qué ocurre cuando instancias una de las clases AutoModelForXxx con un modelo del lenguaje preentrenado (como bert-base-uncased) que corresponde a una tarea distinta de aquella para la que fue entrenado?

<Question choices={[ { text: "Nada, pero recibes una advertencia.", explain: "Recibes una advertencia, pero eso no es todo.", }, { text: "La cabeza del modelo preentrenado se elimina y en su lugar se inserta una nueva cabeza adecuada para la tarea.", explain: "Correcto. Por ejemplo, cuando usamos AutoModelForSequenceClassification con bert-base-uncased, recibimos una advertencia al instanciar el modelo. La cabeza preentrenada no se puede utilizar para la tarea de clasificación de secuencias, por lo que es eliminada y se instancia una nueva cabeza con pesos aleatorios.", correct: true, }, { text: "La cabeza del modelo preentrenado es eliminada.", explain: "Se necesita hacer algo más, inténtalo de nuevo.", }, { text: "Nada, ya que el modelo se puede seguir ajustando para la otra tarea.", explain: "La cabeza del modelo preentrenado no fue entrenada para resolver esta tarea, ¡así que deberíamos eliminarla!", }, ]} />

8. ¿Para qué sirve TrainingArguments?

<Question choices={[ { text: "Contiene todos los hiperparámetros utilizados para el entrenamiento y la evaluación con Trainer.", explain: "¡Correcto!", correct: true, }, { text: "Especifica el tamaño del modelo.", explain: "El tamaño del modelo viene definido por la configuración del modelo, no por la clase TrainingArguments.", }, { text: "Solo contiene los hiperparámetros utilizados para la evaluación.", explain: "En el ejemplo especificamos dónde se guardarán el modelo y sus checkpoints. ¡Inténtalo de nuevo!", }, { text: "Solo contiene los hiperparámetros utilizados para el entrenamiento.", explain: "En el ejemplo también utilizamos evaluation_strategy, que afecta a la evaluación. ¡Inténtalo de nuevo!", }, ]} />

9. ¿Por qué deberías utilizar la librería 🤗 Accelerate?

<Question choices={[ { text: "Facilita acceso a modelos más rápidos.", explain: "No, la librería 🤗 Accelerate library no proporciona modelos.", }, { text: "Proporciona una API de alto nivel para que no tenga que implementar mi propio bucle de entrenamiento.", explain: "Eso es lo que hicimos con Trainer, no con la librería 🤗 Accelerate. ¡Vuelve a intentarlo!", }, { text: "Hace que nuestros bucles de entrenamiento funcionen con estrategias distribuidas.", explain: "¡Correcto! Con 🤗 Accelerate, tus bucles de entrenamiento funcionarán para múltiples GPUs y TPUs.", correct: true, }, { text: "Ofrece más funciones de optimización.", explain: "No, la librería 🤗 Accelerate no proporciona ninguna función de optimización.", }, ]} />

{:else}

4. ¿Qué ocurre cuando instancias una de las clases TFAutoModelForXxx con un modelo del lenguaje preentrenado (como bert-base-uncased) que corresponde a una tarea distinta de aquella para la que fue entrenado?

<Question choices={[ { text: "Nada, pero recibes una advertencia.", explain: "Recibes una advertencia, pero eso no es todo.", }, { text: "La cabeza del modelo preentrenado se elimina y en su lugar se inserta una nueva cabeza adecuada para la tarea.", explain: "Correcto. Por ejemplo, cuando usamos TFAutoModelForSequenceClassification con bert-base-uncased, recibimos una advertencia al instanciar el modelo. La cabeza preentrenada no se puede utilizar para la tarea de clasificación de secuencias, por lo que es eliminada y se instancia una nueva cabeza con pesos aleatorios.", correct: true, }, { text: "La cabeza del modelo preentrenado es eliminada", explain: "Se necesita hacer algo más, inténtalo de nuevo.", }, { text: "Nada, ya que el modelo se puede seguir ajustando para la otra tarea.", explain: "La cabeza del modelo preentrenado no fue entrenada para resolver esta tarea, ¡así que deberíamos eliminarla!", }, ]} />

5. Los modelos TensorFlow de transformers ya son modelos Keras. ¿Qué ventajas ofrece esto?

<Question choices={[ { text: "Los modelos funcionan directamente en una TPU.", explain: "¡Casi! Se necesitan unos pequeños cambios adicionales. Por ejemplo, es necesario ejecutar todo en un entorno TPUStrategy, incluyendo la inicialización del modelo.", }, { text: "Puede aprovechar los métodos existentes, como compile(), fit() y predict().", explain: "¡Correcto! Una vez que tienes los datos, entrenar el modelo requiere muy poco esfuerzo.", correct: true, }, { text: "Tienes la oportunidad de aprender Keras a la vez que transformadores.", explain: "Correcto, pero estamos buscando otra respuesta :)", correct: true, }, { text: "Puede calcular fácilmente las métricas relacionadas con el dataset.", explain: "Keras nos ayuda con el entrenamiento y la evaluación del modelo, no con el cálculo de métricas relacionadas con el dataset.", }, ]} />

6. ¿Cómo puedes definir tu propia métrica personalizada?

<Question choices={[ { text: "Creando una subclase de tf.keras.metrics.Metric.", explain: "¡Genial!", correct: true, }, { text: "Utilizando la API funcional de Keras.", explain: "¡Inténtalo de nuevo!", }, { text: "Utilizando una función cuya firma sea metric_fn(y_true, y_pred).", explain: "¡Correcto!", correct: true, }, { text: "Buscándolo en Google.", explain: "Esta no es la respuesta que estamos buscando, pero te podría ayudar a encontrarla.", correct: true, }, ]} />

{/if}

Xet Storage Details

Size:
12.3 kB
·
Xet hash:
c27a29b18d68b0acc36b48c1381a587547802122eb95ec35aefef6a935eb9e98

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