--- library_name: transformers license: other datasets: Clemylia/Loo-token language: - fr pipeline_tag: text-generation --- # 📖 Documentation du Tokenizer Loo : `Clemylia/Loo-tokenizer` ![Loo](http://www.image-heberg.fr/files/17625232863910210666.jpg) 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 \! 💻 $$