|
|
--- |
|
|
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` |
|
|
|
|
|
 |
|
|
|
|
|
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. |