📚 Documentation Modèle : Nelya-v1
💎 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"<|user|>{QUESTION}</s><|assistant|>"
# 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 = "</s><|assistant|>"
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) :
La pus grana avst ecrita avst ecrita *La annia la Jalla.
Quelia eta la monetallia di la miel ? La symbolia di la mondia di la roallia eta la mondia
La collora di la humia apstournia.
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. Nous n'avons cependant pas terminé l'entraînement, et c'est pour cela que Nelya-v1 n'est pas a la majorité de son potentiel.
- Downloads last month
- 81
