/ Модель

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

Контекст
4 096 токенов
Параметры
201 млн
Лицензия
Apache 2.0
Архитектура
llama · dense
Библиотека
transformers
Опубликована
17 сен 2026

Clef-0.2B

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

Clef-0.2B — модель haster для создания, продолжения и заполнения многодорожечных символических музыкальных партитур с экспортом в MIDI или MusicXML.

194скачиваний за 30 дней2лайкавеса обновлены17 сен 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Clef-0.2B — авторская модель haster для генерации символической музыки. Это decoder-only Transformer семейства Llama с 201,4 млн параметров, обученный с нуля на партитурах и дообученный для генерации, продолжения и заполнения пропусков в музыкальных фрагментах. Модель принимает заголовок с жанром, составом ансамбля, темпом, тональностью, размером и инструментами, а затем создаёт многодорожечную партитуру в представлении bar-major REMI+. Результат можно преобразовать в MusicXML или MIDI.

Модель поддерживает разные жанры, ансамбли, инструменты General MIDI и ударную партию, сохраняя динамику и скорость нот. Контекст составляет 4096 токенов, примерно 35 тактов. Веса доступны в формате safetensors в раскладке Llama и совместимы с Transformers и vLLM, однако для токенизации и преобразования партитур требуется специальный токенизатор и проектный конвейер; AutoTokenizer не подходит.

В README приведены успешные примеры продолжения и заполнения фрагментов, а также автоматические метрики качества. Ограничения включают повышенную относительно эталонных партитур диссонантность и возможный сдвиг настроения при склейке длинных фрагментов. Модель распространяется по лицензии Apache-2.0.

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

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

Ограничения

Контекст ограничен 4096 токенами, поэтому длинные композиции приходится склеивать из продолжений; на стыках возможен сдвиг настроения. Диссонантность выше, чем у партитур-эталонов, а токенизация и конвертация требуют специального инструментария проекта.

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

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

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

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

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

Открыть на Hugging Face

Clef-0.2B

A ~0.2B-parameter decoder-only Transformer for symbolic music generation (MusicXML / MIDI). Given a short conditioning header (genre / ensemble / tempo / key / meter / instrument plan) it generates a multi-track score, and it also supports CONTINUE (extend a given prefix) and INFILL (fill masked bars).

The model was pretrained from scratch on symbolic scores and then instruction-tuned on those three tasks. This is the instruction-tuned checkpoint.

Model summary

Architecturedecoder-only Transformer, RoPE, RMSNorm, SwiGLU, GQA
Params201,398,272 (~0.2B)
Layers / d_model17 / 1024
Attention16 query heads : 4 KV heads (GQA), FFN 2816
Context length4096 tokens max (trained on 2048-token windows)
Tokenizertokenizer_v2 — bar-major REMI+, vocab 9507, 24 TPQN
Precisiontrained in fp8 (torchao) + torch.compile; weights ship bf16

Weights format

Inference weights are provided as model.safetensors in Llama (LlamaForCausalLM) layout with a matching config.json, so they load with transformers / vLLM directly. This layout was numerically verified against the native training checkpoint (greedy decode matches token-for-token). Note the tokenizer is custom (bar-major REMI+, in tokenizer/) — it is not an AutoTokenizer, so encoding/decoding to MusicXML/MIDI uses this project's pipeline, not AutoTokenizer.from_pretrained.

Tokenizer / codec

The tokenizer is bar-major REMI+: tracks are interleaved bar by bar so all instruments advance together, which gives the model an explicit notion of simultaneity and helps parts stop together instead of one voice trailing off.

A generation begins with a native conditioning header:

BOS [GENRE] [ENSEMBLE] TEMPO KEY METER <PLAN> {TRACK|DRUM}* <PLAN_END> (BAR ...)* EOS

Drums are encoded by their true General MIDI percussion number (resolved from <part-list>/midi-instrument/midi-unpitched), and note velocity / dynamics are preserved. Because drums are stored as real GM voices, decoded output renders correct kick / snare / hi-hat directly with no display→GM remap.

Prompt example

A generation is conditioned by a header of special tokens; the model then produces the bars after <PLAN_END>. These are the exact prompts used for the sample files below.

Rock band — distortion + overdrive guitar, electric bass, drums; A minor, 130 BPM:

