From 246b43aac6121d0dc149cf1c861130e9eb4fe775 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Mon, 30 May 2022 22:27:03 +0100
Subject: [PATCH 111/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 5b80c9e8f..9cce661a9 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -107,13 +107,13 @@ Fine-tuning a model therefore has lower time, data, financial, and environmental
This process will also achieve better results than training from scratch (unless you have lots of data), which is why you should always try to leverage a pretrained model -- one as close as possible to the task you have at hand -- and fine-tune it.
-## General architecture
+## Architettura generale
In this section, we'll go over the general architecture of the Transformer model. Don't worry if you don't understand some of the concepts; there are detailed sections later covering each of the components.
-## Introduction
+## Introduzione
The model is primarily composed of two blocks:
@@ -133,7 +133,7 @@ Each of these parts can be used independently, depending on the task:
We will dive into those architectures independently in later sections.
-## Attention layers
+## Layers di attenzione
A key feature of Transformer models is that they are built with special layers called *attention layers*. In fact, the title of the paper introducing the Transformer architecture was ["Attention Is All You Need"](https://arxiv.org/abs/1706.03762)! We will explore the details of attention layers later in the course; for now, all you need to know is that this layer will tell the model to pay specific attention to certain words in the sentence you passed it (and more or less ignore the others) when dealing with the representation of each word.
@@ -143,7 +143,7 @@ The same concept applies to any task associated with natural language: a word by
Now that you have an idea of what attention layers are all about, let's take a closer look at the Transformer architecture.
-## The original architecture
+## L'architettura originale
The Transformer architecture was originally designed for translation. During training, the encoder receives inputs (sentences) in a certain language, while the decoder receives the same sentences in the desired target language. In the encoder, the attention layers can use all the words in a sentence (since, as we just saw, the translation of a given word can be dependent on what is after as well as before it in the sentence). The decoder, however, works sequentially and can only pay attention to the words in the sentence that it has already translated (so, only the words before the word currently being generated). For example, when we have predicted the first three words of the translated target, we give them to the decoder which then uses all the inputs of the encoder to try to predict the fourth word.
@@ -160,12 +160,12 @@ Note that the first attention layer in a decoder block pays attention to all (pa
The *attention mask* can also be used in the encoder/decoder to prevent the model from paying attention to some special words -- for instance, the special padding word used to make all the inputs the same length when batching together sentences.
-## Architectures vs. checkpoints
+## Architetture vs. checkpoint
As we dive into Transformer models in this course, you'll see mentions of *architectures* and *checkpoints* as well as *models*. These terms all have slightly different meanings:
-* **Architecture**: This is the skeleton of the model -- the definition of each layer and each operation that happens within the model.
-* **Checkpoints**: These are the weights that will be loaded in a given architecture.
-* **Model**: This is an umbrella term that isn't as precise as "architecture" or "checkpoint": it can mean both. This course will specify *architecture* or *checkpoint* when it matters to reduce ambiguity.
+* **Architettura**: This is the skeleton of the model -- the definition of each layer and each operation that happens within the model.
+* **Checkpoint**: These are the weights that will be loaded in a given architecture.
+* **Modello**: This is an umbrella term that isn't as precise as "architecture" or "checkpoint": it can mean both. This course will specify *architecture* or *checkpoint* when it matters to reduce ambiguity.
For example, BERT is an architecture while `bert-base-cased`, a set of weights trained by the Google team for the first release of BERT, is a checkpoint. However, one can say "the BERT model" and "the `bert-base-cased` model."
From a3f6e7f8f9bcc557d3574d56459c79d844f2017d Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Mon, 30 May 2022 22:44:33 +0100
Subject: [PATCH 112/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 9cce661a9..de21cc0b2 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -35,9 +35,9 @@ Studieremo queste famiglie più nel dettaglio in seguito.
## I Transformer sono modelli linguistici
-Tutti i modelli Transformer menzionati qui sopra (GPT, BERT, BART, T5, ecc.) sono stati addestrati come modelli linguistici (*language models*). This means they have been trained on large amounts of raw text in a self-supervised fashion. Self-supervised learning is a type of training in which the objective is automatically computed from the inputs of the model. Ciò significa che non è richiesto intervento umano per etichettare i dati!
+Tutti i modelli Transformer menzionati qui sopra (GPT, BERT, BART, T5, ecc.) sono stati addestrati come modelli linguistici (*language models*). Ciò significa che sono stati addestrati su grandi quantità di testo grezzo in stile auto-supervisionato (*self-supervising*). L'apprendimento auto-supervisionato è un tipo di apprendimento il cui obbiettivo viene computato direttamente dagli input del modello. Ciò significa che non è richiesto intervento umano per etichettare i dati!
-This type of model develops a statistical understanding of the language it has been trained on, but it's not very useful for specific practical tasks. Because of this, the general pretrained model then goes through a process called *transfer learning*. During this process, the model is fine-tuned in a supervised way -- that is, using human-annotated labels -- on a given task.
+Un modello di questo tipo sviluppa una comprensione statistica della lingua alla quale è stato addestrato, ma non è molto utile in compiti pratici precisi. Per questa ragione, il modello pre-addestrato generale viene in seguito sottoposto a un processo detto transfer learning (*apprendimento del trasferimento*). Durante questo processo, il modello viene affinato per un determinato compito in maniera supervisionata (ossia utilizzando etichette generate da umani).
Un esempio di compito è la previsione della parola seguente in una frase di cui sono state lette *n* parole precedenti. Quest'operazione si chiama *causal language modeling* perché il suo output dipende gli input presenti e passati, ma non da quelli futuri.
From b630db4b757370513a23a53d420b925b71bd7498 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Mon, 30 May 2022 22:48:58 +0100
Subject: [PATCH 113/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index de21cc0b2..7c5529243 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -61,7 +61,7 @@ A parte per alcune eccezioni (come DistilBERT), la strategia generale per ottene
-Unfortunately, training a model, especially a large one, requires a large amount of data. This becomes very costly in terms of time and compute resources. It even translates to environmental impact, as can be seen in the following graph.
+Sfortunatamente, l'addestramento di un modello, e specialmente di un modello grosso, richiede una grande quantità di dati. Ciò si rivela molto costoso in termini di tempo, risorse informatiche e impatto ambientale, come mostrano i grafici qui sotto.
From b9713ca81ab71385894453a5e58fdb289e60a72b Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Mon, 30 May 2022 23:04:43 +0100
Subject: [PATCH 114/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 7c5529243..390f4a08e 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -70,27 +70,27 @@ Sfortunatamente, l'addestramento di un modello, e specialmente di un modello gro
-And this is showing a project for a (very big) model led by a team consciously trying to reduce the environmental impact of pretraining. The footprint of running lots of trials to get the best hyperparameters would be even higher.
+E questi dati sono di un progetto per un modello (molto grande) condotto da un team che provava consciamente a ridurre l'impatto ambientale del pre-addestramento! L'impronta di trials volti a ottenere i miglior iperparamenti possibili sarebbe ancora più importante.
-Imagine if each time a research team, a student organization, or a company wanted to train a model, it did so from scratch. This would lead to huge, unnecessary global costs!
+Immagina cosa succederebbe se ogni volta che un gruppo di ricerca, un'organizzazione studentesca o un'azienda vuole addestrare un modello lo facesse da zero. I costi globali sarebbero inutilmente enormi!
-This is why sharing language models is paramount: sharing the trained weights and building on top of already trained weights reduces the overall compute cost and carbon footprint of the community.
+Questo è il motivo per cui la condivisione di modelli linguistici è fondamentale: lavorare a partire da modelli già addestrati riduce i costi informatici complessivi e l'impatto ambientale della comunità.
## Transfer Learning
-*Pretraining* is the act of training a model from scratch: the weights are randomly initialized, and the training starts without any prior knowledge.
+Il pre-addestramento è l'atto di addestrare un modello da zero: i pesi sono inizializzati in maniera casuale, e l'addestramento inizia senza alcuna conoscenza pregressa.
-This pretraining is usually done on very large amounts of data. Therefore, it requires a very large corpus of data, and training can take up to several weeks.
+Questo pre-addestramento è solitamente fatto su enormi quantità di dati. Di conseguenza, l'addestramento richiede un corpus di dati molto ampio e può prendere diverse settimane.
-*Fine-tuning*, on the other hand, is the training done **after** a model has been pretrained. To perform fine-tuning, you first acquire a pretrained language model, then perform additional training with a dataset specific to your task. Wait -- why not simply train directly for the final task? There are a couple of reasons:
+L'affinamento (*fine-tuning*), al contrarion, è un addestramento che ha luogo **dopo** che il modello è stato pre-addestrato. To perform fine-tuning, you first acquire a pretrained language model, then perform additional training with a dataset specific to your task. Wait -- why not simply train directly for the final task? There are a couple of reasons:
* The pretrained model was already trained on a dataset that has some similarities with the fine-tuning dataset. The fine-tuning process is thus able to take advantage of knowledge acquired by the initial model during pretraining (for instance, with NLP problems, the pretrained model will have some kind of statistical understanding of the language you are using for your task).
* Since the pretrained model was already trained on lots of data, the fine-tuning requires way less data to get decent results.
From 771f2a7d7b38e890b640929367a7914c3ab020ea Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 31 May 2022 22:38:42 +0100
Subject: [PATCH 115/127] Translates last paragraph
---
chapters/it/chapter1/4.mdx | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 390f4a08e..bd79165c1 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -162,10 +162,10 @@ The *attention mask* can also be used in the encoder/decoder to prevent the mode
## Architetture vs. checkpoint
-As we dive into Transformer models in this course, you'll see mentions of *architectures* and *checkpoints* as well as *models*. These terms all have slightly different meanings:
+Durante questo viaggio nel mondo dei modelli Transformer, incontrerai menzioni di *architetture* e *checkpoint*, nonché di *modelli*. Questi termini hanno significati leggermente diversi:
-* **Architettura**: This is the skeleton of the model -- the definition of each layer and each operation that happens within the model.
-* **Checkpoint**: These are the weights that will be loaded in a given architecture.
-* **Modello**: This is an umbrella term that isn't as precise as "architecture" or "checkpoint": it can mean both. This course will specify *architecture* or *checkpoint* when it matters to reduce ambiguity.
+* **Architettura**: Lo scheletro del modello, ossia la definizione di ogni livello e operazione che compare nel modello.
+* **Checkpoint**: I pesi che verranno caricati in una determinata architettura.
+* **Modello**: Un termine generico meno preciso di "architettura" o "checkpoint", in quanto può significare entrambi. In questo corso faremo la distinzione tra *architettura* e *checkpoint* quando sarà necessario ridurre le ambiguità.
-For example, BERT is an architecture while `bert-base-cased`, a set of weights trained by the Google team for the first release of BERT, is a checkpoint. However, one can say "the BERT model" and "the `bert-base-cased` model."
+Ad esempio, BERT è un'architettura, mentre `bert-base-cased`, un set di pesi (*weights*) addestrati dal team di Google per la prima versione di BERT, è un checkpoint. Ciononostante, è possibile dire "il modello BERT" e "il modello `bert-base-cased`."
From 59c7f4ee07b242484d6993b05ac47f0b3f73ef4a Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 31 May 2022 23:01:30 +0100
Subject: [PATCH 116/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index bd79165c1..254a716fa 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -109,31 +109,31 @@ This process will also achieve better results than training from scratch (unless
## Architettura generale
-In this section, we'll go over the general architecture of the Transformer model. Don't worry if you don't understand some of the concepts; there are detailed sections later covering each of the components.
+In questa sezione, vedremo l'architettura generale del modello Transformer. Non preoccuparti se non capisci tutti i concetti: più avanti, troverai sezioni dettagliate per ogni componente.
## Introduzione
-The model is primarily composed of two blocks:
+Il modello si compone principalmente di due blocchi:
-* **Encoder (left)**: The encoder receives an input and builds a representation of it (its features). This means that the model is optimized to acquire understanding from the input.
-* **Decoder (right)**: The decoder uses the encoder's representation (features) along with other inputs to generate a target sequence. This means that the model is optimized for generating outputs.
+* **Encoder (sinistra)**: L'encoder riceve un input e ne costruisce una rappresentazione, le features. Ciò significa che il modello è ottimizzato per la comprensione dell'input.
+* **Decoder (destra)**: Il decoder utilizza la rappresentazione dell'encoder (le features) assieme ad ulteriori input per generare la sequenza target. Ciò significa che il modello è ottimizzato per la generazione di output.
-Each of these parts can be used independently, depending on the task:
+Ognuna di queste parti può essere utilizzata indipendentemente, in base al compito:
-* **Encoder-only models**: Good for tasks that require understanding of the input, such as sentence classification and named entity recognition.
-* **Decoder-only models**: Good for generative tasks such as text generation.
-* **Encoder-decoder models** or **sequence-to-sequence models**: Good for generative tasks that require an input, such as translation or summarization.
+* **Modelli Encoder-only**: Ottimi per compiti che richiedono una comprensione dell'input, come la classificazione frasale e il riconoscimento delle entità nominate.
+* **Modelli Decoder-only**: Ottimi per compiti generativi come la generazione testuale.
+* **Modelli Encoder-decoder** o **modelli sequence-to-sequence**: Ottimi per compiti generativi che richiedono un input, come la traduzione o il riassunto.
-We will dive into those architectures independently in later sections.
+Analizzeremo ciascuna di queste architetture indipendentemente più tardi nel corso.
-## Layers di attenzione
+## Livelli di attenzione
A key feature of Transformer models is that they are built with special layers called *attention layers*. In fact, the title of the paper introducing the Transformer architecture was ["Attention Is All You Need"](https://arxiv.org/abs/1706.03762)! We will explore the details of attention layers later in the course; for now, all you need to know is that this layer will tell the model to pay specific attention to certain words in the sentence you passed it (and more or less ignore the others) when dealing with the representation of each word.
From 595b4da7b82781c985ccacf06d89b89568f8bf80 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 31 May 2022 23:01:53 +0100
Subject: [PATCH 117/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 254a716fa..fc8840bdf 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -1,6 +1,6 @@
# Come funzionano i Transformer?
-In questa sezione, vedremo in maniera avanzata l'architettura dei modelli Transformer.
+In questa sezione, vedremo in maniera approfondita l'architettura dei modelli Transformer.
## Un po' di storia dei Transformer
From 31aac9e0b15d2e7eb3707d4072b33ae9c1302db8 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 13:58:03 +0100
Subject: [PATCH 118/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index fc8840bdf..174d28287 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -90,7 +90,7 @@ Il pre-addestramento è l'atto di addestrare un modello da zero: i pesi sono ini
Questo pre-addestramento è solitamente fatto su enormi quantità di dati. Di conseguenza, l'addestramento richiede un corpus di dati molto ampio e può prendere diverse settimane.
-L'affinamento (*fine-tuning*), al contrarion, è un addestramento che ha luogo **dopo** che il modello è stato pre-addestrato. To perform fine-tuning, you first acquire a pretrained language model, then perform additional training with a dataset specific to your task. Wait -- why not simply train directly for the final task? There are a couple of reasons:
+L'affinamento (*fine-tuning*), al contrarion, è un addestramento che ha luogo **dopo** che il modello è stato pre-addestrato. Per poter performare un fine-tuning, è necessario acquisire un modello linguistico pre-addestrato e addestrarlo ulteriormente con una base dati adatta al compito in questione. Ma perché non addestrare direttamente al compito finale? Esistono alcune ragioni:
* The pretrained model was already trained on a dataset that has some similarities with the fine-tuning dataset. The fine-tuning process is thus able to take advantage of knowledge acquired by the initial model during pretraining (for instance, with NLP problems, the pretrained model will have some kind of statistical understanding of the language you are using for your task).
* Since the pretrained model was already trained on lots of data, the fine-tuning requires way less data to get decent results.
From a03f334d007a170dfa119e6baf9da702794752fd Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 14:22:22 +0100
Subject: [PATCH 119/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 174d28287..386204a43 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -92,20 +92,20 @@ Questo pre-addestramento è solitamente fatto su enormi quantità di dati. Di co
L'affinamento (*fine-tuning*), al contrarion, è un addestramento che ha luogo **dopo** che il modello è stato pre-addestrato. Per poter performare un fine-tuning, è necessario acquisire un modello linguistico pre-addestrato e addestrarlo ulteriormente con una base dati adatta al compito in questione. Ma perché non addestrare direttamente al compito finale? Esistono alcune ragioni:
-* The pretrained model was already trained on a dataset that has some similarities with the fine-tuning dataset. The fine-tuning process is thus able to take advantage of knowledge acquired by the initial model during pretraining (for instance, with NLP problems, the pretrained model will have some kind of statistical understanding of the language you are using for your task).
-* Since the pretrained model was already trained on lots of data, the fine-tuning requires way less data to get decent results.
-* For the same reason, the amount of time and resources needed to get good results are much lower.
+* Il modello pre-addestrato è già addestrato su basi dati che contengono similarità con la base dati usata per il fine-tuning. Il processo di fine-tuning riesce quindi ad beneficiare della conoscenza acquisita dal modello iniziale durante il pre-addestramento (ad esempio, nei problemi di NLP, il modello pre-addestrato avrà già conoscenze statistiche della lingua utilizzata nel compito).
+* Siccome il modello pre-addestrato è stato addestrato usando moltissimi dati, il fine-tuning richiede molto meno dati per ottenere buoni risultati.
+* Per la stessa ragione, occorrono molto meno tempo e risorse per ottenere buoni risultati.
-For example, one could leverage a pretrained model trained on the English language and then fine-tune it on an arXiv corpus, resulting in a science/research-based model. The fine-tuning will only require a limited amount of data: the knowledge the pretrained model has acquired is "transferred," hence the term *transfer learning*.
+Ad esempio, è possibile approfittare di un modello pre-addestrato per la lingua inglese e poi affinarlo usando un corpus arXiv, ottenendo così un modello specifico per la scienza/ricerca. L'affinamento non richiederà che una quantità limitata di dati: le conoscenze acquisite dal modello pre-addestrato sono "trasferite", come riflette il nome *transfer learning*.
-Fine-tuning a model therefore has lower time, data, financial, and environmental costs. It is also quicker and easier to iterate over different fine-tuning schemes, as the training is less constraining than a full pretraining.
+Il fine-tuning di un modello ha quindi costi ridotti in termini di dati, finanze e impatto ambientale. Iterare su diversi schemi di fine-tuning è anche più rapido e semplice, in quanto l'addestramento è meno restrittivo di un pre-addestramento completo.
-This process will also achieve better results than training from scratch (unless you have lots of data), which is why you should always try to leverage a pretrained model -- one as close as possible to the task you have at hand -- and fine-tune it.
+Questo processo permette anche di ottenere risultati migliori di un addestramento da zero (a meno di non essere in possesso di moltissimi dati), motivo per cui bisognerebbe sempre partire da un modello pre-addestrato (quanto possibile compatibile con il compito da eseguire) e affinarlo.
## Architettura generale
From faa592274cb36a7a9858f28972b3d61d6590d861 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 14:51:32 +0100
Subject: [PATCH 120/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 386204a43..ca35ae5aa 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -133,15 +133,15 @@ Ognuna di queste parti può essere utilizzata indipendentemente, in base al comp
Analizzeremo ciascuna di queste architetture indipendentemente più tardi nel corso.
-## Livelli di attenzione
+## Attention layers
-A key feature of Transformer models is that they are built with special layers called *attention layers*. In fact, the title of the paper introducing the Transformer architecture was ["Attention Is All You Need"](https://arxiv.org/abs/1706.03762)! We will explore the details of attention layers later in the course; for now, all you need to know is that this layer will tell the model to pay specific attention to certain words in the sentence you passed it (and more or less ignore the others) when dealing with the representation of each word.
+Una caratteristica chiave dei modelli Transformer è che sono basati su strati speciali detti *attention layers*. Non a caso, il titolo del paper che introdusse l'architettura Transformer era ["Attention Is All You Need"](https://arxiv.org/abs/1706.03762)! Esploreremo gli attention layer nel dettaglio più avanti in questo corso; per ora, tutto ciò che hai bisogno di sapere è che un layer dirà al modello di prestare particolare attenzione a certe parole nella frase input (ignorando praticamente le altre) quando si occupa della rappresentazione delle singole parole.
To put this into context, consider the task of translating text from English to French. Given the input "You like this course", a translation model will need to also attend to the adjacent word "You" to get the proper translation for the word "like", because in French the verb "like" is conjugated differently depending on the subject. The rest of the sentence, however, is not useful for the translation of that word. In the same vein, when translating "this" the model will also need to pay attention to the word "course", because "this" translates differently depending on whether the associated noun is masculine or feminine. Again, the other words in the sentence will not matter for the translation of "this". With more complex sentences (and more complex grammar rules), the model would need to pay special attention to words that might appear farther away in the sentence to properly translate each word.
-The same concept applies to any task associated with natural language: a word by itself has a meaning, but that meaning is deeply affected by the context, which can be any other word (or words) before or after the word being studied.
+Lo stesso concetto si applica a qualsiasi compito che ha a che fare con il linguaggio naturale: una parola ha un senso a sé stante, ma tale senso è profondamente influenzato dal contesto, il quale è costituito da una qualsiasi parola (o parole) che precede o segue la parola sotto osservazione.
-Now that you have an idea of what attention layers are all about, let's take a closer look at the Transformer architecture.
+Ora che sai cosa sono gli attention layer, guardiamo un po' più nel dettaglio all'architettura Transformer.
## L'architettura originale
From 5924bd26ebd16578bd152d0f1d9579780c01ff59 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 15:06:51 +0100
Subject: [PATCH 121/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index ca35ae5aa..baee8d350 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -137,7 +137,7 @@ Analizzeremo ciascuna di queste architetture indipendentemente più tardi nel co
Una caratteristica chiave dei modelli Transformer è che sono basati su strati speciali detti *attention layers*. Non a caso, il titolo del paper che introdusse l'architettura Transformer era ["Attention Is All You Need"](https://arxiv.org/abs/1706.03762)! Esploreremo gli attention layer nel dettaglio più avanti in questo corso; per ora, tutto ciò che hai bisogno di sapere è che un layer dirà al modello di prestare particolare attenzione a certe parole nella frase input (ignorando praticamente le altre) quando si occupa della rappresentazione delle singole parole.
-To put this into context, consider the task of translating text from English to French. Given the input "You like this course", a translation model will need to also attend to the adjacent word "You" to get the proper translation for the word "like", because in French the verb "like" is conjugated differently depending on the subject. The rest of the sentence, however, is not useful for the translation of that word. In the same vein, when translating "this" the model will also need to pay attention to the word "course", because "this" translates differently depending on whether the associated noun is masculine or feminine. Again, the other words in the sentence will not matter for the translation of "this". With more complex sentences (and more complex grammar rules), the model would need to pay special attention to words that might appear farther away in the sentence to properly translate each word.
+Come esempio concreto, pensa ad un compito di traduzione testuale dall'inglese al francese. Dato l'input "You like this course", un modello di traduzione dovrà fare riferimento alla parola adiacente "You" per fornire la traduzione corretta della parola "like", perché in francese la coniugazione del verbo "like" cambia in base al soggetto. Diversamente, il resto della frase non è utile alla sua traduzione di quella precisa parola. In maniera simile, durante la traduzione di "this" il modello dovrà prestare attenzione alla parola "course", in quanto "this" ha traduzioni diverse se associato con nomi femminili o maschili. Di nuovo, il resto delle parole della frase non contribuiscono alla corretta traduzione di "this". Con frasi più complesse (e regole grammaticali più complesse), il modello potrebbe aver bisogno di prestare particolare attenzione a parole ben più lontane nella frase per tradurre correttamente ogni parola.
Lo stesso concetto si applica a qualsiasi compito che ha a che fare con il linguaggio naturale: una parola ha un senso a sé stante, ma tale senso è profondamente influenzato dal contesto, il quale è costituito da una qualsiasi parola (o parole) che precede o segue la parola sotto osservazione.
@@ -149,7 +149,7 @@ The Transformer architecture was originally designed for translation. During tra
To speed things up during training (when the model has access to target sentences), the decoder is fed the whole target, but it is not allowed to use future words (if it had access to the word at position 2 when trying to predict the word at position 2, the problem would not be very hard!). For instance, when trying to predict the fourth word, the attention layer will only have access to the words in positions 1 to 3.
-The original Transformer architecture looked like this, with the encoder on the left and the decoder on the right:
+L'architettura Transformer originale aveva la struttura qui sotto, con l'encoder a sinistra e il decoder a destra:
From b0df42c432d3c4d86a43f4da1db8810ef0eaf078 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 15:17:03 +0100
Subject: [PATCH 122/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index baee8d350..46214b6ad 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -145,9 +145,9 @@ Ora che sai cosa sono gli attention layer, guardiamo un po' più nel dettaglio a
## L'architettura originale
-The Transformer architecture was originally designed for translation. During training, the encoder receives inputs (sentences) in a certain language, while the decoder receives the same sentences in the desired target language. In the encoder, the attention layers can use all the words in a sentence (since, as we just saw, the translation of a given word can be dependent on what is after as well as before it in the sentence). The decoder, however, works sequentially and can only pay attention to the words in the sentence that it has already translated (so, only the words before the word currently being generated). For example, when we have predicted the first three words of the translated target, we give them to the decoder which then uses all the inputs of the encoder to try to predict the fourth word.
+All'origine, l'architettura Transformer fu creata per la traduzione. In fase di addestramento, l'encoder riceve degli input (frasi) in una certa lingua, mentre il decoder riceve le stesse frasi nella lingua target d'elezione. Nell'encoder, gli attention layer sono in grado di utilizzare qualsiasi parola in una data frase (dato che, come abbiamo appena visto, la traduzione di una determinata parola può dipendere da ciò che la precede o segue nella frase). Diversamente, decoder procede in maniera sequenziale ed è capace di prestare attenzione solo alle parole della frase che ha già tradotto (ossia, solo le parole che precedono la parola che sta generando). Ad esempio, una volta predette le prime tre parole della frase target, le passiamo al decoder che utilizza tutti gli input dell'encoder per provare a predirre la quarta parola.
-To speed things up during training (when the model has access to target sentences), the decoder is fed the whole target, but it is not allowed to use future words (if it had access to the word at position 2 when trying to predict the word at position 2, the problem would not be very hard!). For instance, when trying to predict the fourth word, the attention layer will only have access to the words in positions 1 to 3.
+Per accelerare il processo di addestramento (quando il modello ha accesso alle frasi target), l'intero target viene fornito al decoder, che però non è in grado di accedere alle parole future (se avesse accesso alla parola in seconda posizione mentre cerca di predirre la parola in seconda posizione, il problema cesserebbe di essere complesso). Ad esempio, mentre prova a predirre la quarta parola, l'attention layer avrà accesso solo alle posizioni tra la prima e la terza.
L'architettura Transformer originale aveva la struttura qui sotto, con l'encoder a sinistra e il decoder a destra:
From 51dea9e944ef931c9ff16ab941b5f1d39a82a095 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 15:25:37 +0100
Subject: [PATCH 123/127] Update 4.mdx
---
chapters/it/chapter1/4.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 46214b6ad..81c2f95e9 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -156,9 +156,9 @@ L'architettura Transformer originale aveva la struttura qui sotto, con l'encoder
-Note that the first attention layer in a decoder block pays attention to all (past) inputs to the decoder, but the second attention layer uses the output of the encoder. It can thus access the whole input sentence to best predict the current word. This is very useful as different languages can have grammatical rules that put the words in different orders, or some context provided later in the sentence may be helpful to determine the best translation of a given word.
+Nota che il primo attention layer in un *decoder block* presta attenzione a tutti gli input (passati) al decoder, mentre il secondo attention layer utilizza l'output del encoder. Gli è perciò possibile avere accesso a tutta la frase input per meglio prevedere la parola corrente. Questa caratteristica è molto utile in quanto lingue diverse possono avere regole grammaticali diverse piazzano le parole in ordini diversi, oppure perché il contesto che compare più tardi nella frase potrebbe essere utile nella determinazione della migliore traduzione di una data parola.
-The *attention mask* can also be used in the encoder/decoder to prevent the model from paying attention to some special words -- for instance, the special padding word used to make all the inputs the same length when batching together sentences.
+L'*attention mask* può essere utilizzato anche nell'encoder/decoder per evitare che il modello presti attenzione a certe parole speciali, come ad esempio parole riempitive utilizzate per rendere tutti gli input della stessa lunghezza.
## Architetture vs. checkpoint
From 3738518ba946393ee8f53fd3cfd32785623df910 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 15:40:35 +0100
Subject: [PATCH 124/127] Final version
---
chapters/it/chapter1/4.mdx | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/chapters/it/chapter1/4.mdx b/chapters/it/chapter1/4.mdx
index 81c2f95e9..8aa824f14 100644
--- a/chapters/it/chapter1/4.mdx
+++ b/chapters/it/chapter1/4.mdx
@@ -19,13 +19,13 @@ L'[architettura Transformer](https://arxiv.org/abs/1706.03762) è stata introdot
- **febbraio 2019**: [GPT-2](https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf), una versione (migliorata e ingrandita) di GPT che non fu distribuita immediatamente al pubblico a causa di preoccupazioni etiche
-- **ottobre 2019**: [DistilBERT](https://arxiv.org/abs/1910.01108), una versione distillata di BERT che è il 60% più rapida, il 40% più leggera in memoria, e ritiene tuttavia il 97% della performance di BERT
+- **ottobre 2019**: [DistilBERT](https://arxiv.org/abs/1910.01108), una versione distillata di BERT che è il 60% più rapida e il 40% più leggera in memoria, pur conservando il 97% della performance di BERT
- **ottobre 2019**: [BART](https://arxiv.org/abs/1910.13461) e [T5](https://arxiv.org/abs/1910.10683), due grossi modelli pre-addestrati che utilizzano la stessa architettura del modello Transformer originale (nonché i primi a farlo)
- **maggio 2020**, [GPT-3](https://arxiv.org/abs/2005.14165), una versione ancora più ampia di GPT-2, con buone prestazioni in vari compiti e nessun bisogno di fine-tuning (il cosiddetto _zero-shot learning_)
-La lista è lontana dall'essere esaustiva ed è volta solo a mettere in evidenza alcuni dei diversi tipi di modelli Transformer. In genere, questi possono essere raggruppati in tre categorie:
+La lista è tutto fuorché esaustiva ed è volta solo a mettere in evidenza alcuni dei diversi tipi di modelli Transformer. In genere, questi possono essere raggruppati in tre categorie:
- Modelli in stile GPT (detti anche modelli Transformer _auto-regressive_)
- Modelli in stile BERT (detti anche modelli Transformer _auto-encoding_)
@@ -35,11 +35,11 @@ Studieremo queste famiglie più nel dettaglio in seguito.
## I Transformer sono modelli linguistici
-Tutti i modelli Transformer menzionati qui sopra (GPT, BERT, BART, T5, ecc.) sono stati addestrati come modelli linguistici (*language models*). Ciò significa che sono stati addestrati su grandi quantità di testo grezzo in stile auto-supervisionato (*self-supervising*). L'apprendimento auto-supervisionato è un tipo di apprendimento il cui obbiettivo viene computato direttamente dagli input del modello. Ciò significa che non è richiesto intervento umano per etichettare i dati!
+Tutti i modelli Transformer menzionati qui sopra (GPT, BERT, BART, T5, ecc.) sono stati addestrati come modelli linguistici (*language models*). Ciò significa che sono stati addestrati su grandi quantità di testo grezzo in stile auto-supervisionato (*self-supervising*). L'apprendimento auto-supervisionato è un tipo di apprendimento il cui obbiettivo viene computato direttamente dagli input del modello. Ciò significa che non è richiesto alcun intervento umano per etichettare i dati!
-Un modello di questo tipo sviluppa una comprensione statistica della lingua alla quale è stato addestrato, ma non è molto utile in compiti pratici precisi. Per questa ragione, il modello pre-addestrato generale viene in seguito sottoposto a un processo detto transfer learning (*apprendimento del trasferimento*). Durante questo processo, il modello viene affinato per un determinato compito in maniera supervisionata (ossia utilizzando etichette generate da umani).
+Un modello di questo tipo sviluppa una comprensione statistica della lingua alla quale è stato addestrato, ma non è molto utile in compiti pratici e precisi. Per questa ragione, il modello pre-addestrato generale viene in seguito sottoposto a un processo detto *transfer learning*. Durante questo processo, il modello viene affinato per un determinato compito in maniera supervisionata (ossia utilizzando etichette generate da umani).
-Un esempio di compito è la previsione della parola seguente in una frase di cui sono state lette *n* parole precedenti. Quest'operazione si chiama *causal language modeling* perché il suo output dipende gli input presenti e passati, ma non da quelli futuri.
+Un esempio di compito è la previsione della parola seguente in una frase di cui sono state lette *n* parole precedenti. Quest'operazione si chiama *causal language modeling* perché il suo output dipende dagli input presenti e passati, ma non da quelli futuri.
@@ -61,7 +61,7 @@ A parte per alcune eccezioni (come DistilBERT), la strategia generale per ottene
-Sfortunatamente, l'addestramento di un modello, e specialmente di un modello grosso, richiede una grande quantità di dati. Ciò si rivela molto costoso in termini di tempo, risorse informatiche e impatto ambientale, come mostrano i grafici qui sotto.
+Sfortunatamente, l'addestramento di un modello, e specialmente di un modello grosso, richiede grandi quantità di dati. Ciò si rivela molto costoso in termini di tempo, risorse informatiche e impatto ambientale, come mostrano i grafici qui sotto.
@@ -70,9 +70,9 @@ Sfortunatamente, l'addestramento di un modello, e specialmente di un modello gro
-E questi dati sono di un progetto per un modello (molto grande) condotto da un team che provava consciamente a ridurre l'impatto ambientale del pre-addestramento! L'impronta di trials volti a ottenere i miglior iperparamenti possibili sarebbe ancora più importante.
+Questi dati si riferiscono a un progetto per un modello (molto grande) condotto da un team che provava consciamente a ridurre l'impatto ambientale del pre-addestramento. L'impronta di trials volti a ottenere i miglior iperparamenti possibili sarebbe ancora più importante.
-Immagina cosa succederebbe se ogni volta che un gruppo di ricerca, un'organizzazione studentesca o un'azienda vuole addestrare un modello lo facesse da zero. I costi globali sarebbero inutilmente enormi!
+Immagina cosa succederebbe se ogni volta che un gruppo di ricerca, un'organizzazione studentesca o un'azienda vuole addestrare un modello lo facesse da zero! I costi globali sarebbero inutilmente enormi!
Questo è il motivo per cui la condivisione di modelli linguistici è fondamentale: lavorare a partire da modelli già addestrati riduce i costi informatici complessivi e l'impatto ambientale della comunità.
@@ -90,7 +90,7 @@ Il pre-addestramento è l'atto di addestrare un modello da zero: i pesi sono ini
Questo pre-addestramento è solitamente fatto su enormi quantità di dati. Di conseguenza, l'addestramento richiede un corpus di dati molto ampio e può prendere diverse settimane.
-L'affinamento (*fine-tuning*), al contrarion, è un addestramento che ha luogo **dopo** che il modello è stato pre-addestrato. Per poter performare un fine-tuning, è necessario acquisire un modello linguistico pre-addestrato e addestrarlo ulteriormente con una base dati adatta al compito in questione. Ma perché non addestrare direttamente al compito finale? Esistono alcune ragioni:
+L'affinamento (*fine-tuning*), al contrario, è un addestramento che ha luogo **dopo** che il modello è stato pre-addestrato. Per poter effettuare un fine-tuning, è necessario acquisire un modello linguistico pre-addestrato e addestrarlo ulteriormente con una base dati adatta al compito in questione. Ma perché non addestrare direttamente al compito finale? Esistono alcune ragioni:
* Il modello pre-addestrato è già addestrato su basi dati che contengono similarità con la base dati usata per il fine-tuning. Il processo di fine-tuning riesce quindi ad beneficiare della conoscenza acquisita dal modello iniziale durante il pre-addestramento (ad esempio, nei problemi di NLP, il modello pre-addestrato avrà già conoscenze statistiche della lingua utilizzata nel compito).
* Siccome il modello pre-addestrato è stato addestrato usando moltissimi dati, il fine-tuning richiede molto meno dati per ottenere buoni risultati.
From 386bc29de788efe8971d8ba0ff1f9d6cbf093cc3 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 15:41:40 +0100
Subject: [PATCH 125/127] Final version
---
chapters/it/chapter1/5.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/chapters/it/chapter1/5.mdx b/chapters/it/chapter1/5.mdx
index 4c90404a2..817c81463 100644
--- a/chapters/it/chapter1/5.mdx
+++ b/chapters/it/chapter1/5.mdx
@@ -2,11 +2,11 @@
-I modelli encoder utilizzano solo l'encoder di un modello Transformer. In ogni fase, i layer di attenzione hanno accesso a tutte le parole della frase di partenza. Questi modelli sono spesso caratterizzati come aventi attenzione "bi-direzionale" e chiamati *auto-encoding models*.
+I modelli encoder utilizzano solo l'encoder di un modello Transformer. In ogni fase, gli attention layer hanno accesso a tutte le parole della frase di partenza. Questi modelli sono spesso caratterizzati come aventi attenzione "bi-direzionale" e chiamati *auto-encoding models*.
Solitamente, il pre-addestramento di questi modelli consiste nel corrompere una determinata frase (ad esempio, nascondendone casualmente alcune parole) e incaricare il modello di ritrovare o ricostruire la frase di partenza.
-I modelli encoder sono particolarmente appropriati per compiti che rischiedono la comprensione di frasi intere, quali la classificazione di frasi, riconoscimento delle entità nominate (e in senso più ampio, la classificazione di parole), e l'estrazione di risposte da un contesto.
+I modelli encoder sono particolarmente appropriati per compiti che richiedono la comprensione di frasi intere, quali la classificazione di frasi, riconoscimento delle entità nominate (e in senso più ampio, la classificazione di parole), e l'estrazione di risposte da un contesto.
Alcuni esempi di modelli di questo tipo includono:
From 8981c0a6a9f9160fae543298ec89797623f5c955 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 15:42:31 +0100
Subject: [PATCH 126/127] Final version
---
chapters/it/chapter1/6.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chapters/it/chapter1/6.mdx b/chapters/it/chapter1/6.mdx
index a04e5504a..c9a7296a4 100644
--- a/chapters/it/chapter1/6.mdx
+++ b/chapters/it/chapter1/6.mdx
@@ -2,7 +2,7 @@
-I modelli decoder utilizzano solo il decoder di un modello Transformer. Ad ogni passaggio e per una data parola, i layers di attenzione hanno accesso solo alle parole che la precedono nella frase. Questi modelli sono spesso detti *auto-regressive models*.
+I modelli decoder utilizzano solo il decoder di un modello Transformer. Ad ogni passaggio e per una data parola, gli attention layer hanno accesso solo alle parole che la precedono nella frase. Questi modelli sono spesso detti *auto-regressive models*.
Il pre-addestramento dei modelli decoder ha spesso a che fare con la previsione della parola successiva in un contesto frasale.
From 60ab29e8ffead84679882ce8c05e91917f0910e9 Mon Sep 17 00:00:00 2001
From: Caterina Bonan <97481648+CaterinaBi@users.noreply.github.com>
Date: Tue, 14 Jun 2022 16:17:23 +0100
Subject: [PATCH 127/127] Updates ToC
---
chapters/it/_toctree.yml | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/chapters/it/_toctree.yml b/chapters/it/_toctree.yml
index e1b12f89b..a08938643 100644
--- a/chapters/it/_toctree.yml
+++ b/chapters/it/_toctree.yml
@@ -16,4 +16,20 @@
- local: chapter1/5
title: Modelli encoder
- local: chapter1/6
- title: Modelli decoder
\ No newline at end of file
+ title: Modelli decoder
+
+- title: 4. Condividere modelli e tokenizers
+ sections:
+ - local: chapter4/1
+ title: L'Hub di Hugging Face
+ - local: chapter4/2
+ title: Usare modelli pre-addestrati
+ - local: chapter4/3
+ title: Condividere modelli pre-addestrati
+ - local: chapter4/4
+ title: Scrivere un cartellino del modello
+ - local: chapter4/5
+ title: Fine della parte 1!
+ - local: chapter4/6
+ title: Quiz di fine capitolo
+ quiz: 4