Spanish Chapter 3: sections 1 & 2#162
Conversation
There was a problem hiding this comment.
Thank you for working on the Spanish translation @fordaz 🚀 !
To build the website, we'll need to add these section the _toctree.yml file, e.g.
- title: 3. Ajuste de un modelo preentrenado # I'm not 100% sure if we should keep "Fine-tuning" in English 🤔
sections:
- local: chapter3/1
title: Introducción
- local: chapter3/2
title: Procesamiento de los datos
Once you've added that we can test it works on the website :)
|
Hi, I have been working in these sections so, If it is ok with you, I could review that and check if we have any differences. Thanks, |
|
@lewtun thanks for pointing this out, I'll update the _toctree.yml as well. |
|
@lgesuellip I'd be glad to collaborate with you. Please check and compare this with your translation, and feel free to suggest updates/improvements in the PR. Thanks ! |
Using the English term for these technical words sounds good to me! |
|
@lewtun I noticed few things:
At this point, I'm open to ideas, but personally I'm leaning towards using "Ajustar". I'm also using an extra hint in the toc "Ajuste (fine-tuning) de un modelo preentrenado" so folks have a reference of what "ajustar" means. |
Hehe, yes translation is hard 😅. Since we already have "ajustar" in the previous chapters, let's keep that format for now. I like your idea to include the English phrase, so one idea would be to create a Similarly one could have a No need to handle these issues in this PR - just an idea for the future if you have time / interest :) |
|
@lewtun I was actually thinking about a glossary, I really like the idea of both files, this will help the translators to be consistent. I'll work on it on a separate PR. Thanks for your input. |
|
The documentation is not available anymore as the PR was closed or merged. |
|
Hi @lewtun, I have a first version of |
|
|
||
| # Introducción | ||
|
|
||
| En el [Capítulo 2](/course/chapter2) exploramos como usar los tokenizadores y modelos preentrenados para hacer predicciones. Pero qué tal si deseas ajustar un modelo preentrenado con tu propio conjunto de datos ? |
There was a problem hiding this comment.
En el Capítulo 2 exploramos como usar los tokenizadores y modelos preentrenados para realizar predicciones.
I think "realizar" fits better.
| {#if fw === 'pt'} | ||
| * Como preparar un conjunto de datos grande desde el Hub. | ||
| * Como usar la API de alto nivel del entrenador para ajustar un modelo. | ||
| * Como usar un lazo personalizado de entrenamiento. |
There was a problem hiding this comment.
When I talk about loop I always use the word "bucle".
| * Como preparar un conjunto de datos grande desde el Hub. | ||
| * Como usar la API de alto nivel del entrenador para ajustar un modelo. | ||
| * Como usar un lazo personalizado de entrenamiento. | ||
| * Como aprovechar la libreria acelerada 🤗 para fácilmente ejecutar el lazo personalizado de entrenamiento en cualquier configuración distribuida. |
There was a problem hiding this comment.
I would keep the name of the library in English (Accelerate library).
There was a problem hiding this comment.
good point. I'll update it as la Accelerate library 🤗 .
| {/if} | ||
|
|
||
| {#if fw === 'pt'} | ||
| Continuando con el ejemplo del [capítulo anterior](/course/chapter2), aquí mostramos como podríamos entrenar un clasificador secuencial en un lote en PyTorch: |
There was a problem hiding this comment.
Looking at the original text, I think the meaning is different.
English: Continuing with the example from the previous chapter, here is how we would train a sequence classifier on one batch in PyTorch:
Spanish: Continuando con el ejemplo del capitulo anterior, aquí mostraremos como podríamos entrenar un clasificador de oraciones/sentencias en PyTorch.
| ``` | ||
| {/if} | ||
|
|
||
| Por supuesto, entrenando el modelo con solo dos oraciones no va a producir muy buenos resultados. Para obtener mejores resultados, debes preparar un conjunto de datos mas grande. |
There was a problem hiding this comment.
Por supuesto que, entrenando el modelo con solo dos oraciones no va a producir muy buenos resultados. Para obtener mejores resultados, debes preparar un conjunto de datos más grande.
|
|
||
| Como puedes ver, obtenemos un objeto `DatasetDict` que contiene los conjuntos de datos de entrenamiento, de validación y de pruebas. Cada uno de estos contiene varias columnas (`sentence1`, `sentence2`, `label`, and `idx`) y un número variable de filas, que son el número de elementos en cada conjunto (asi, que hay 3,668 pares de oraciones en el conjunto de entrenamiento, 408 en el de validación, y 1,725 en el pruebas) | ||
|
|
||
| Este comando descarga y memoriza el conjunto de datos, por defecto en *~/.cache/huggingface/dataset*. Recuerda del Capítulo 2 que puedes personalizar tu carpeta mediante la configuración de la variable de ambiente `HF_HOME`. |
There was a problem hiding this comment.
variable de entorno is more common, I think ...
|
|
||
| Este comando descarga y memoriza el conjunto de datos, por defecto en *~/.cache/huggingface/dataset*. Recuerda del Capítulo 2 que puedes personalizar tu carpeta mediante la configuración de la variable de ambiente `HF_HOME`. | ||
|
|
||
| Podemos acceder cada par de oraciones en nuestro objeto `raw_datasets` usando indexación, como con un diccionario. |
| 'sentence2': 'Referring to him as only " the witness " , Amrozi accused his brother of deliberately distorting his evidence .'} | ||
| ``` | ||
|
|
||
| Podemos ver que las etiquetas ya son números enteros, así que no es necesario hacer ningún preprocesamiento. Para saber cual valor corresponde con cual etiqueta, podemos inspeccionar el campo `features` de nuestro `raw_train_dataset`. Esto indicara el tipo de cada column: |
There was a problem hiding this comment.
Esto indicara el tipo de dato de cada columna:
| 'sentence2': 'Referring to him as only " the witness " , Amrozi accused his brother of deliberately distorting his evidence .'} | ||
| ``` | ||
|
|
||
| Podemos ver que las etiquetas ya son números enteros, así que no es necesario hacer ningún preprocesamiento. Para saber cual valor corresponde con cual etiqueta, podemos inspeccionar el campo `features` de nuestro `raw_train_dataset`. Esto indicara el tipo de cada column: |
There was a problem hiding this comment.
To be more precise: atributo features
| 'idx': Value(dtype='int32', id=None)} | ||
| ``` | ||
|
|
||
| Internamente, `label` es de tipo `ClassLabel`, y la asociación de valores enteros y sus etiquetas esta almacenado en la carpeta *names*. `0` corresponde con `not_equivalent`, y `1` corresponde con `equivalent`. |
| <Youtube id="P-rZWqcB6CE"/> | ||
| {/if} | ||
|
|
||
| Para preprocesar el conjunto de datos, necesitamos convertir el texto en números que puedan ser entendidos por el modelo. Como viste en el [capítulo anterior](/course/chapter2), esto se hace con el toquenizador. Podemos darle al tokenizador una oración o una lista de oraciones, así podemos tokenizar directamente todas las primeras oraciones y todas segundas oraciones de cada par de la siquiente manera: |
There was a problem hiding this comment.
Para preprocesar el conjunto de datos, necesitamos convertir el texto en números que puedan ser entendidos por el modelo. Como viste en el capítulo anterior, esto se hace con el tokenizador. Podemos darle al tokenizador una oración o una lista de oraciones, así podemos tokenizar directamente todas las primeras y las segundas oraciones de cada par de la siguiente manera.
| ``` | ||
|
|
||
| Sin embargo, no podemos simplemente pasar dos secuencias al modelo y obtener una predicción indicando si estas son parafrases o no. Necesitamos manipular las dos secuencias como un par y aplicar el preprocesamiento apropiado. | ||
| Afortunadamente, el tonenizador también puede tomar un par de secuencias y preparalo de la manera como nuestro modelo BERT lo espera: |
There was a problem hiding this comment.
I wrote: Afortunadamente, el tokenizador puede recibir también un par de oraciones y preparar las misma de una forma que nuestro modelo BERT espera.
|
Great feedback @lgesuellip ! Thanks a lot ! |
|
Excellent work @forda, the translation looks fluently and nice to read 📖✨ |
Related to #38