Text Generation
Transformers
French
Clemylia commited on
Commit
06c11b7
·
verified ·
1 Parent(s): 6d20485

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +114 -1
README.md CHANGED
@@ -7,4 +7,117 @@ language:
7
  pipeline_tag: text-generation
8
  ---
9
 
10
- documentation a venir
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  pipeline_tag: text-generation
8
  ---
9
 
10
+ # 📖 Documentation du Tokenizer Loo : `Clemylia/Loo-tokenizer`
11
+
12
+ Ce document guide les utilisateurs sur la manière de charger et d'utiliser le tokenizer spécialement conçu pour le modèle de génération mathématique **Loo**.
13
+
14
+ -----
15
+
16
+ ## 💡 Objectif du Tokenizer
17
+
18
+ Le tokenizer **Loo** est un tokenizer de type **Byte-Pair Encoding (BPE)** spécialement entraîné sur des requêtes en langage naturel (français) et des séquences de sortie contenant des chiffres, des opérations mathématiques (`+`, `-`, `*`, `/`) et des séparateurs (virgules, points).
19
+
20
+ Son but principal est de **mapper efficacement** les entrées de l'utilisateur (colonne `prompt`) et les sorties générées par Loo (colonne `send`) en séquences numériques (IDs de tokens) que le modèle peut traiter.
21
+
22
+ -----
23
+
24
+ ## 🛠️ Chargement du Tokenizer
25
+
26
+ Le tokenizer est publié sur le Hugging Face Hub et peut être chargé facilement en utilisant la classe `AutoTokenizer`.
27
+
28
+ ### Installation
29
+
30
+ Assurez-vous d'avoir la librairie `transformers` installée :
31
+
32
+ ```bash
33
+ pip install transformers
34
+ ```
35
+
36
+ ### Chargement en Python
37
+
38
+ ```python
39
+ from transformers import AutoTokenizer
40
+
41
+ # Le nom de la ressource publiée sur Hugging Face
42
+ TOKENIZER_ID = "Clemylia/Loo-tokenizer"
43
+
44
+ print(f"Chargement du tokenizer {TOKENIZER_ID}...")
45
+ tokenizer_loo = AutoTokenizer.from_pretrained(TOKENIZER_ID)
46
+ print("Chargement réussi ! ✅")
47
+ ```
48
+
49
+ -----
50
+
51
+ ## 🏷️ Tokens Spéciaux
52
+
53
+ Le tokenizer **Loo** utilise un ensemble minimal de tokens spéciaux, essentiels pour la structure du modèle génératif de type GPT-2.
54
+
55
+ | Token | Description |
56
+ | :--- | :--- |
57
+ | `<|endoftext|>` | **End-Of-Sequence (EOS)** : Marque la fin d'une séquence. **C'est le token crucial** pour indiquer à Loo qu'il doit arrêter la génération. |
58
+ | `[PAD]` | **Padding Token** : Utilisé pour rendre toutes les séquences de la même longueur dans un batch. |
59
+
60
+ > **Note importante** : Le token `[PAD]` a été ajouté manuellement lors de la création du tokenizer pour garantir le bon fonctionnement du modèle génératif (Causal Language Modeling).
61
+
62
+ -----
63
+
64
+ ## 🚀 Utilisation et Flux de Travail
65
+
66
+ Le tokenizer Loo est conçu pour fonctionner avec un flux de travail spécifique : la **concaténation du prompt et de la réponse**.
67
+
68
+ ### 1\. Préparation pour l'Entraînement / Génération
69
+
70
+ Pour que Loo réponde correctement, l'entrée doit toujours suivre le format d'entraînement :
71
+
72
+ $$
73
+ \text{`prompt: [Votre Requête] send: [La Réponse Souhaitée]`} <|endoftext|>
74
+ $$**Exemple de tokenization d'un prompt :**
75
+
76
+ ```python
77
+ prompt_test = "prompt: Donne moi une addition simple send:"
78
+
79
+ tokens = tokenizer_loo(prompt_test, return_tensors="pt")
80
+
81
+ print("Tokens IDs:", tokens['input_ids'][0].tolist())
82
+ print("Tokens décodés:", tokenizer_loo.convert_ids_to_tokens(tokens['input_ids'][0].tolist()))
83
+ ```
84
+
85
+ ### 2\. Décodage (Post-Traitement)
86
+
87
+ Le tokenizer Loo utilise le `ByteLevel` post-processor, ce qui signifie que le décodage gère automatiquement les espaces et les caractères accentués français (évitant les `Ġ` ou les problèmes d'encodage comme `é`).
88
+
89
+ Lors du décodage d'une sortie brute du modèle (`output`):
90
+
91
+ * Utilisez `skip_special_tokens=True` pour retirer le token `<|endoftext|>` et `[PAD]`.
92
+ * Effectuez une étape de nettoyage pour n'extraire que le contenu après le séparateur `send:`.
93
+
94
+ **Exemple de post-traitement de la réponse du modèle :**
95
+
96
+ ```python
97
+ # Supposons que ceci est la sortie brute (décodée sans nettoyage)
98
+ generated_raw = "prompt: Donne moi une addition simple send: 5 + 3<|endoftext|>"
99
+
100
+ # Décodage propre (retire les tokens spéciaux)
101
+ cleaned_text = tokenizer_loo.decode(output_ids, skip_special_tokens=True)
102
+
103
+ # Extraction de la réponse
104
+ response_start = cleaned_text.find("send:") + len("send:")
105
+ final_answer = cleaned_text[response_start:].strip()
106
+
107
+ print(f"Réponse finale de Loo: {final_answer}")
108
+ # Sortie: Réponse finale de Loo: 5 + 3
109
+ ```
110
+
111
+ -----
112
+
113
+ ## ⚙️ Paramètres Clés
114
+
115
+ | Paramètre du Tokenizer | Valeur | Rôle |
116
+ | :--- | :--- | :--- |
117
+ | `max_len` | 128 | Longueur maximale des séquences supportée par le tokenizer. |
118
+ | `vocab_size` | 1000 | Taille du vocabulaire entraîné (peut être plus grand si des octets spéciaux sont inclus). |
119
+ | `padding_side` | `right` (par défaut) | Indique où placer les tokens de padding. |
120
+ | `truncation_side` | `right` (par défaut) | Indique où tronquer la séquence si elle dépasse `max_len`. |
121
+
122
+ Pour toute question ou contribution au tokenizer Loo, veuillez consulter le dépôt Hugging Face associé \! Bonne utilisation \! 💻
123
+ $$