Loo / README.md
Clemylia's picture
Update README.md
4817d70 verified
---
library_name: transformers
tags:
- generated_from_trainer
model-index:
- name: Loo
results: []
license: other
datasets:
- Clemylia/Loo-token
language:
- fr
pipeline_tag: text-generation
---
# 🤖 Documentation du Modèle Loo : `Clemylia/Loo`
![Loo](http://www.image-heberg.fr/files/17625232863910210666.jpg)
Ce document présente le modèle **Loo**, ses fonctionnalités, ses conditions d'utilisation et les instructions pour son déploiement et son test.
-----
## 🎯 Aperçu du Modèle
Le modèle **Loo** est un modèle de langage génératif entraîné *from scratch* (à partir de zéro) par Clemylia. Il est spécialisé dans la **génération de séquences numériques et d'opérations mathématiques** en réponse à des requêtes formulées en français.
| Caractéristique | Détails |
| :--- | :--- |
| **Architecture** | GPT-2 de petite taille (personnalisée) |
| **But** | Génération de suites de nombres (pairs, impairs, aléatoires, etc.) et d'expressions arithmétiques. |
| **Langue** | Français |
| **Dataset** | Dataset propriétaire (`Clemylia/Loo-token`), axé sur les chiffres et les opérateurs. |
| **Tokenizer Associé** | `Clemylia/Loo-tokenizer` |
### Fonctionnalités
**Loo** excelle dans la création de sorties non-calculatoires, telles que :
* **Génération de Séquences :** Répondre à des requêtes comme "Donne 5 nombres pairs" par une liste de chiffres (ex: `2, 4, 6, 8, 10`).
* **Génération d'Opérations :** Générer des expressions arithmétiques (additions, soustractions, multiplications, divisions), y compris des parenthèses (ex: `15 + (4 * 2)`).
* **Nombres Spéciaux :** Génération de nombres aléatoires, décimaux, ou séquences spécifiques.
> **⚠️ Attention : Loo est un modèle *génératif*, pas un calculateur.** Il ne fournit **jamais** la solution ou le résultat des opérations mathématiques qu'il génère.
-----
## 🔒 Licence et Conditions d'Utilisation
**Le modèle Loo n'est pas un logiciel libre (Open Source).** Il est mis à disposition sous une **Licence Personnalisée et Restrictive** définie par Clemylia.
### 1\. Restrictions d'Utilisation
* **Commerciale :** L'utilisation du modèle **à des fins commerciales ou lucratives est strictement interdite** sans l'acquisition d'une licence commerciale formelle auprès de Clemylia.
* **Modification et Redistribution :** La modification, la redistribution, ou l'utilisation du code source ou des poids du modèle pour l'entraînement d'autres modèles est **interdite**.
* **Recherche :** L'utilisation pour la recherche non-commerciale est autorisée, à condition de **citer clairement** le modèle et l'auteur (Clemylia).
### 2\. Contact
Pour toute demande de licence commerciale ou de renseignements sur les conditions d'utilisation, veuillez contacter l'auteur : Clemylia (musicclem15@gmail.com)
-----
## 🚀 Utilisation et Déploiement
Le modèle Loo doit toujours être utilisé conjointement avec son tokenizer.
### 1\. Chargement
Utilisez la classe `AutoModelForCausalLM` pour charger le modèle.
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
MODEL_ID = "Clemylia/Loo-Math-Generator"
TOKENIZER_ID = "Clemylia/Loo-tokenizer"
tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_ID)
model = AutoModelForCausalLM.from_pretrained(MODEL_ID)
```
### 2\. Structure du Prompt (Essentielle)
Pour obtenir une réponse pertinente de Loo, l'entrée utilisateur doit respecter le format d'entraînement du modèle :
$$
\text{`prompt: [Votre Question] send:`}
$$**Le séparateur ` send: ` est obligatoire** pour indiquer au modèle où commencer la génération de la réponse.
### 3\. Exemple de Génération
```python
import torch
prompt = "prompt: Écris une suite de 4 nombres divisibles par 5 send:"
input_ids = tokenizer.encode(prompt, return_tensors="pt")
# Définition des paramètres de génération
output = model.generate(
input_ids,
max_length=50,
num_return_sequences=1,
do_sample=True, # Permet une génération aléatoire (créative)
top_k=50,
temperature=0.8, # Recommandé pour la diversité numérique
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id
)
# Décodage et Nettoyage de la réponse
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
response_start = generated_text.find("send:") + len("send:")
final_answer = generated_text[response_start:].strip()
print(f"Loo génère : {final_answer}")
# Exemple de sortie : 10, 15, 20, 25
```
-----
## 📊 Limites et Risques
Étant un modèle *from scratch* entraîné sur un dataset limité (actuellement 140 exemples), **Loo** présente des limites :
1. **Génération Répétitive :** Si le prompt est trop vague ou sort du domaine d'entraînement, le modèle peut générer des séquences répétitives ou non pertinentes (par exemple, répéter le prompt).
2. **Longueur de Séquence :** La qualité de la génération diminue au-delà d'une certaine longueur (généralement après 30-40 tokens).
3. **Biais du Dataset :** Le modèle ne générera que les types d'opérations et de séquences qu'il a vus durant l'entraînement. Il ne peut pas inventer de nouveaux concepts mathématiques.
**Lisibilité des résultats : Chaque chiffres et nombres et partie de réponse sont précéder d'un caractère : G**
Loo peut être considérée comme un Ultra-SLM ou un SLM casual.