Update README.md
Browse files
README.md
CHANGED
|
@@ -11,4 +11,102 @@ language:
|
|
| 11 |
base_model:
|
| 12 |
- Clemylia/Melta27
|
| 13 |
pipeline_tag: text-generation
|
| 14 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
base_model:
|
| 12 |
- Clemylia/Melta27
|
| 13 |
pipeline_tag: text-generation
|
| 14 |
+
---
|
| 15 |
+
# 📄 Documentation du Modèle Eleonord/Melta27-Animaux
|
| 16 |
+
|
| 17 |
+
## 🦁 Aperçu du Modèle
|
| 18 |
+
|
| 19 |
+
**Melta27-Animaux** est une version affinée (fine-tuned) du modèle de langage de petite taille (SLM) **Melta27** créé par Clemylia, basé sur l'architecture propriétaire **Aricate v4**.
|
| 20 |
+
|
| 21 |
+
Ce modèle a été entraîné spécifiquement sur la dataset **Eleonord/Animaux** pour étendre son vocabulaire et améliorer sa capacité à générer des réponses cohérentes sur le thème des **animaux**.
|
| 22 |
+
|
| 23 |
+
* **Modèle de base :** Clemylia/Melta27
|
| 24 |
+
* **Architecture :** Aricate v4***
|
| 25 |
+
* **Dataset d'entraînement (Fine-Tuning) :** Eleonord/Animaux
|
| 26 |
+
|
| 27 |
+
## ⚙️ Configuration Technique
|
| 28 |
+
|
| 29 |
+
Le modèle conserve les hyperparamètres de l'architecture Aricate v4 de base, mais avec un vocabulaire étendu.
|
| 30 |
+
|
| 31 |
+
| Paramètre | Valeur | Description |
|
| 32 |
+
| :--- | :--- | :--- |
|
| 33 |
+
| `vocab_size` | (Automatique) | **Taille du vocabulaire étendue**, incluant le vocabulaire de base de Melta27 plus les mots de la dataset Eleonord/Animaux. |
|
| 34 |
+
| `embedding_dim` | 64 | Dimension de la couche d'Embedding. |
|
| 35 |
+
| `hidden_dim` | 128 | Dimension cachée du réseau GRU. |
|
| 36 |
+
| `num_layers` | 2 | Nombre de couches récurrentes (GRU). |
|
| 37 |
+
|
| 38 |
+
## 🚀 Utilisation du Modèle pour la Génération
|
| 39 |
+
|
| 40 |
+
Puisque ce modèle utilise l'architecture Aricate v4 et un tokenizer personnalisé (`aricate_tokenizer.txt`), il ne peut pas être chargé directement par les classes `AutoModel` ou `AutoTokenizer` de la librairie Hugging Face `transformers`.
|
| 41 |
+
|
| 42 |
+
Tu dois utiliser la structure de classe `AricateModel` et `WordTokenizer` fournie par l'architecture.
|
| 43 |
+
|
| 44 |
+
### 1\. Chargement du Modèle et du Tokenizer
|
| 45 |
+
|
| 46 |
+
Pour charger le modèle et le tokenizer à partir de ce dépôt, tu peux utiliser les fonctions de la librairie `huggingface_hub` :
|
| 47 |
+
|
| 48 |
+
```python
|
| 49 |
+
import torch
|
| 50 |
+
import json
|
| 51 |
+
from huggingface_hub import hf_hub_download
|
| 52 |
+
# Assurez-vous d'avoir les classes AricateModel et WordTokenizer définies dans votre script
|
| 53 |
+
from votre_script_aricate import AricateModel, WordTokenizer
|
| 54 |
+
|
| 55 |
+
# --- A. Téléchargement des fichiers ---
|
| 56 |
+
REPO_ID = "Eleonord/Melta27-Animaux"
|
| 57 |
+
|
| 58 |
+
# Téléchargement de la configuration
|
| 59 |
+
config_path = hf_hub_download(repo_id=REPO_ID, filename="config.json")
|
| 60 |
+
with open(config_path, 'r') as f:
|
| 61 |
+
config = json.load(f)
|
| 62 |
+
|
| 63 |
+
# Téléchargement du tokenizer
|
| 64 |
+
tokenizer_path = hf_hub_download(repo_id=REPO_ID, filename="aricate_tokenizer.txt")
|
| 65 |
+
with open(tokenizer_path, 'r', encoding='utf-8') as f:
|
| 66 |
+
vocab_data = json.load(f)
|
| 67 |
+
|
| 68 |
+
# Téléchargement des poids (safetensors)
|
| 69 |
+
weights_path = hf_hub_download(repo_id=REPO_ID, filename="model.safetensors")
|
| 70 |
+
|
| 71 |
+
# --- B. Initialisation ---
|
| 72 |
+
# 1. Initialisation du Tokenizer avec le vocabulaire téléchargé
|
| 73 |
+
tokenizer = WordTokenizer(existing_vocab=vocab_data)
|
| 74 |
+
|
| 75 |
+
# 2. Initialisation du Modèle
|
| 76 |
+
model = AricateModel(**config)
|
| 77 |
+
|
| 78 |
+
# 3. Chargement des poids
|
| 79 |
+
pretrained_state_dict = torch.load(weights_path, map_location="cpu")
|
| 80 |
+
model.load_state_dict(pretrained_state_dict)
|
| 81 |
+
|
| 82 |
+
model.eval()
|
| 83 |
+
print(f"Modèle {REPO_ID} chargé et prêt à l'emploi.")
|
| 84 |
+
```
|
| 85 |
+
|
| 86 |
+
### 2\. Génération de Séquence
|
| 87 |
+
|
| 88 |
+
Utilise la fonction `generate_sequence_beam` (définie dans ton script d'entraînement) pour interroger le modèle.
|
| 89 |
+
|
| 90 |
+
```python
|
| 91 |
+
# Exemple d'utilisation (en supposant que generate_sequence_beam est défini)
|
| 92 |
+
question = "Quel animal dort debout ?"
|
| 93 |
+
max_len_input = 20 # Longueur maximale des séquences d'entrée utilisées lors de l'entraînement
|
| 94 |
+
|
| 95 |
+
response = generate_sequence_beam(
|
| 96 |
+
model=model,
|
| 97 |
+
tokenizer=tokenizer,
|
| 98 |
+
question=question,
|
| 99 |
+
max_length=30,
|
| 100 |
+
max_len_input=max_len_input,
|
| 101 |
+
beam_size=3
|
| 102 |
+
)
|
| 103 |
+
|
| 104 |
+
print(f"Question : {question}")
|
| 105 |
+
print(f"Réponse générée : {response}")
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
+
## 📝 Licence et Auteur
|
| 109 |
+
|
| 110 |
+
* **Licence :** (MIT)
|
| 111 |
+
* **Auteur du Fine-Tuning :** Eleonord
|
| 112 |
+
* **Architecture de base :** Aricate v4 par Clemylia
|