Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump release #295

Merged
merged 131 commits into from
Aug 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
b759479
Chinese - Chapter 1 finished
yaoqih Apr 11, 2022
7db2d4e
Merge branch 'huggingface:main' into main
yaoqih Apr 12, 2022
8ec6fd3
Add zh to the languages field
yaoqih Apr 12, 2022
b931926
Remove untranslated chapters in _toctree.yml
yaoqih Apr 12, 2022
1aa5aa9
Merge branch 'huggingface:main' into main
yaoqih Apr 12, 2022
0778f36
Fixed an error in the translation format
yaoqih Apr 12, 2022
e7100c6
Added a small part of the missing content
yaoqih Apr 12, 2022
0990c77
Fix style
lewtun Apr 13, 2022
cfac53f
Merge remote-tracking branch 'upstream/main'
yaoqih Apr 26, 2022
fa0a047
Complete the translation of Chapters 0 and 2
yaoqih Apr 26, 2022
d65b6e9
Merge remote-tracking branch 'upstream/main'
yaoqih May 3, 2022
cfee90e
Fixed some bugs
yaoqih May 3, 2022
a2705ee
Add files via upload
yaoqih May 6, 2022
e76d10e
Merge branch 'huggingface:main' into main
yaoqih May 6, 2022
5157821
run make style to format chapter1 session3
yaoqih May 6, 2022
7c3c3f5
run make style to format code
yaoqih May 6, 2022
737c180
run make style to format code
yaoqih May 6, 2022
4823c13
Merge branch 'main' into 1375626371/main
lewtun May 12, 2022
15fc232
Fix style
lewtun May 12, 2022
a88b0bb
Chapter 2 Section 1 Bengali Translation (huggingface#72) (#168)
avishek-018 May 16, 2022
2e20395
[TH] Chapter 6 Section 1 and 2 (#171)
meanna May 16, 2022
dee8b18
[FA] CH1 / P1-2 (#142)
schoobani May 16, 2022
1abf819
Spanish Chapter 3: sections 1 & 2 (#162)
fordaz May 16, 2022
e260263
fix typos in bpe, wordpiece, unigram (#166)
KeremTurgutlu May 16, 2022
1781826
[FR] French Review (#186)
lbourdois May 16, 2022
ab803f3
Part 7: Training a causal... fixes (#179)
CakeCrusher May 17, 2022
6c78c3e
[TR] Translated Chapter 1.6 🤗 (#185)
tanersekmen May 17, 2022
1fe96c8
[PT][Chapter 01 - 2.mdx] - issue #51 (#170)
victorescosta May 17, 2022
d19424a
Fix Gradio ToC (#193)
lewtun May 18, 2022
b9548e9
Add Gradio authors and Blocks event (#189)
lewtun May 18, 2022
fbc9823
Update 6.mdx (#188)
couturierc May 18, 2022
af0bfc8
Add translating notes and glossary to Spanish (#192)
fordaz May 19, 2022
04d9444
add pt 4.3 (#191)
johnnv1 May 19, 2022
833ae2d
[FR] Visual corrections (#190)
lbourdois May 19, 2022
8226918
[PT] add chapter 4.4 and 4.5 (#196)
johnnv1 May 19, 2022
b6a2774
fix invite discord link (#197)
johnnv1 May 19, 2022
1302cef
[FA] Second draft of CH2/P1-2 (#139)
jowharshamshiri May 20, 2022
8b786d1
added chapter3 in hindi (#198)
robotjellyzone May 20, 2022
42d2030
[TR] Chapter 3/1 (#165)
Winvoker May 23, 2022
a340c81
[RU] Ch3-1/2/3 (#200)
pdumin May 23, 2022
b09e5fa
[PT] add 5.1 and 5.2 (#204)
johnnv1 May 23, 2022
6febc3e
Merge branch 'main' into prerelease-audio
lewtun May 24, 2022
e55809a
Add placeholders for audio chapters (#208)
lewtun May 24, 2022
3b081e9
[FA] - Ch3 - P1 and P2 (#199)
kambizG May 24, 2022
51a6c9f
[PT] add `end-of-chapter quiz` for chapter 4 (4.6) (#201)
johnnv1 May 24, 2022
751d069
Chapter1: 2.mdx Translated. (#206)
pandyaved98 May 24, 2022
9bf50f0
Remove comments from Persian ToC (#210)
lewtun May 24, 2022
b16fdff
Fix CI URL for PRs (#211)
lewtun May 24, 2022
d32eed6
Merge branch 'main' into prerelease-audio
lewtun May 24, 2022
e069fa0
Merge branch 'prerelease-audio' into add-audio-clf
lewtun May 24, 2022
db51446
code fragment & english syntax and meaning (#203)
CakeCrusher May 25, 2022
ef316d8
Updated Ch1/1 with Emoji (#214)
pandyaved98 May 25, 2022
62a824b
Add missing numpy import (#217)
lewtun May 25, 2022
7967b2b
Merge branch 'add-audio-clf'
yaoqih May 26, 2022
069f7df
Merge branch 'huggingface:main' into main
yaoqih May 26, 2022
7753f6a
Updata chapter3
yaoqih May 26, 2022
5f5c834
Code format for chapter3
yaoqih May 26, 2022
3885ff7
Updata yml file of chapter3
yaoqih May 26, 2022
76c59b2
Uptata yml file of chapter3
yaoqih May 26, 2022
54b4791
Fix yml file bug
yaoqih May 26, 2022
bc296c5
[ES] translate sections 8.1 and 8.2 (#215)
dzarkV May 27, 2022
4de9652
Fix path to datasets (#216)
listenaddress May 27, 2022
8545f05
[PT] add 5.3 (#218)
johnnv1 May 27, 2022
f66182e
fix 4.3 (#223)
johnnv1 May 27, 2022
4f10911
Run make style
yaoqih May 28, 2022
80b0fbd
Fix notebook generation (#227)
lewtun May 30, 2022
d9bef0c
add 5.4 (#226)
johnnv1 May 30, 2022
4052957
add pt wip (#225)
LincolnVS May 30, 2022
feff8a3
Added Gujarati List. (#221)
pandyaved98 May 30, 2022
7692aad
Merge branch 'main' into 1375626371/main
lewtun May 30, 2022
11ff5ec
Fix quality
lewtun May 30, 2022
1d9d9d3
Add Gradio nbs links to fr (#228)
lewtun May 30, 2022
d22cab9
Fix ToC tree
lewtun May 30, 2022
c930f3c
Remove audio templates
lewtun May 30, 2022
7363126
Merge branch 'main' into 1375626371/main
lewtun May 30, 2022
ac4d1b1
Fix fr section
lewtun May 30, 2022
7036ab1
Fix fr chapter
lewtun May 30, 2022
2302e48
Chinese - Chapter 3finished (#219)
yaoqih May 30, 2022
447c789
add ch7 at _toctree and translate 7.1 (#222)
LincolnVS May 30, 2022
52b8883
add 5.5 (#235)
johnnv1 Jun 9, 2022
7f5cc16
[FR] Review of chapter 7 (#233)
lbourdois Jun 9, 2022
4c74259
Italian translation - chapter 4 (#230)
ClonedOne Jun 9, 2022
097edcb
Added Thai translation of chapters 3 (#231)
meanna Jun 9, 2022
6dd7e6c
[Ru] Add part 2, chapter 2 (#234)
svv73 Jun 9, 2022
225c91d
Update 8.mdx (#237)
omerXfaruq Jun 9, 2022
85df4d9
Created HI/Chapter1/5.mdx (#232)
pandyaved98 Jun 14, 2022
e216c2f
Add Spanish chaper3/section4, update toc and glossary (#238)
fordaz Jun 17, 2022
77b3e15
[RU] Chapter 3 finished (#239)
pdumin Jun 17, 2022
3681c50
[PT] add 5.6 and 5.7 (#240)
johnnv1 Jun 17, 2022
9385a66
[EN] Visual corrections (#245)
lbourdois Jun 17, 2022
4b9dab4
Translation for 1/4, 1/5 and 1/6. (#247)
CaterinaBi Jun 17, 2022
e20a766
add event in PT (#250)
johnnv1 Jun 17, 2022
44690a3
Pin version of black (#252)
HiromuHota Jun 19, 2022
16efa44
Translate ja event (#241)
trtd56 Jun 20, 2022
456c608
[PT] add quiz chapter 5 (#243)
johnnv1 Jun 20, 2022
01231a1
Update 5.mdx (#253)
mehrdadnd Jun 20, 2022
3d5c36d
Translation for Traditional Chinese (zh-tw) chapter0 (#251)
thisistz Jun 20, 2022
4ebc0b9
Translated the whole Chapter 3 to Thai (#255)
a-krirk Jun 20, 2022
bd16058
Japanese chapter 4 (#244)
HiromuHota Jun 21, 2022
147496a
Translation of 1/7, 1/8, and 1/9. (#263)
CaterinaBi Jun 27, 2022
71f71e4
[PT] add chapter 8.1 and 8.2 (#265)
johnnv1 Jun 27, 2022
712d3b1
[RU] Chapter 4 (#269)
pdumin Jun 30, 2022
228a218
Add Thai translation for chapter 6.3b to 6.10 (#268)
meanna Jun 30, 2022
89c79d3
add 8.3 (#266)
johnnv1 Jun 30, 2022
a6cb07c
3.mdx of chapter 01 (#260)
victorescosta Jun 30, 2022
f5d6f46
Fix typo (#271)
atgctg Jul 5, 2022
b59a5ec
[PT] add chapter 6.1 (#273)
mdrs-thiago Jul 5, 2022
e46ab85
add Japanese chapter7 (#267)
webbigdata-jp Jul 6, 2022
cd9e36d
Merge branch 'huggingface:main' into main
yaoqih Jul 13, 2022
610d61c
zh-CN - Chapter 4,5finished
yaoqih Jul 13, 2022
d804922
replace `load_metric` with `evaluate.load` (#285)
lvwerra Jul 21, 2022
c34bfad
[GJ] Translation to Gujarati - Ch0 Setup (#287)
bhadreshpsavani Jul 25, 2022
eae6501
[PT] add chapter 6.2 and 6.3 (#279)
mdrs-thiago Jul 25, 2022
1537727
Fix formatting
lewtun Jul 25, 2022
6fed4f7
Merge branch 'main' into 1375626371/main
lewtun Jul 25, 2022
bb26db5
Debug formatting
lewtun Jul 25, 2022
69187a3
Debug FR formatting
lewtun Jul 25, 2022
69accea
zh-CN - Chapter 4,5finished (#281)
yaoqih Jul 25, 2022
be15274
Chapter 01 - Done [PT] #51 (#280)
victorescosta Jul 25, 2022
4656735
tf_default_data_collator seems to have moved
ehrencrona Jul 31, 2022
aebb46e
Merge branch 'huggingface:main' into main
yaoqih Aug 1, 2022
e69fce2
zh-CN - Chapter 6finished
yaoqih Aug 1, 2022
6403eaa
Revert "Merge branch 'huggingface:main' into main"
yaoqih Aug 1, 2022
43fc1f7
Revert "zh-CN - Chapter 6finished"
yaoqih Aug 1, 2022
2bf870d
zh-CN - Chapter 6finished
yaoqih Aug 1, 2022
ef3b87b
fix style
Aug 4, 2022
85f75d7
undo bad commit
Aug 4, 2022
a9b6d48
Merge pull request #289 from ehrencrona/tf_default_data_collator-moved
Rocketknight1 Aug 4, 2022
b4b2316
Merge pull request #290 from 1375626371/main
lvwerra Aug 4, 2022
0ef247f
Chapter5it (#278)
Nolanogenn Aug 15, 2022
8dce82b
Merge branch 'release' into bump_release
lewtun Aug 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion chapters/en/chapter7/3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ def whole_word_masking_data_collator(features):
import collections
import numpy as np

from transformers.data import tf_default_data_collator
from transformers.data.data_collator import tf_default_data_collator

wwm_probability = 0.2

Expand Down
2 changes: 1 addition & 1 deletion chapters/fr/chapter7/3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ def whole_word_masking_data_collator(features):
import collections
import numpy as np

from transformers.data import tf_default_data_collator
from transformers.data.data_collator import tf_default_data_collator

wwm_probability = 0.2

Expand Down
19 changes: 19 additions & 0 deletions chapters/it/_toctree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,22 @@
title: Quiz di fine capitolo
quiz: 4

- title: 5. La libreria 🤗 Datasets
sections:
- local: chapter5/1
title: Introduzione
- local: chapter5/2
title: E se il mio dataset non è sull'Hub?
- local: chapter5/3
title: È arrivato il momento di tagliuzzare
- local: chapter5/4
title: Big data? Ci pensa 🤗 Datasets!
- local: chapter5/5
title: Creare il proprio dataset
- local: chapter5/6
title: Ricerca semantica con FAISS
- local: chapter5/7
title: 🤗 Datasets, check!
- local: chapter5/8
title: Quiz di fine capitolo
quiz: 5
17 changes: 17 additions & 0 deletions chapters/it/chapter5/1.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Introduzione

Nel [Capitolo 3](/course/chapter3) hai mosso i primi passi nella libreria 🤗 Datasets, e hai scoperto i tre passaggi fondamentali nell'ottimizzazione dei modelli:

1. Si carica un dataset dell'Hub Hugging Face.
2. Si processano i dati con `Dataset.map()`.
3. Si caricano e si elaborano le metriche.

Ma questo non è che un assaggio di ciò che 🤗 Datasets è in grado di fare! In questo capitolo approfondiremo le potenzialità della libreria. Durante questo percorso, troverai risposta alle seguenti domande:

* Cosa fare quando un dataset non è presente nell'Hub?
* Come fare a tagliuzzare il dataset? (E cosa succede se devi _proprio_ usare Pandas?)
* Cosa fare quando un dataset è tanto grande da sciogliere la RAM del tuo portatile?
* Cosa cavolo sono il "mappamento di memoria" e Apache Arrow?
* Come fare per creare il proprio dataset e pubblicarlo sull'Hub?

Le tecniche che imparerai ti prepareranno a compiti più avanzati di tokenizzazione e fine-tuning che troverai nei capitoli [Chapter 6](/course/chapter6) e [Chapter 7](/course/chapter7) -- quindi preparati una tazza di caffè e iniziamo!
167 changes: 167 additions & 0 deletions chapters/it/chapter5/2.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
# E se il mio dataset non è sull'Hub?

<DocNotebookDropdown
classNames="absolute z-10 right-0 top-0"
options={[
{label: "Google Colab", value: "https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/chapter5/section2.ipynb"},
{label: "Aws Studio", value: "https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/chapter5/section2.ipynb"},
]} />

Sai come usare l'[Hub Hugging Face](https://huggingface.co/datasets) per scaricare i dataset, ma spessa dovrai lavorare con dati che si trovano sul tuo computer, o so un server remoto. In questa sezione vederemo come usare 🤗 Datasets per caricare dataset che non sono disponibile nell'Hub Hugging Face.

<Youtube id="HyQgpJTkRdE"/>

## Lavorare con dataset locali e in remoto

🤗 Datasets mette a tua disposizione diversi script per caricare dataset in locale e in remoto. Sono supportati diversi formati di dati, tra cui:

| Formato dati | Script | Esempio |
| :----------------: | :------------: | :-----------------------------------------------------: |
| CSV & TSV | `csv` | `load_dataset("csv", data_files="my_file.csv")` |
| File di testo | `text` | `load_dataset("text", data_files="my_file.txt")` |
| JSON & JSON Lines | `json` | `load_dataset("json", data_files="my_file.jsonl")` |
| DataFrame serializzati in Pickle | `pandas` | `load_dataset("pandas", data_files="my_dataframe.pkl")` |

Come mostrato nella tabella, per ogni formato di dati abbiamo bisogno di specificare, all'interno della funzione `load_dataset()`, il tipo di script da utilizzare, assieme a `data_files`, che specifica il percorso verso uno o più file. Iniziamo a caricare un dataset proveniente da file locali; più tardi vederemo come fare la stessa cosa con file in remoto.

## Caricare un dataset locale

Per questo esempio useremo il [dataset SQuAD-it](https://github.com/crux82/squad-it/), un ampio dataset per il question answering in italiano

Le sezioni di addestramento e di test si trovano su GitHub, quindi possiamo scaricarle con un semplice comando `wget`:

```python
!wget https://github.com/crux82/squad-it/raw/master/SQuAD_it-train.json.gz
!wget https://github.com/crux82/squad-it/raw/master/SQuAD_it-test.json.gz
```

Questo scaricherà due file compressi chiamati *SQuAD_it-train.json.gz* e *SQuAD_it-test.json.gz*, che possiamo decomprimere con il comandi Linux `gzip`:

```python
!gzip -dkv SQuAD_it-*.json.gz
```

```bash
SQuAD_it-test.json.gz: 87.4% -- replaced with SQuAD_it-test.json
SQuAD_it-train.json.gz: 82.2% -- replaced with SQuAD_it-train.json
```

Vediamo che i dati compressi sono stati sostituiti da _SQuAD_it-train.json_ e _SQuAD_it-text.json_, e che i dati sono archiviati in formato JSON.

<Tip>

✎ Se ti stai chiedendo perché c'è un `!` nei comandi di shell precedenti, è perché li stiamo eseguendo da un notebook Jupyter. Se vuoi scaricare e decomprimere i dataset da un terminale, non devi fare altro che rimuovere il prefisso.

</Tip>

Per caricare un file JSON con la funzione `load_dataset()`, ci serve solo sapere se abbiamo a che fare con un normale JSON (simile a un dizionario annidato) o con un JSON Lines (JSON separato da righe). Come molti dataset per il question asnwring, SQuAD-it usa il formato annidato, con tutto il testo immagazzinato nel campo `data`. Questo significa che possiamo caricare il dataset specificando l'argomento `field` come segue:

```py
from datasets import load_dataset

squad_it_dataset = load_dataset("json", data_files="SQuAD_it-train.json", field="data")
```

Di default, caricare file locali create un oggetto `DatasetDict` con una sezione `train`. Possiamo vederlo ispezionando l'oggetto `squad_it_dataset`:

```py
squad_it_dataset
```

```python out
DatasetDict({
train: Dataset({
features: ['title', 'paragraphs'],
num_rows: 442
})
})
```

Questo ci mostra il numero di righe e i nomi delle colonne associate con il set di addestraento. Possiamo vedere uno degli esempi indicizzando la sezione `train`, come segue:

```py
squad_it_dataset["train"][0]
```

```python out
{
"title": "Terremoto del Sichuan del 2008",
"paragraphs": [
{
"context": "Il terremoto del Sichuan del 2008 o il terremoto...",
"qas": [
{
"answers": [{"answer_start": 29, "text": "2008"}],
"id": "56cdca7862d2951400fa6826",
"question": "In quale anno si è verificato il terremoto nel Sichuan?",
},
...
],
},
...
],
}
```

Benissimo, abbiamo caricare il nostro primo dataset locale! Ma anche se questo ha funzionato per la sezione di addestramento, vogliamo includere entrambe le sezioni `train` e `test` in un unico oggetto `DatasetDict` così da poter applicare le funzioni `Dataset.map()` su entrambi i dataset simultaneamente. Per fare questo, possiamo dare un dizionaro all'argomento `data_files`, per mappare ogni sezione a un file associato con quella sezione:

```py
data_files = {"train": "SQuAD_it-train.json", "test": "SQuAD_it-test.json"}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")
squad_it_dataset
```

```python out
DatasetDict({
train: Dataset({
features: ['title', 'paragraphs'],
num_rows: 442
})
test: Dataset({
features: ['title', 'paragraphs'],
num_rows: 48
})
})
```

Questo è proprio ciò che volevamo. Ora possiamo applicare diverse tecniche di preprocessamento per pulire i dati, tokenizzare le revisioni, e altro.

<Tip>

L'argomento `data_files` della funzione `load_dataset()` è molto flessibile, e può essere usato con un percorso file singolo, con una lista di percorsi file, o un dizionario che mappa i nomi delle sezioni ai percorsi file. È anche possibile usare comandi glob per recuperare tutti i file che soddisfano uno specifico pattern secondo le regole dello shell di Unix (ad esempio, è possibile recuperare tutti i file JSON presenti in una cartella usando il pattern `data_files="*.json"`). Consulta la [documentazione](https://huggingface.co/docs/datasets/loading.html#local-and-remote-files) 🤗 Datasets per maggiori informazioni.

</Tip>

Gli script presenti in 🤗 Datasets supportano la decompressione atuomatica dei file in input, quindi possiamo saltare l'uso di `gzip` puntando `data_files` direttamente ai file compressi:

```py
data_files = {"train": "SQuAD_it-train.json.gz", "test": "SQuAD_it-test.json.gz"}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")
```

Questo può essere utile se non vuoi decomprimere manualmente molti file GZIP. La decompressione automatica si applica inoltre ad altri formati comuni, come ZIP e TAR, basta solo puntare `data_files` ai file compressi ed è fatta!

Ora che sai come caricare i file locali dal tuo computer, guardiamo come caricare i file remoti.

## Caricare un dataset in remoto

Se lavori come data scientist o come programmatore per un'azienda, ci sono buone probabilità che i dataset da analizzare sono archiaviati su un qualche server in remoto. Per fortuna, caricare file remoti è semplice come caricare quelli locali! Invece di dare un percorso a file locali, puntiamo l'argomento `data_files` di `load_dataset()` a uno o più URL dove si trovano i file in remoto. Ad esempio, per il dataset SQuAD-it presente su GitHub, possiamo puntare `data_files` agli URL _SQuAD_it-*.json.gz_ come segue:

```py
url = "https://github.com/crux82/squad-it/raw/master/"
data_files = {
"train": url + "SQuAD_it-train.json.gz",
"test": url + "SQuAD_it-test.json.gz",
}
squad_it_dataset = load_dataset("json", data_files=data_files, field="data")
```

Questo codice restituisce lo stesso oggetto `DatasetDict` visto in precedenza, ma ci risparmia il passaggio manuale di scaricare e decomprimere i file _SQuAD_it-*.json.gz_. Questo conclude la nostra incursione nei diversi modi di caricare dataset che non sono presenti nell'Hub Hugging Face. Ora che abbiamo un dataset con cui giocare, sporchiamoci le mani con diverse tecniche di data-wrangling!

<Tip>

✏️ **Prova tu!** Scegli un altro dataset presente su GitHub o sulla [Repository di Machine Learning UCI](https://archive.ics.uci.edu/ml/index.php) e cerca di caricare sia in locale che in remoto usando le tecniche introdotte in precedenza. Per punti extra, prova a caricare un dataset archiviato in formato CSV o testuale (vedi la [documentazione](https://huggingface.co/docs/datasets/loading.html#local-and-remote-files) per ulteriori informazioni su questi formati).

</Tip>


Loading