🎹 PremierMusic-SLM 🏛️

Music

"La Rencontre de la Mélodie et de la Forge"

📜 Présentation

PremierMusic-SLM est le premier modèle de langage de petite taille (SLM) de la lignée Clemylia dédié exclusivement à la génération de structures musicales. Conçu sur une architecture GPT-2, il traite la musique comme une syntaxe vivante, transformant les probabilités mathématiques en séquences de notes MIDI. Il est le pont direct entre l'expertise de forgeuse d'IA et un héritage musical de plus de 400 compositions originales.

🛠️ Spécifications Techniques

  • Architecture : Transformers / GPT-2
  • Taille : 3,23 Millions de paramètres (Ultra-Dense)
  • Format de Sortie : Séquences MIDI brutes
  • Compatibilité : Totalement intégré à l'écosystème des SLM textuels Clemylia.
  • Contrôle : Gestion chirurgicale de la température et de l'aléatoire (Stochasticité contrôlée).

⚡ Caractéristiques & Comportement

  • Vibrato Logique : Le modèle ne se contente pas de prédire des notes, il cherche la structure dans le chaos.
  • Ascension Sémantique : Dans sa version 1.0, le modèle présente une tendance naturelle à l'escalade tonale (du grave vers l'aigu), nécessitant une configuration précise pour stabiliser les octaves.
  • Précision Chirurgicale : Ce n'est pas un outil "grand public". Il exige une maîtrise du code et un paramétrage fin pour extraire la substantifique moelle de sa créativité.

🧪 Paramétrage de la Forge

Pour dompter la vivité de PremierMusic-SLM, l'utilisateur doit jouer sur deux leviers :

  • La Température : Pour calmer ou exciter la créativité harmonique.
  • L'Aléatoire (Top-K / Top-P) : Pour éviter les boucles infinies ou les montées chromatiques trop abruptes.

🎨 L'Âme du Projet

"Ce modèle est la fusion de deux passions : le code from scratch et la composition musicale. C'est l'aboutissement technique d'un parcours commencé à 15 ans, porté par 400 titres publiés sur les plateformes mondiales."

🚀 Limites de la V1 (Roadmap)

  • Format unique : Génération MIDI exclusive (pas d'audio brut pour le moment).
  • Courbe de progression : Tendance à la montée des notes nécessitant un monitoring humain.
  • Niveau requis : Savoir coder est indispensable pour forger avec lui.

🏛️ Verdict de la Forge

PremierMusic-SLM est une preuve de concept majeure. Il prouve qu'avec moins de 4M de paramètres, on peut capturer l'essence d'une partition. Il est la première pierre d'une future symphonie entièrement générée par la Forge.

✨ Exemple d'utilisation

adaptez ce code a votre usage :

import torch
from transformers import AutoModelForCausalLM, GPT2Config
import mido
from mido import MidiFile, MidiTrack, Message

# 1. Chargement du modèle
model_path = "Finisha-f-scratch/PremierMusic-SLM"
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

model = AutoModelForCausalLM.from_pretrained(model_path).to(device)
model.eval()

# 2. Paramètres de génération
start_note = 60  # Do central
temperature = 0.4 # Plus c'est haut, plus c'est "fou" et créatif
do_sample = True  # Active l'échantillonnage aléatoire
max_length = 64   # Nombre de notes à générer

# Préparation de l'entrée
input_ids = torch.tensor([[start_note]], device=device)

# 3. Génération avec Transformers
print(f"Génération en cours (Temp: {temperature})...")
with torch.no_grad():
    output_tokens = model.generate(
        input_ids,
        max_length=max_length,
        do_sample=do_sample,
        temperature=temperature,
        top_k=50,            # Limite aux 50 notes les plus probables
        top_p=0.95,          # Nucleus sampling pour plus de cohérence
        pad_token_id=127     # Utilise la note 127 comme padding si besoin
    )

generated_notes = output_tokens[0].tolist()

# 4. Conversion en fichier MIDI
mid = MidiFile()
track = MidiTrack()
mid.tracks.append(track)

for note in generated_notes:
    # On s'assure que la note reste dans les limites MIDI (0-127)
    note_val = max(0, min(127, int(note)))
    track.append(Message('note_on', note=note_val, velocity=70, time=150))
    track.append(Message('note_off', note=note_val, velocity=70, time=150))

mid.save('musique_generee.mid')
print("Terminé ! Fichier 'musique_generee.mid' prêt à l'écoute.")
Downloads last month
-
Safetensors
Model size
3.23M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support