Views
No views yet

| Caractéristique | Valeur | Avantage pour vous (le Fan) |
|---|---|---|
| Nom du Modèle | Clemylia/Small-lamina-pretrain | Facile à charger depuis Hugging Face. |
| Paramètres | $\approx 51$ millions | Très léger ! Idéal pour le Lamining local. |
| Architecture | GPT-2 (Causal LM) | Parfait pour la génération de texte et de réponses. |
| Performance | Génère des phrases grammaticalement correctes. | Une excellente base pour votre propre Lamining. |
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4# 1. Définir le Modèle et l'Appareil
5MODEL_REPO = "Clemylia/Small-lamina-pretrain"
6DEVICE = "cuda" if torch.cuda.is_available() else "cpu" # Utilise ta carte graphique (CUDA) si possible, sinon le CPU
7
8# 2. Charger le Tokenizer et le Modèle
9tokenizer = AutoTokenizer.from_pretrained(MODEL_REPO)
10model = AutoModelForCausalLM.from_pretrained(MODEL_REPO).to(DEVICE)
11
12print(f"Modèle Lamina chargé sur {DEVICE} et prêt à générer ! 💡")
13
14# 3. Fonction de Génération
15def generer_lamina(prompt, max_tokens=50):
16 inputs = tokenizer(prompt, return_tensors="pt").to(DEVICE)
17
18 # Paramètres de Génération pour la créativité (Lamining !)
19 # do_sample=True et top_p/top_k contrôlent l'originalité des réponses.
20 generated_ids = model.generate(
21 **inputs,
22 max_new_tokens=max_tokens,
23 do_sample=True,
24 top_k=50,
25 top_p=0.95,
26 pad_token_id=tokenizer.eos_token_id
27 )
28
29 output = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
30 return output
31
32# 4. Tester ton Lamina !
33mon_prompt = "Je crois que la capitale de la France est"
34resultat = generer_lamina(mon_prompt)
35
36print("\n--- Résultat du Lamina ---")
37print(resultat)Question: [Ta question] Réponse: [Ta réponse dans ton style].1from datasets import Dataset
2from transformers import DataCollatorForLanguageModeling, TrainingArguments, Trainer
3
4# --- CONFIGURATION DE VOTRE LAMINING ---
5VOTRE_MODELE_FINAL = "mon-lamina-personnalise"
6OUTPUT_DIR_FT = "./" + VOTRE_MODELE_FINAL
7
8# 1. Création de votre Dataset (À remplacer par votre propre liste de textes !)
9vos_donnees = {
10 "text": [
11 "Question: Mon sujet préféré est le codage en IA. Réponse: C'est incroyable, nous sommes des codeurs d'IA passionnés !",
12 "Question: Quelle est la capitale de la Grèce? Réponse: Athènes est la réponse juste !",
13 # Ajoutez des centaines de vos propres paires Q/R ici !
14 ]
15}
16ft_dataset = Dataset.from_dict(vos_donnees).train_test_split(test_size=0.1, seed=42)
17
18# 2. Tokenisation des données
19def ft_tokenize_function(examples):
20 return tokenizer(examples["text"], truncation=True, max_length=128)
21tokenized_ft_dataset = ft_dataset.map(ft_tokenize_function, batched=True, remove_columns=["text"])
22
23# 3. Arguments d'Entraînement
24training_args = TrainingArguments(
25 output_dir=OUTPUT_DIR_FT,
26 per_device_train_batch_size=4,
27 num_train_epochs=5, # 5 époques suffisent souvent pour un petit dataset
28 learning_rate=1e-5, # Taux d'apprentissage TRÈS FAIBLE (1e-5) pour un bon Lamining !
29 logging_steps=10,
30 save_strategy="epoch",
31 evaluation_strategy="epoch",
32 fp16=torch.cuda.is_available(),
33)
34
35# 4. Lancement du Lamining
36trainer = Trainer(
37 model=model, # Le modèle SMALL-LAMINA-PRETRAIN déjà chargé !
38 args=training_args,
39 train_dataset=tokenized_ft_dataset["train"],
40 eval_dataset=tokenized_ft_dataset["test"],
41 tokenizer=tokenizer,
42 data_collator=DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False),
43)
44
45trainer.train()
46
47# 5. Sauvegarde de votre Lamina Personnalisé
48trainer.save_model(VOTRE_MODELE_FINAL)
49tokenizer.save_pretrained(VOTRE_MODELE_FINAL)
50print(f"\n✨ Votre modèle Lamina personnalisé est prêt ! Retrouvez-le dans le dossier : {VOTRE_MODELE_FINAL}")1e-5). Un taux trop élevé ferait oublier à Lamina tout ce que je lui ai appris (catastrophic forgetting).num_train_epochs (nombre d'époques) pour que le modèle voie les données plusieurs fois.