Buckets:

rtrm's picture
|
download
raw
9.51 kB
# Quiz de final de capítulo
<CourseFloatingBanner
chapter={5}
classNames="absolute z-10 right-0 top-0"
/>
¡Vimos muchas cosas en este capítulo! No te preocupes si no te quedaron claros todos los detalles; los siguientes capítulos te ayudarán a entender cómo funcionan las cosas internamente.
Antes de seguir, probemos lo que aprendiste en este capítulo:
### 1. ¿Desde qué ubicaciones te permite cargar datasets la función `load_dataset()` en 🤗 Datasets?
<Question
choices={[
{
text: "Localmente, e.g. en tu computador",
explain:Correcto! Puedes pasar las rutas de archivos locales al argumento <code>data_files</code> de <code>load_dataset()</code> para cargar datasets locales.",
correct: true
},
{
text: "El Hub de Hugging Face",
explain: "¡Correcto! Puedes cargar datasets del Hub pasando el ID del dataset, e.g. <code>load_dataset('emotion')</code>.",
correct: true
},
{
text: "Un servidor remoto",
explain: "¡Correcto! Puedes pasar URL al argumento <code>data_files</code> de la función <code>load_dataset()</code> para cargar archivos remotos.",
correct: true
},
]}
/>
### 2. Supón que cargas una de las tareas de GLUE así:
```py
from datasets import load_dataset
dataset = load_dataset("glue", "mrpc", split="train")
```
¿Cuál de los siguientes comandos a a producir una muestra aleatoria de 50 elementos de `dataset`?
<Question
choices={[
{
text: "<code>dataset.sample(50)</code>",
explain: "Esto es incorrecto. No hay un método <code>Dataset.sample()</code>."
},
{
text: "<code>dataset.shuffle().select(range(50))</code>",
explain: "¡Correcto! Como viste en el capítulo, primero tienes que ordenar aleatoriamente el dataset y luego seleccionar las muestras.",
correct: true
},
{
text: "<code>dataset.select(range(50)).shuffle()</code>",
explain: "Esto es incorrecto. Si bien el código se va a ejecutar, sólo va a ordenar aleatoriamente los primeros 50 elementos del dataset."
}
]}
/>
### 3. Supón que tienes un dataset sobre mascotas llamado `pets_dataset`, que tiene una columna `name` que contiene el nombre de cada mascota. ¿Cuál de los siguientes acercamientos te permitiría filtrar el dataset para todas las mascotas cuyos nombres comienzan con la letra "L"?
<Question
choices={[
{
text: "<code>pets_dataset.filter(lambda x : x['name'].startswith('L'))</code>",
explain: "¡Correcto! Usar una función lambda de Python para este tipo de filtros es una gran idea. ¿Se te ocurre otra solución?",
correct: true
},
{
text: "<code>pets_dataset.filter(lambda x['name'].startswith('L'))</code>",
explain: "Esto es incorrecto. Una función lambda toma la forma general <code>lambda *arguments* : *expression*</code>, así que tienes que definir los argumentos en este caso."
},
{
text: "Crear una función como <code>def filter_names(x): return x['name'].startswith('L')</code> y ejecutar <code>pets_dataset.filter(filter_names)</code>.",
explain: "¡Correcto! Justo como con <code>Dataset.map()</code>, puedes pasar funciones explícitas a <code>Dataset.filter()</code>. Esto es útil cuando tienes una lógica compleja que no es adecuada para una función lambda. ¿Cuál de las otras soluciones podría funcionar?",
correct: true
}
]}
/>
### 4. ¿Qué es la proyección en memoria (_memory mapping_)?
<Question
choices={[
{
text: "Un mapeo entre la RAM de la CPU y la GPU",
explain:Incorrecto! intenta de nuevo.",
},
{
text: "Un mapeo entre la RAM y el sistema de almacenamiento de archivos",
explain:Correcto! 🤗 Datasets trata cada dataset como un archivo proyectado en memoria. Esto le permite a la librería acceder y operar sobre los elementos del dataset sin necesidad de cargarlo por completo en memoria.",
correct: true
},
{
text: "Un mapeo entre dos archivos en el cache de 🤗 Datasets",
explain:Incorrecto! intenta de nuevo."
}
]}
/>
### 5. ¿Cuáles son los principales beneficios de la proyección en memoria?
<Question
choices={[
{
text: "Acceder a los archivos proyectados en memoria es más rápido que leerlos de o guardarlos en el disco.",
explain:Correcto! Esto le permite a 🤗 Datasets ser muy rápido. Sin embargo, este no es el único beneficio.",
correct: true
},
{
text: "Las aplicaciones pueden acceder a segmentos de los datos en un archivo extremadamente grande sin necesidad de cargar el archivo completo en la RAM.",
explain:Correcto! Esto le permite a 🤗 Datasets cargar datasets de varios gigabytes en tu computador sin explotar tu CPU. ¿Qué otros beneficios ofrece la proyección en memoria?",
correct: true
},
{
text: "Consume menos energía, así que tu batería dura más.",
explain:Incorrecto! Intenta de nuevo."
}
]}
/>
### 6. ¿Por qué no funciona el siguiente código?
```py
from datasets import load_dataset
dataset = load_dataset("allocine", streaming=True, split="train")
dataset[0]
```
<Question
choices={[
{
text: "Intenta hacer _streaming_ de un dataset que es muy grande para caber en la RAM.",
explain: "Incorrecto. Los datasets _streamed_ se descomprimen sobre la marcha, por lo que puedes procesar datasets que pesen terabytes con muy poca RAM.",
},
{
text: "Intenta acceder un <code>IterableDataset</code>.",
explain: "¡Correcto! Un <code>IterableDataset</code> es un generador, no un contenedor, así que deberías acceder a sus elementos usando <code>next(iter(dataset))</code>.",
correct: true
},
{
text: "El dataset <code>allocine</code> no tiene un conjunto <code>train</code>.",
explain: "Incorrecto. Revisa la [tarjeta del dataset <code>allocine</code>](https://huggingface.co/datasets/allocine) en el Hub para ver qué conjuntos contiene."
}
]}
/>
### 7. ¿Cuáles son los principales beneficios de crear una tarjeta para un dataset?
<Question
choices={[
{
text: "Provee información sobre el uso esperado del dataset y las tareas soportadas, para que otros en la comunidad puedan tomar una decisión informada sobre usarlo.",
explain:Correcto! Los datasets sin documentación pueden ser usados para entrenar modelos que no reflejen las intensiones de sus creadores o pueden producir modelos cuyo estatus legal sea complejo si se entrenaron en datos que violen restricciones de privacidad o licenciamiento. ¡Pero este no es el único beneficio!",
correct : true
},
{
text: "Ayuda a llamar la atención a los sesgos que están presentes en un corpus.",
explain:Correcto! Casi todos los datasets tienen algún tipo de sesgo, lo que puede producir consecuencias negativas más adelante. Estar consciente de ellos ayuda a quienes construyen modelos a manejar estos sesgos. ¿Con qué otra cosa ayudan las tarjetas de los datasets?",
correct : true
},
{
text: "Aumenta las probabilidades de que otros en la comunidad usen mi dataset.",
explain:Correcto! Una tarjeta de un dataset bien escrita puede ayudar a que tu dataset tenga un mayor uso. ¿Qué otros beneficios ofrece?",
correct: true
},
]}
/>
### 8. ¿Qué es la búsqueda semántica?
<Question
choices={[
{
text: "Una forma de buscar coincidencias exactas entre las palabras de una pregunta y los documentos de un corpus",
explain: "Esto es incorrecto. Este tipo de búsqueda se llama *búsqueda léxica* y es lo que ves típicamente en los motores tradicionales de búsqueda."
},
{
text: "Una forma de emparejar documentos entendiendo el significado contextual de una pregunta",
explain:Correcto! La búsqueda semántica usa vectores de _embedding_ para representar preguntas y documentos, y usa una métrica de similaridad para medir la cantidad de coincidencia entre ellos. ¿Cómo más podrías describirlo?",
correct: true
},
{
text: "Una forma de mejorar la precisión de la búsqueda",
explain:Correcto! Los motores de búsqueda semántica pueden capturar la intención de una pregunta mucho mejor que la coincidencia de palabras clave y típicamente te permiten obtener documentos con mejor precisión. Pero esta no es la única respuesta correcta, ¿qué otra cosa puede hacer la búsqueda semántica?",
correct: true
}
]}
/>
### 9. Para la búsqueda semántica asimétrica, usualmente tienes:
<Question
choices={[
{
text: "Una pregunta corta y un párrafo largo que responde la pregunta",
explain:Correcto!",
correct : true
},
{
text: "Preguntas y párrafos de una longitud similar",
explain:Intenta de nuevo! De hecho, este es un ejemplo de búsqueda semántica simétrica."
},
{
text: "Una pregunta larga y un párrafo más corto que responde la pregunta",
explain:Incorrecto! Intenta de nuevo."
}
]}
/>
### 10. ¿Puedo usar 🤗 Datasets para cargar datos y usarlos en otras áreas, como procesamiento de habla?
<Question
choices={[
{
text: "No",
explain: "Esto es incorrecto. 🤗 Datasets soporta datos tabulares, audio y visión artificial. Revisa el <a href='https://huggingface.co/datasets/mnist'>dataset MNIST</a> en el Hub para un ejemplo de visión artificial."
},
{
text: "Yes",
explain: "¡Correcto! Revisa los desarrollos con habla y visión en la librería 🤗 Transformers para ver cómo se puede usar 🤗 Datasets en estas áreas.",
correct : true
},
]}
/>
<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/es/chapter5/8.mdx" />

Xet Storage Details

Size:
9.51 kB
·
Xet hash:
7ee067bc1f083caff68a2f77c6030a2d8cb7aec8ba0be52b8a816ad875bb35bb

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