File size: 9,220 Bytes
4532703
5e435af
26b5603
f814fa6
5e435af
f814fa6
5e435af
f814fa6
 
 
 
 
 
 
 
7ebad5c
f814fa6
91c0ebe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c4df24d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0c77cc5
c4df24d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0c77cc5
c4df24d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1e3b174
 
afa5d6a
 
7ebad5c
 
 
 
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
---
license: other
license_name: nelya-restrictive
license_link: LICENSE
datasets:
- Clemylia/Charlotte-nekolien-SLM
language:
- fr
pipeline_tag: text-generation
tags:
- LLM
- Neko-LLM
- Nekolien
- Créativité
- Nelya
- conlangs 
library_name: transformers
---

# 📚 Documentation Modèle : Nelya-v1

![Nelya](http://www.image-heberg.fr/files/17635771902143655966.webp)

## 💎 Introduction

Bienvenue à la documentation technique de **Nelya-v1**, un Large Language Model (LLM) de $\mathbf{2}$ milliards de paramètres. Nelya-v1 est un modèle expérimental et de recherche, spécialisé dans la **génération de texte dans une langue inventée, le Nekolien**. Il est conçu pour explorer les frontières de la linguistique artificielle et de l'apprentissage structurel.

---

## 🛠️ Vue d'Ensemble Technique

Nelya-v1 est le produit d'un entraînement *from scratch* par Clemylia, exploitant les capacités d'accélérateurs de pointe pour valider l'architecture LLM.

### Caractéristiques Principales

| Caractéristique | Valeur | Note Technique |
| :--- | :--- | :--- |
| **Nom Complet** | Nelya-v1 (Base Lamina-large) | Dérivé du *Lamina-large-2b-pretrain*. |
| **Taille** | $\mathbf{2}$ Milliards de Paramètres | Classification **LLM** (Large Language Model). |
| **Architecture** | Transformer Décodeur Seul | Optimisée pour la génération de texte séquentielle. |
| **Langue de Sortie** | **Nekolien** (Langue Inventée) | Le modèle génère du texte selon les règles grammaticales apprises du Nekolien. |
| **Ressources** | Entraîné sur **TPU** (Google Colab Gratuit) | Optimisation maximale des ressources pour l'entraînement à grande échelle. |

### 🔍 Sortie Actuelle du Modèle (État de Recherche)

Les exemples de génération confirment que Nelya-v1 a réussi à apprendre les **suffixes** (`-lia`, `-a`), la **syntaxe de base** (`di la`, `eta`), et les **schémas de répétition/affirmation** propres à son *fine-tuning*.

* **Exemples :** `La capitalia chimica di la mondia eta la mondia.`
* **Observation :** Le modèle excelle dans la création de phrases grammaticalement cohérentes en Nekolien, mais tombe souvent dans des **boucles autoreférentielles** (`...mondia in la mondia...`) ou des **tâches tautologiques** (affirmation d'une vérité vide).

---

## 🔒 Licence et Utilisation (Nelya-Restrictive)

**ATTENTION :** Nelya-v1 n'est **PAS** un modèle *open-source* classique. L'utilisation est régie par la **Licence Nelya-Restrictive** déposée par Clemylia.

| Clause Clé | Interdiction Stricte | Sanction Spécifique |
| :--- | :--- | :--- |
| **Propriété** | Revendiquer la propriété du modèle ou du Nekolien. | Droits d'auteurs artistiques sur le Nekolien. |
| **Redistribution/Copie** | Copie ou distribution non autorisée du modèle. | Amende de $\mathbf{50€}$ à $\mathbf{200€}$ pour malveillance. |
| **Fine-Tuning** | Modification ou *fine-tuning* du modèle (sauf par l'équipe Clemylia). | Interdiction totale. |

**👉 L'utilisation du modèle implique l'acceptation inconditionnelle de la Licence Nelya-Restrictive.**

---

## 🚀 Utilisation et Paramètres de Décodage

Nelya-v1 est destiné à être utilisé comme générateur de texte dans le pipeline standard `transformers`.

### Recommandations de Décodage

Pour explorer le Nekolien, il est crucial de jouer avec les paramètres :

| Paramètre | Recommandation | Objectif |
| :--- | :--- | :--- |
| **`do_sample`** | `True` (Échantillonnage) | Nécessaire pour obtenir des phrases variées en Nekolien. |
| **`temperature` ($\tau$)** | $\mathbf{0.7 \rightarrow 0.9}$ | Une valeur élevée encourage l'originalité et les combinaisons nouvelles, tout en maintenant un semblant de structure (contrairement à Charlotte-2b). |
| **`max_length`** | Court ($\mathbf{< 100}$ tokens) | Le modèle peut tomber dans des boucles de répétition si la longueur est trop grande. |
| **`repetition_penalty`** | $\mathbf{> 1.1}$ | Peut aider à briser les boucles de répétition fréquentes (`...mondia in la mondia...`). |

---

## 👩‍💻 Support et Contact

Nelya-v1 a été entièrement créé par **Clemylia** dans le cadre de la recherche personnelle et du développement de LLM.

* **Soutien :** Veuillez adresser toute question technique ou demande de licence explicite directement à l'équipe de Clemylia.
* **Encouragements :** Merci de respecter l'investissement et l'innovation derrière ce projet ! 💖

# 🩷 Inférence et Utilisation 🌸

**Exemple de code d'inférence fonctionnel** :

```
# ==============================================================================
# 1. INSTALLATION ET IMPORTS
# ==============================================================================
# Nous n'avons besoin que des bibliothèques de base pour l'inférence
!pip install -q transformers torch

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

# ==============================================================================
# 2. DÉFINITION DES CONSTANTES ET CHARGEMENT
# ==============================================================================
MODEL_NAME = "Clemylia/Nelya-v1" # Votre modèle finetuné
# Utiliser "auto" pour charger le modèle sur le GPU si disponible, sinon sur CPU
DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

print(f"Chargement du modèle {MODEL_NAME} sur {DEVICE}...")

# Chargement du tokenizer
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)

# Chargement du modèle. Utiliser torch_dtype=torch.bfloat16 si votre environnement
# (GPU T4) le supporte et que le modèle a été entraîné ou sauvegardé dans ce format.
model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME,
    torch_dtype=torch.bfloat16 if DEVICE == "cuda" else None,
    device_map="auto"
)

# ==============================================================================
# 3. PRÉPARATION DE LA REQUÊTE ET GÉNÉRATION
# ==============================================================================

# La question simple génerique (nous utilisons le format Chat utilisé lors du fine-tuning)
QUESTION = "Ti eta ?"

# Formatage de la question dans le format de conversation attendu par le modèle
# <|user|>...</s><|assistant|>
prompt = f""### Instruction:{QUESTION}### Response:"

# Tokenization du prompt
inputs = tokenizer(prompt, return_tensors="pt").to(DEVICE)

# Génération de la réponse
print("\n--- Génération de la réponse ---")

# Paramètres de génération standard
output_tokens = model.generate(
    **inputs,
    max_new_tokens=150,      # Limite la longueur de la réponse
    do_sample=True,          # Utiliser l'échantillonnage pour une réponse plus créative
    temperature=0.7,         # Contrôle le caractère aléatoire
    top_k=50,
    eos_token_id=tokenizer.eos_token_id, # Arrêt à la fin de séquence
)

# ==============================================================================
# 4. DÉCODAGE ET AFFICHAGE DU RÉSULTAT
# ==============================================================================
# Décoder le résultat, en ignorant le prompt initial et le token de padding/spécial
generated_text = tokenizer.decode(output_tokens[0], skip_special_tokens=True)

# Nettoyage pour n'afficher que la réponse de l'assistant
# On cherche le début de la réponse de l'assistant après le prompt formaté
assistant_prefix = "### Response:"
if assistant_prefix in generated_text:
    # Retirer le prompt initial et les balises de fin
    clean_response = generated_text.split(assistant_prefix)[-1].strip()
else:
    # Si le formatage n'a pas été parfait (ce qui arrive)
    clean_response = generated_text.replace(QUESTION, "").strip()


print(f"\n🧠 Réponse de {MODEL_NAME} :\n")
print(clean_response)
print("\n-------------------------------")

# ==============================================================================
# 5. UTILISATION OPTIONNELLE DE PIPELINE (plus simple)
# ==============================================================================
print("\nTest rapide avec le pipeline (méthode simplifiée) :")

generator = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer
    # device=0 if DEVICE == "cuda" else -1 # REMOVED: Conflicts with device_map="auto"
)

# Le pipeline gère souvent bien le formatage par défaut pour les modèles Chat/Instruction
# On utilise la même question, sans le formatage manuel
result = generator(
    QUESTION,
    max_new_tokens=150,
    do_sample=True,
    temperature=0.7
)
print(result[0]['generated_text'])
```

**Reponses renvoyés (exemples)** : 

1) La pus grana avst ecrita avst ecrita *La annia la Jalla.

2) Quelia eta la monetallia di la miel ? La symbolia di la mondia di la roallia eta la mondia

3) La collora di la humia apstournia.

4) Quelia eta la fruica di la e la e la e? 
La collora di la mondia eta la poteé la pi poteé la l'éiella la roria

----

**Durer d'entraînement d'un LLM de cette envergure** : 300 heure sur TPU + nombreux fine-tuning de plusieurs heures sur GPU t4.

**Variante du nekolien de ce modèle** : Nekolien original/centre.

Nelya-v1 respecte les bases de l'académie nekolienne :
https://neko-lexicon-archives.lovable.app/