File size: 4,751 Bytes
6a4c35b becd248 5e4f600 0ebc954 5e4f600 ef6b486 9e9ef57 06c11b7 2533340 06c11b7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
---
library_name: transformers
license: other
datasets: Clemylia/Loo-token
language:
- fr
pipeline_tag: text-generation
---
# 📖 Documentation du Tokenizer Loo : `Clemylia/Loo-tokenizer`

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**.
-----
## 💡 Objectif du Tokenizer
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).
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.
-----
## 🛠️ Chargement du Tokenizer
Le tokenizer est publié sur le Hugging Face Hub et peut être chargé facilement en utilisant la classe `AutoTokenizer`.
### Installation
Assurez-vous d'avoir la librairie `transformers` installée :
```bash
pip install transformers
```
### Chargement en Python
```python
from transformers import AutoTokenizer
# Le nom de la ressource publiée sur Hugging Face
TOKENIZER_ID = "Clemylia/Loo-tokenizer"
print(f"Chargement du tokenizer {TOKENIZER_ID}...")
tokenizer_loo = AutoTokenizer.from_pretrained(TOKENIZER_ID)
print("Chargement réussi ! ✅")
```
-----
## 🏷️ Tokens Spéciaux
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.
| Token | Description |
| :--- | :--- |
| `<|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. |
| `[PAD]` | **Padding Token** : Utilisé pour rendre toutes les séquences de la même longueur dans un batch. |
> **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).
-----
## 🚀 Utilisation et Flux de Travail
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**.
### 1\. Préparation pour l'Entraînement / Génération
Pour que Loo réponde correctement, l'entrée doit toujours suivre le format d'entraînement :
$$
\text{`prompt: [Votre Requête] send: [La Réponse Souhaitée]`} <|endoftext|>
$$**Exemple de tokenization d'un prompt :**
```python
prompt_test = "prompt: Donne moi une addition simple send:"
tokens = tokenizer_loo(prompt_test, return_tensors="pt")
print("Tokens IDs:", tokens['input_ids'][0].tolist())
print("Tokens décodés:", tokenizer_loo.convert_ids_to_tokens(tokens['input_ids'][0].tolist()))
```
### 2\. Décodage (Post-Traitement)
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 `é`).
Lors du décodage d'une sortie brute du modèle (`output`):
* Utilisez `skip_special_tokens=True` pour retirer le token `<|endoftext|>` et `[PAD]`.
* Effectuez une étape de nettoyage pour n'extraire que le contenu après le séparateur `send:`.
**Exemple de post-traitement de la réponse du modèle :**
```python
# Supposons que ceci est la sortie brute (décodée sans nettoyage)
generated_raw = "prompt: Donne moi une addition simple send: 5 + 3<|endoftext|>"
# Décodage propre (retire les tokens spéciaux)
cleaned_text = tokenizer_loo.decode(output_ids, skip_special_tokens=True)
# Extraction de la réponse
response_start = cleaned_text.find("send:") + len("send:")
final_answer = cleaned_text[response_start:].strip()
print(f"Réponse finale de Loo: {final_answer}")
# Sortie: Réponse finale de Loo: 5 + 3
```
-----
## ⚙️ Paramètres Clés
| Paramètre du Tokenizer | Valeur | Rôle |
| :--- | :--- | :--- |
| `max_len` | 128 | Longueur maximale des séquences supportée par le tokenizer. |
| `vocab_size` | 1000 | Taille du vocabulaire entraîné (peut être plus grand si des octets spéciaux sont inclus). |
| `padding_side` | `right` (par défaut) | Indique où placer les tokens de padding. |
| `truncation_side` | `right` (par défaut) | Indique où tronquer la séquence si elle dépasse `max_len`. |
Pour toute question ou contribution au tokenizer Loo, veuillez consulter le dépôt Hugging Face associé \! Bonne utilisation \! 💻
$$ |