<BOS> <GENRE_popular> <ENSEMBLE_band> <TEMPO_130> <KEY_0:minor> <METER_4/4>
<PLAN> <TRACK_30> <TRACK_29> <TRACK_33> <DRUM_TRACK> <PLAN_END>

Piano concerto — piano + string ensemble + cello; E♭ major, 96 BPM:

<BOS> <GENRE_classical> <ENSEMBLE_orchestral> <TEMPO_96> <KEY_-3:major> <METER_4/4>
<PLAN> <TRACK_0> <TRACK_48> <TRACK_42> <PLAN_END>
  • <TRACK_n> picks a General MIDI program (0 = piano, 30 = distortion guitar, 33 = electric bass, 48 = string ensemble, 42 = cello, …).
  • <DRUM_TRACK> adds a percussion lane.
  • <KEY_k:mode> uses k = signed sharps(+) / flats(−); <TEMPO_n> = BPM; <METER_a/b> = time signature.

Conditioning vocabulary

  • GENRE <GENRE_x> (9): classical · popular · jazz · folk · electronic · soundtrack · world · religious · unknown
  • ENSEMBLE <ENSEMBLE_x> (7): solo · duo · band · chamber · orchestral · choir · other
  • TRACK <TRACK_n>: any General MIDI program, n = 0–127; plus <DRUM_TRACK> for a percussion lane.
  • KEY <KEY_k:mode>: k = −7…+7 (sharps/flats), mode ∈ major · minor · dorian · phrygian · lydian · mixolydian · none.
  • TEMPO <TEMPO_n>: integer BPM (5–999).
  • METER <METER_a/b>: time signature (e.g. 4/4, 3/4, 6/8).

(The genre/ensemble labels are coarse; unknown / other are valid and common.)

Samples

samples/promo_rock.mid and samples/promo_piano_concerto.mid are ~3-minute pieces generated from the two prompts above (best-of-N seeds, CONTINUE-stitched past the context window). Render with any General MIDI SoundFont.

Training

  • Pretraining: from scratch, 3 epochs (13,821 steps), global batch 256, fp8 + torch.compile. Data: ~1.18M bar-major windows built from the public sources listed below, with ×12 transpose augmentation.
  • Instruction tuning (this checkpoint): GENERATE / CONTINUE / INFILL tasks mixed with in-key curation (in-key ≥ 0.88) and a base-replay set to limit forgetting. 760 steps (2 epochs), best val loss 0.3088 @ step 299 (adopted). Hardware: 1× RTX PRO 6000 Blackwell (96 GB), ~80k tok/s, ~45 min.

Evaluation

Automatic metrics on held-out generation prompts (2 seeds). Values are absolute for this model; real human-composed scores are given only as a rough anchor.

metricClef-0.2Breal scores (ref)
in-key ratio ↑0.81~0.96
dissonance ↓0.29~0.15
co-termination spread ↓0.14—
early part death ↓0.10—

Task success (model emits ≥ 1 new valid bar for the task):

tasksuccess
CONTINUE12/12
INFILL12/12
  • in-key ratio — fraction of notes inside the conditioned key.
  • dissonance — ratio of dissonant simultaneous intervals.
  • co-termination spread / early part death — how tightly instruments end together vs. voices dropping out early (lower is better).

How to generate

Generation runs in this project's pipeline (bar-major decode → MusicXML/MIDI), then any General MIDI SoundFont (e.g. MuseScore) renders audio.

Recommended defaults: temperature 0.7, top_k 24, repetition_penalty ~1.12. This is the setting used for the sample pieces and is a good starting point.

Optional (supported when decoding with vLLM / transformers): top_p 0.95 and presence_penalty 0.15 for extra variety. ⚠️ Do not use frequency_penalty — it destabilizes the structural tokens (BAR / TRK / PLAN). For pieces longer than the context window, continue past it with a slightly lower continuation temperature (~0.76) to soften seams. Optionally post-process drums with a sanitize_drums step that snaps rare out-of-kit hits (e.g. GM 71/72) back to a standard kit.

Limitations

  • Context is 4096 tokens (~35 bars). Longer pieces are produced by stitching CONTINUE windows, which can cause a slight mood shift at the seam. A long-context retrain (or RoPE scaling at inference) would fix this properly.
  • Dissonance stays somewhat above real-score levels.
  • Research artifact; quality is not guaranteed for production use.

Training data

Built from the following public symbolic-music sources:

License

Released under Apache-2.0.

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
398b223

0 моделей