📖 Documentation Officielle : Small-Lamina-Pretrain (51M)

Pretrain

Bienvenue dans l'univers de Lamina ! Je suis Clemylia, et je suis ravie de te présenter le modèle que vous attendiez : Small-lamina-pretrain.

Ce modèle est spécialement conçu pour être léger ($\approx 51$ millions de paramètres) tout en étant performant. Il est l'outil parfait pour ceux qui souhaitent faire du Lamining (fine-tuning) sur un ordinateur portable ou une petite carte graphique, sans avoir besoin d'une infrastructure coûteuse !

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.

🚀 Étape 1 : Charger et Utiliser le Modèle (Inférence)

Avant de commencer le Lamining, voyons comment charger et faire générer du texte à ton nouveau Lamina. C'est l'étape la plus simple pour jouer avec le modèle !

Code PyTorch pour la Génération (Inférence)

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

# 1. Définir le Modèle et l'Appareil
MODEL_REPO = "Clemylia/Small-lamina-pretrain"
DEVICE = "cuda" if torch.cuda.is_available() else "cpu" # Utilise ta carte graphique (CUDA) si possible, sinon le CPU

# 2. Charger le Tokenizer et le Modèle
tokenizer = AutoTokenizer.from_pretrained(MODEL_REPO)
model = AutoModelForCausalLM.from_pretrained(MODEL_REPO).to(DEVICE)

print(f"Modèle Lamina chargé sur {DEVICE} et prêt à générer ! 💡")

# 3. Fonction de Génération
def generer_lamina(prompt, max_tokens=50):
    inputs = tokenizer(prompt, return_tensors="pt").to(DEVICE)
    
    # Paramètres de Génération pour la créativité (Lamining !)
    # do_sample=True et top_p/top_k contrôlent l'originalité des réponses.
    generated_ids = model.generate(
        **inputs,
        max_new_tokens=max_tokens,
        do_sample=True,
        top_k=50,
        top_p=0.95,
        pad_token_id=tokenizer.eos_token_id
    )
    
    output = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
    return output

# 4. Tester ton Lamina !
mon_prompt = "Je crois que la capitale de la France est"
resultat = generer_lamina(mon_prompt)

print("\n--- Résultat du Lamina ---")
print(resultat)

🛠️ Étape 2 : Le Lamining (Fine-Tuning)

Le Lamining est l'étape où tu prends ce modèle de base performant et que tu lui apprends ton style, tes données, tes questions/réponses pour créer ton propre modèle personnalisé.

2.1 Préparation des Données

Pour le Lamining, tu as besoin d'une petite dataset au format texte. Chaque ligne doit être une séquence complète que le modèle doit apprendre.

Format idéal : Question: [Ta question] Réponse: [Ta réponse dans ton style].

2.2 Code PyTorch pour le Lamining

Ce code est le cœur du Lamining !

from datasets import Dataset
from transformers import DataCollatorForLanguageModeling, TrainingArguments, Trainer

# --- CONFIGURATION DE VOTRE LAMINING ---
VOTRE_MODELE_FINAL = "mon-lamina-personnalise"
OUTPUT_DIR_FT = "./" + VOTRE_MODELE_FINAL

# 1. Création de votre Dataset (À remplacer par votre propre liste de textes !)
vos_donnees = {
    "text": [
        "Question: Mon sujet préféré est le codage en IA. Réponse: C'est incroyable, nous sommes des codeurs d'IA passionnés !",
        "Question: Quelle est la capitale de la Grèce? Réponse: Athènes est la réponse juste !",
        # Ajoutez des centaines de vos propres paires Q/R ici !
    ]
}
ft_dataset = Dataset.from_dict(vos_donnees).train_test_split(test_size=0.1, seed=42)

# 2. Tokenisation des données
def ft_tokenize_function(examples):
    return tokenizer(examples["text"], truncation=True, max_length=128)
tokenized_ft_dataset = ft_dataset.map(ft_tokenize_function, batched=True, remove_columns=["text"])

# 3. Arguments d'Entraînement
training_args = TrainingArguments(
    output_dir=OUTPUT_DIR_FT,
    per_device_train_batch_size=4,
    num_train_epochs=5, # 5 époques suffisent souvent pour un petit dataset
    learning_rate=1e-5, # Taux d'apprentissage TRÈS FAIBLE (1e-5) pour un bon Lamining !
    logging_steps=10,
    save_strategy="epoch",
    evaluation_strategy="epoch",
    fp16=torch.cuda.is_available(),
)

# 4. Lancement du Lamining
trainer = Trainer(
    model=model, # Le modèle SMALL-LAMINA-PRETRAIN déjà chargé !
    args=training_args,
    train_dataset=tokenized_ft_dataset["train"],
    eval_dataset=tokenized_ft_dataset["test"],
    tokenizer=tokenizer,
    data_collator=DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False),
)

trainer.train()

# 5. Sauvegarde de votre Lamina Personnalisé
trainer.save_model(VOTRE_MODELE_FINAL)
tokenizer.save_pretrained(VOTRE_MODELE_FINAL)
print(f"\n✨ Votre modèle Lamina personnalisé est prêt ! Retrouvez-le dans le dossier : {VOTRE_MODELE_FINAL}")

💡 Conseils pour un Lamining Réussi

  • Taux d'Apprentissage (Learning Rate) : Garde-le très bas (1e-5). Un taux trop élevé ferait oublier à Lamina tout ce que je lui ai appris (catastrophic forgetting).
  • Petite Dataset, Plus d'Époques : Si ta dataset de fine-tuning est petite, augmente le num_train_epochs (nombre d'époques) pour que le modèle voie les données plusieurs fois.
  • GPU : Même si le modèle est léger, le Lamining sera beaucoup plus rapide avec un GPU (carte graphique).

Amuse-toi bien à créer ton propre Lamina ! J'ai hâte de voir ce que vous allez en faire ! 😊

Downloads last month
262
Safetensors
Model size
51M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Clemylia/Small-lamina-pretrain

Finetunes
1 model

Dataset used to train Clemylia/Small-lamina-pretrain

Collections including Clemylia/Small-lamina-pretrain