/ Модель

Характеристики

Контекст
8 192 токена
Параметры
16,5 млн
Лицензия
Apache 2.0
Архитектура
qwen3 · dense
Опубликована
18 авг 2026

Melodimodell-16M

Генерация текстаТекст → текст3 профессии

Компактная модель Qwen3 для генерации продолжений текстового представления MIDI-мелодий.

108скачиваний за 30 дней0лайковвеса обновлены5 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Melodimodell-16M — компактная авторегрессионная языковая модель на архитектуре Qwen3, опубликованная пользователем qwrt. Она обучена на текстовом представлении MIDI-мелодий из набора projectlosangeles/Monster-MIDI-Dataset и предназначена для продолжения такого представления по начальному фрагменту. Сгенерированный текст можно преобразовать обратно в MIDI; песни в текстовом формате разделяются символом «*».

Модель содержит 16,5 млн параметров. README указывает длину контекста обучения 4096 токенов, хотя в метаданных каталога заявлен native context 8192 токена; автор предупреждает, что качество быстро ухудшается при контексте длиннее 4096. Из-за малого размера модель не предназначена для генерации связной музыки. Репозиторий использует формат safetensors, лицензия — Apache-2.0.

Сценарии применения

  • генерация продолжения MIDI-мелодии по начальному фрагменту
  • создание экспериментальных музыкальных эскизов в текстовом MIDI-формате
  • преобразование сгенерированного текстового представления в MIDI

Ограничения

Автор предупреждает, что модель из-за малого размера не генерирует связную музыку, а качество быстро ухудшается при длине контекста свыше 4096 токенов. Она генерирует текстовое представление MIDI, которое требуется преобразовать в MIDI-файл.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

This is a model with 16M parameters using the qwen3 architecture. It was trained on midi melodies from projectlosangeles/Monster-MIDI-Dataset formated to text. It uses utf-8 as text tokenizer. In this format, each new song is separated by a star "*", so we can use that as a prompt when generating from the model: Note: due to the model's size, it is not made for generating coherent music.

import torch
from transformers import Qwen3ForCausalLM

repo = "qwrt/Melodimodell-16M"
device = "cuda" if torch.cuda.is_available() else "cpu"
model = Qwen3ForCausalLM.from_pretrained(repo).to(device)

prompt="*"
new_tokens=4096-len(prompt)

seed = torch.tensor(list(prompt.encode()), dtype=torch.long)[None].to(device)
out = model.generate(seed, max_new_tokens=new_tokens,
                                     do_sample=True, temperature=0.8)
text_formated_midi=bytes(out[0].tolist()).decode("utf-8", errors="replace")
print(text_formated_midi)

Note that the model was trained on a context length of 4096, predictions from text with more context degrades in quality very quickly.

To convert this output to a midi, use the following code. Here we cut out if the model generated more than one song, indicated by a "*".

import mido
from huggingface_hub import hf_hub_download
import importlib.util

file_path = hf_hub_download(
    repo_id="qwrt/Monster_textmidis_filtered",
    filename="stringtomidi.py",
    repo_type="dataset"
)


spec = importlib.util.spec_from_file_location("parse_custom",file_path)
modul = importlib.util.module_from_spec(spec)
spec.loader.exec_module(modul)

text_formated_midi=text_formated_midi.strip("*") #Remove the first star so to not get an empty string
generated_songs=text_formated_midi.split("*")
first_song=generated_songs[0]

if(len(generated_songs)==1): #remove the last incomplete note of an unfinished melody
    all_notes=first_song.split(" ")
    all_notes.pop()
    first_song=" ".join(all_notes)

events = modul.parse_custom(first_song)
modul.build_midi(events, "example.mid")

To prompt the model, you can use this code to convert a midi to a string:

file_path = hf_hub_download(
    repo_id="qwrt/Monster_textmidis_filtered",
    filename="miditostring.py",
    repo_type="dataset"
)


spec = importlib.util.spec_from_file_location("midi_to_string",file_path)
modul = importlib.util.module_from_spec(spec)
spec.loader.exec_module(modul)


midi_file = r"example.mid"
output_file = "output.txt"

# Standard: Filtrera trummor + begränsa ackord till max 5 noter vid exakt samma tidpunkt
result = modul.midi_to_string(midi_file, output_file,
                        filter_drums=True,
                        filter_non_piano=False,
                        max_chord_notes=10)

You can then use this text as a starting prompt:

f=open("output.txt")
prompt="*\n"+f.read()[:200]
new_tokens=4096-len(prompt)

seed = torch.tensor(list(prompt.encode()), dtype=torch.long)[None].to(device)
out = model.generate(seed, max_new_tokens=new_tokens,
                                     do_sample=True, temperature=0.8)
text_formated_midi=bytes(out[0].tolist()).decode("utf-8", errors="replace")
print(text_formated_midi)

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen3ForCausalLM
Ревизия весов
049624c

0 моделей