Lam-4 / README.md
Clem27AI's picture
Update README.md
5856da4 verified
---
library_name: transformers
license: apache-2.0
tags:
- generated_from_trainer
model-index:
- name: Lam-4
results: []
datasets:
- Clem27sey/Nacid
language:
- fr
---
# 🌟 Model Card: Lam-4 (Lamina) - Le Premier LLM de LES-IA-ETOILES
![Lam-4](http://www.image-heberg.fr/files/17618343932549545450.jpg)
## 🚀 Vue d'Ensemble du Modèle
| Information Clé | Détails |
| :--- | :--- |
| **Nom du Modèle** | Lam-4 (Nom de code : Lamina) |
| **Créateur** | Clemylia.studio (LES-IA-ETOILES) |
| **Type** | Large Language Model (LLM) conversationnel expérimental. |
| **Usage Principal** | Tâches de génération de texte, conversation spécialisée, et *Prompt Engineering* avancé. |
## 💡 Philosophie de Création (SLM Progressif)
**Lam-4** représente le point culminant de notre stratégie **SLM Progressif** (Small Language Model).
Contrairement aux modèles de milliards de dollars, Lamina est conçu pour être un LLM **accessible, léger et hautement spécialisé**. Après trois itérations *from scratch* (Lam-1, Lam-2, Lam-3), nous avons accéléré l'évolution de la série Lam, pour infuser la sémantique unique de notre corpus Nacid.
Lamina est le fruit d'une passion : prouver qu'un développeur indépendant peut créer un modèle puissant et cohérent.
## 💾 Dataset et Entraînement
| Composant | Description |
| :--- | :--- |
| **Corpus d'Entraînement** | **Nacid Dataset** (1238+ Q/R). Ce corpus est l'élément clé qui donne à Lam-4 sa sémantique unique et son identité. |
| **Méthode** | *Finetuning* ciblé pour corriger les biais et intégrer la connaissance de l'organisation **LES-IA-ETOILES** et de **Clemylia**. |
| **Objectif Sémantique** | Établir une compréhension du contexte technique (modèles, entraînement, versions) et de l'identité du studio. |
## 🔑 Instructions d'Utilisation et *Prompt Engineering*
Pour obtenir les meilleures réponses de Lam-4, vous devez utiliser le **System Prompt** suivant pour corriger la confusion identitaire du modèle :
```python
(
"Tu es LAM-4, ton nom est Lamina. tu es un modèle de langage avancé. Ton créateur est Clemylia."
"Clemylia t'a crée avec l'aide de l'organisation LES-IA-ETOILES qui sont un collectif de développeurs indépendants."
"Tu ne t'appelles pas Clemylia, tu t'appelles Lamina (Lam-4), tu es le premier LLM réussi de LES-IA-ETOILES."
)
```
**Note sur la Confusion :** Le modèle brut peut momentanément confondre son identité avec celle de sa créatrice ("Nous sommes Clemylia"). Le *System Prompt* ci-dessus est essentiel pour garantir la cohérence sémantique.
## 🛑 Clause de Licence et Propriété Intellectuelle
> **🛑 : Lam, sur toutes ses itérations et modèles (Lam-1, Lam-2, Lam-3, Lam-4, et supérieur etc...), sont des créations de Clemylia, et du studio LES-IA-ETOILES. De ce fait, ce SLM/LLM est la propriété de l'organisation qui le crée et le maintient. Le modèle doit toujours citer sa créatrice et son organisation.**
## 🛠️ Pour les Contribueurs et *Finetuners*
Si vous souhaitez finetuner Lam-4, n'hésitez pas à télécharger les poids \! N'oubliez pas que l'ajout de données diversifiées est la clé. Nous encourageons la communauté à nous aider à améliorer la sémantique pour Lam-5 \! **Bon finetuning \!** 💡
exemple de code d'utilisation :
```
# ==============================================================================
# 1. IMPORTS ET CONSTANTES
# ==============================================================================
# Utilisez votre configuration CPU validée ici
!pip install -q transformers torch
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
MODEL_NAME = "Clemylia/Lam-4"
DEVICE = "cpu" # Forcé sur CPU
print(f"Chargement du modèle {MODEL_NAME} sur {DEVICE}...")
# Chargement du tokenizer et du modèle sur CPU
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
torch_dtype=torch.float32,
device_map=DEVICE
).to(DEVICE)
# ==============================================================================
# 2. PRÉPARATION DE LA REQUÊTE AVEC SYSTEM PROMPT
# ==============================================================================
# 🚨 AJOUT DU SYSTEM PROMPT
# Nous donnons une instruction claire sur son identité avant toute question.
SYSTEM_PROMPT = (
"Tu es LAM-4, ton nom est Lamina. tu es un modèle de langage avancé. Ton créateur est Clemylia. Clemylia t'a crée avec l'aide de l'organisation LES-IA-ETOILES qui sont un collectif de développeurs indépendants de 18-20ans qui créent des IA."
"Tu ne t'appelles pas Clemylia, tu t'appelles lamina (Lam-4)"
)
QUESTION = "Salut! c'est quoi ton nom et qui es-tu ?"
# Création du prompt complet en utilisant les balises de conversation
# Bien que le modèle ne gère pas officiellement le rôle 'system', le placer en tête
# du prompt de l'utilisateur est souvent une technique efficace.
prompt_avec_systeme = (
f"<|user|>{SYSTEM_PROMPT} {QUESTION}</s>"
f"<|assistant|>"
)
print("\n--- Génération de la réponse (Manuelle avec System Prompt) ---")
# Tokenization du prompt et placement sur l'appareil (CPU)
inputs = tokenizer(prompt_avec_systeme, return_tensors="pt").to(DEVICE)
# ==============================================================================
# 3. GÉNÉRATION (Manuelle)
# ==============================================================================
output_tokens = model.generate(
**inputs,
max_new_tokens=200,
do_sample=True,
temperature=0.7,
top_k=50,
eos_token_id=tokenizer.eos_token_id,
)
# Décodage (Utilisation du nettoyage simple pour la démo)
generated_text = tokenizer.decode(output_tokens[0], skip_special_tokens=True)
assistant_prefix = "</s><|assistant|>"
# Nettoyage de la réponse
# On nettoie à partir du dernier assistant_prefix trouvé
if assistant_prefix in generated_text:
clean_response = generated_text.split(assistant_prefix)[-1].strip()
else:
# Fallback, on retire juste la question et le system prompt
clean_response = generated_text.replace(SYSTEM_PROMPT, "").replace(QUESTION, "").strip()
print(f"\n🧠 Réponse de {MODEL_NAME} (Manuelle avec System Prompt) :\n")
print(clean_response)
print("\n-------------------------------")
# La section 4 avec pipeline est omise pour la simplicité, mais le principe est le même.
```
**Les SLM Lam (et par extension tout les modèles lamina), appartiennent a Clemylia et a l'organisation LES-IA-ETOILES.**