Skip to content

Commit

Permalink
[FR] Visual corrections (#190)
Browse files Browse the repository at this point in the history
  • Loading branch information
lbourdois authored May 19, 2022
1 parent 04d9444 commit 833ae2d
Show file tree
Hide file tree
Showing 16 changed files with 293 additions and 265 deletions.
4 changes: 3 additions & 1 deletion chapters/fr/_toctree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
- local: chapter5/3
title: Il est temps de trancher et de découper
- local: chapter5/4
title: Données massives ? 🤗 Des jeux de données à la rescousse !
title: Données massives ? 🤗 Datasets à la rescousse !
- local: chapter5/5
title: Création de votre propre jeu de données
- local: chapter5/6
Expand Down Expand Up @@ -186,6 +186,8 @@
- local: chapter9/7
title: Introduction aux Blocks
- local: chapter9/8
title: 🤗 Gradio, coché !
- local: chapter9/9
title: Quiz de fin de chapitre
quiz: 9

Expand Down
4 changes: 4 additions & 0 deletions chapters/fr/chapter1/1.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,16 @@ Après avoir terminé ce cours, nous vous recommandons de suivre la [Spécialisa

À propos des auteurs de ce cours :

*Abubakar Abid** a obtenu son doctorat à Stanford en apprentissage automatique appliqué. Pendant son doctorat, il a fondé [Gradio](https://github.com/gradio-app/gradio), une bibliothèque Python open-source qui a été utilisée pour construire plus de 600 000 démos d'apprentissage automatique. Gradio a été rachetée par Hugging Face, où Abubakar occupe désormais le poste de responsable de l'équipe d'apprentissage automatique.

**Matthew Carrigan** est ingénieur en apprentissage machine chez Hugging Face. Il vit à Dublin en Irlande. Il a travaillé auparavant comme ingénieur en apprentissage machine chez Parse.ly et avant cela comme chercheur postdoctoral au Trinity College Dublin. Il ne croit pas que nous arrivions à l'*AGI* en mettant à l'échelle les architectures existantes mais a tout de même beaucoup d'espoir dans l'immortalité des robots.

**Lysandre Debut** est ingénieur en apprentissage machine chez Hugging Face et a travaillé sur la bibliothèque 🤗 *Transformers* depuis les premières phases de développement. Son but est de rendre le NLP accessible à tous en développant des outils disposant d'une API très simple.

**Sylvain Gugger** est ingénieur recherche chez Hugging Face et un des principaux responsables de la bibliothèque 🤗 *Transformers*. Avant cela, il était chercheur en en apprentissage machine chez fast.ai et a écrit le livre [*Deep Learning for Coders with fastai and PyTorch*](https://learning.oreilly.com/library/view/deep-learning-for/9781492045519/) avec Jeremy Howard. Son but est de rendre l'apprentissage profond plus accessible, en développant et en améliorant des techniques permettant aux modèles d'apprendre rapidement sur des ressources limitées.

**Dawood Khan** est un ingénieur en apprentissage automatique chez Hugging Face. Il vient de New York et est diplômé de l'Université de New York en informatique. Après avoir travaillé comme ingénieur iOS pendant quelques années, Dawood a quitté son poste pour créer Gradio avec ses cofondateurs. Gradio a finalement été acquis par Hugging Face.

**Merve Noyan** est développeuse *advocate* chez Hugging Face et travaille à la création d'outils et de contenus visant à démocratiser l'apprentissage machine pour tous.

**Lucile Saulnier** est ingénieure en apprentissage machine chez Hugging Face et travaille au développement et à l'implémentation de nombreux outils *open source*. Elle est également activement impliquée dans de nombreux projets de recherche dans le domaine du NLP comme l'entraînement collaboratif de modèles et le projet BigScience.
Expand Down
18 changes: 12 additions & 6 deletions chapters/fr/chapter1/3.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -163,18 +163,24 @@ from transformers import pipeline

generator = pipeline("text-generation", model="distilgpt2")
generator(
"In this course, we will teach you how to", # Dans ce cours, nous vous enseignerons comment
"In this course, we will teach you how to",
# Dans ce cours, nous vous enseignerons comment
max_length=30,
num_return_sequences=2,
)
```

```python out
[{'generated_text': 'In this course, we will teach you how to manipulate the world and ' # Dans ce cours, nous vous enseignerons comment manipuler le monde et
'move your mental and physical capabilities to your advantage.'}, # utiliser vos capacités mentales et physiques à votre avantage.
{'generated_text': 'In this course, we will teach you how to become an expert and ' # Dans ce cours, nous vous apprendrons comment devenir un expert et
'practice realtime, and with a hands on experience on both real ' # pratique en temps réel, et avec une expérience pratique à la fois sur de vrais
'time and real'}] # temps et réel
[{'generated_text': 'In this course, we will teach you how to manipulate the world and '
# Dans ce cours, nous vous enseignerons comment manipuler le monde et
'move your mental and physical capabilities to your advantage.'},
# utiliser vos capacités mentales et physiques à votre avantage.
{'generated_text': 'In this course, we will teach you how to become an expert and '
# Dans ce cours, nous vous apprendrons comment devenir un expert et
'practice realtime, and with a hands on experience on both real '
# pratique en temps réel, et avec une expérience pratique à la fois sur de vrais
'time and real'}]
# temps et réel
```

Vous pouvez améliorer votre recherche de modèle en cliquant sur les *filtres* de langue et choisir un modèle qui génère du texte dans une autre langue. Le *Hub* contient également des *checkpoints* pour des modèles multilingues qui supportent plusieurs langues.
Expand Down
6 changes: 3 additions & 3 deletions chapters/fr/chapter3/4.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ Une fois encore, vos résultats seront légèrement différents en raison du car

</Tip>

### Optimisez votre boucle d'entraînement avec 🤗 *Accelerate*
### Optimisez votre boucle d'entraînement avec 🤗 <i>Accelerate</i>

<Youtube id="s7dy8QRgjJ0" />

Expand Down Expand Up @@ -295,7 +295,7 @@ Ensuite, le gros du travail est fait dans la ligne qui envoie les *dataloaders*,
⚠️ Afin de bénéficier de la rapidité offerte par les TPUs du Cloud, nous vous recommandons de rembourrer vos échantillons à une longueur fixe avec les arguments `padding="max_length"` et `max_length` du <i>tokenizer</i>.
</Tip>

Si vous souhaitez faire un copier-coller pour jouer, voici à quoi ressemble la boucle d'entraînement complète avec 🤗 *Accelerate* :
Si vous souhaitez faire un copier-coller pour jouer, voici à quoi ressemble la boucle d'entraînement complète avec 🤗 <i>Accelerate</i> :

```py
from accelerate import Accelerator
Expand Down Expand Up @@ -356,4 +356,4 @@ from accelerate import notebook_launcher
notebook_launcher(training_function)
```

Vous trouverez d'autres exemples dans le dépôt d'[🤗 *Accelerate*](https://github.com/huggingface/accelerate/tree/main/examples).
Vous trouverez d'autres exemples dans le dépôt d'[🤗 *Accelerate*](https://github.com/huggingface/accelerate/tree/main/examples).
4 changes: 2 additions & 2 deletions chapters/fr/chapter6/10.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Testons ce que vous avez appris dans ce chapitre !
correct: true
},
{
text: "Les *tokenizers* rapides sont toujours plus rapides que leurs homologues lents.",
text: "Les <i>tokenizers</i> rapides sont toujours plus rapides que leurs homologues lents.",
explain: "Un <i>tokenizer</i> rapide peut en fait être plus lent si vous ne lui donnez qu'un seul ou très peu de textes, car il ne peut pas utiliser le parallélisme."
},
{
Expand Down Expand Up @@ -164,7 +164,7 @@ Testons ce que vous avez appris dans ce chapitre !
explain: "C'est l'étape de normalisation."
},
{
text: "C'est l'étape qui précède l'application du modèle *tokenizer*, pour diviser l'entrée en mots.",
text: "C'est l'étape qui précède l'application du modèle <i>tokenizer</i>, pour diviser l'entrée en mots.",
explain: "C'est la bonne réponse !",
correct: true
},
Expand Down
2 changes: 1 addition & 1 deletion chapters/fr/chapter6/2.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ Cette commande peut prendre un peu de temps si votre corpus est très grand. Pou

Notez que `AutoTokenizer.train_new_from_iterator()` ne fonctionne que si le *tokenizer* que vous utilisez est un *tokenizer* « rapide ». Comme vous le verrez dans la section suivante, la bibliothèque 🤗 *Transformers* contient deux types de *tokenizers* : certains sont écrits en pur Python et d'autres (les rapides) sont soutenus par la bibliothèque 🤗 *Tokenizers* qui est écrite dans le langage [Rust](https://www.rust-lang.org). Python est le langage le plus souvent utilisé pour les applications de science des données et d'apprentissage profond, mais lorsque quelque chose doit être parallélisé pour être rapide, il faut que cela soit écrit dans un autre langage. Par exemple, les multiplications matricielles qui sont au cœur du calcul du modèle sont écrites en CUDA, une bibliothèque en C optimisée pour les GPUs.

Entraîner un tout nouveau *tokenizer* en Python pur est atrocement lent, c'est pourquoi nous avons développé la bibliothèque 🤗 *Tokenizers*. Notez que, tout comme vous n'avez pas eu à apprendre le langage CUDA pour pouvoir exécuter votre modèle sur un batch d'entrées sur un GPU, vous n'aurez pas besoin d'apprendre Rust pour utiliser un *tokenizer* rapide. La bibliothèque 🤗 *Tokenizers* fournit des liaisons Python pour de nombreuses méthodes qui appellent en interne un morceau de code en Rust. Par exemple, pour paralléliser l'entraînement de votre nouveau *tokenizer* ou, comme nous l'avons vu dans le [Chapitre 3](/course/fr/chapter3), la tokenisation d'un lot d'entrées.
Entraîner un tout nouveau *tokenizer* en Python pur est atrocement lent, c'est pourquoi nous avons développé la bibliothèque 🤗 *Tokenizers*. Notez que, tout comme vous n'avez pas eu à apprendre le langage CUDA pour pouvoir exécuter votre modèle sur un batch d'entrées sur un GPU, vous n'aurez pas besoin d'apprendre Rust pour utiliser un *tokenizer* rapide. La bibliothèque 🤗 *Tokenizers* fournit des liaisons Python pour de nombreuses méthodes qui appellent en interne un morceau de code en Rust. Par exemple, pour paralléliser l'entraînement de votre nouveau *tokenizer* ou, comme nous l'avons vu dans le [chapitre 3](/course/fr/chapter3), la tokenisation d'un lot d'entrées.

La plupart des *transformers* ont un *tokenizer* rapide de disponible. Il y a quelques exceptions que vous pouvez vérifier [ici](https://huggingface.co/transformers/#supported-frameworks). S'il est disponible, l'API `AutoTokenizer` sélectionne toujours pour vous le *tokenizer* rapide. Dans la prochaine section, nous allons jeter un coup d'oeil à certaines des autres caractéristiques spéciales des *tokenizers* rapides, qui seront très utiles pour des tâches comme la classification de *tokens* et la réponse aux questions. Mais avant cela, essayons notre tout nouveau *tokenizer* sur l'exemple précédent :

Expand Down
4 changes: 2 additions & 2 deletions chapters/fr/chapter6/5.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,9 @@ corpus = [
"This chapter is about tokenization.",
# Ce chapitre traite de la tokenisation.
"This section shows several tokenizer algorithms.",
# Cette section présente plusieurs algorithmes de *tokenizer*.
# Cette section présente plusieurs algorithmes de tokenizer.
"Hopefully, you will be able to understand how they are trained and generate tokens.",
# Avec un peu de chance, vous serez en mesure de comprendre comment ils sont entraînés et génèrent des *tokens*.
# Avec un peu de chance, vous serez en mesure de comprendre comment ils sont entraînés et génèrent des tokens.
]
```

Expand Down
4 changes: 2 additions & 2 deletions chapters/fr/chapter6/6.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ corpus = [
"This chapter is about tokenization.",
# This chapter is about tokenization
"This section shows several tokenizer algorithms.",
# Cette section présente plusieurs algorithmes de *tokenizer*.
# Cette section présente plusieurs algorithmes de tokenizer.
"Hopefully, you will be able to understand how they are trained and generate tokens.",
# Avec un peu de chance, vous serez en mesure de comprendre comment ils sont entraînés et génèrent des *tokens*.
# Avec un peu de chance, vous serez en mesure de comprendre comment ils sont entraînés et génèrent des tokens.
]
```

Expand Down
2 changes: 1 addition & 1 deletion chapters/fr/chapter9/1.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Voici quelques exemples de démos d'apprentissage automatique construites avec G

* Un modèle extractif de **réponse à une question** qui prend en entrée un paragraphe de contexte et une requête et produit une réponse et un score de probabilité (nous avons discuté de ce type de modèle [au chapitre 7](/course/fr/chapter7/7)) :

<iframe src="https://hf.space/gradioiframe/abidlabs/question-answering-simple/+" frameBorder="0" height="420" title="Gradio app" class="container p-0 flex-grow space-iframe" allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>
<iframe src="https://hf.space/gradioiframe/abidlabs/question-answering-simple/+" frameBorder="0" height="640" title="Gradio app" class="container p-0 flex-grow space-iframe" allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>

* Un modèle de **suppression de l'arrière-plan** qui prend une image et la restitue avec l'arrière-plan supprimé :

Expand Down
Loading

0 comments on commit 833ae2d

Please sign in to comment.