Metacreation/GigaMIDI
Viewer • Updated • 3.44M • 4.84k • 41
How to use manoskary/musicbert with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("fill-mask", model="manoskary/musicbert") # Load model directly
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("manoskary/musicbert")
model = AutoModelForMaskedLM.from_pretrained("manoskary/musicbert")MusicBERT large is a 24-layer BERT-style masked language model trained on REMI+BPE symbolic music sequences extracted from the GigaMIDI corpus. It is tailored for symbolic music understanding, fill-mask style infilling, and as a backbone for downstream generative tasks.
import torch
from transformers import BertForMaskedLM
from miditok import MusicTokenizer
# Load model and tokenizer
model = BertForMaskedLM.from_pretrained("manoskary/musicbert")
tokenizer = MusicTokenizer.from_pretrained("manoskary/miditok-REMI")
# Convert MIDI to BPE tokens (MIDI → REMI → BPE pipeline)
midi_path = "path/to/your/file.mid"
tok_seq = tokenizer(midi_path)
bpe_ids = tok_seq.ids
# Mask some tokens for prediction
import random
mask_token_id = 3 # MASK_None token
input_ids = bpe_ids.copy()
mask_positions = random.sample(range(1, len(input_ids)-1), k=5)
for pos in mask_positions:
input_ids[pos] = mask_token_id
# Run inference
input_tensor = torch.tensor([input_ids])
with torch.no_grad():
outputs = model(input_tensor)
predictions = outputs.logits[0, mask_positions, :].argmax(dim=-1)
print("Predicted token IDs:", predictions.tolist())
If you use this checkpoint, please cite the original MusicBERT introduction and the GigaMIDI dataset.