File size: 6,628 Bytes
ecb5740
 
5856da4
 
 
 
 
 
 
 
 
 
ecb5740
 
5856da4
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
 
 
 
 
 
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
 
 
 
 
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
 
 
 
 
 
 
ecb5740
5856da4
ecb5740
5856da4
ecb5740
 
5856da4
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
ecb5740
5856da4
 
 
 
 
 
ecb5740
5856da4
 
ecb5740
5856da4
 
ecb5740
5856da4
ecb5740
5856da4
 
 
ecb5740
5856da4
 
 
 
 
ecb5740
5856da4
 
 
ecb5740
5856da4
 
 
 
 
 
ecb5740
5856da4
ecb5740
5856da4
 
 
 
 
 
 
ecb5740
 
5856da4
ecb5740
5856da4
 
ecb5740
5856da4
 
 
 
 
 
 
 
 
 
 
ecb5740
5856da4
 
 
ecb5740
5856da4
 
 
 
 
 
 
ecb5740
 
5856da4
 
 
 
 
ecb5740
5856da4
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
---
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.**