Instructions to use Om22s/alexandria-muse-glimmer-attribution with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Om22s/alexandria-muse-glimmer-attribution with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Muse-Glimmer-30B speaker-attribution LoRA (window25b, michel2_full)
A LoRA adapter for Muse-Glimmer-30B that does one job: given a passage of a novel and its cast list, say who speaks each line, as structured JSON. It was built for Alexandria Audiobook2, which turns books into multi-voice audiobooks.
This is an adapter only โ the base model is not included โ and it is not a chat model.
What it is for: keeping Muse-Glimmer-30B usable at its smallest quant. At IQ2_XXS the base model alone cannot keep the JSON output format (it holds it on about 1% of lines); with the adapter it answers most lines and scores 71.8% on nine held-out novels. At the larger quants the base is already strong, and the adapter is flat to slightly positive.
Training prompt: michel2v2 โ MICHEL2_SYSTEM after #619/#623, 2,071 characters; sha256 of
the system text a63e2124546ce050โฆ, shipped as prompts/michel2v2.txt.
Serve it with that prompt; a different prompt is a different measurement.
Adapter
| adapter | base | size | nine held-out novels |
|---|---|---|---|
adapters/muse-glimmer-30b-rightsclean-window25b-michel2v2/ |
Muse-Glimmer-30B | 419 MB safetensors, 210 MB GGUF | IQ2_XXS 71.8% (adapter only); IQ3_XXS +0.4; Q3_K_XL โ0.5; Q4_K_M +1.1 |
A successor is being measured. A KL-regularised version of the same recipe reaches 83.4% at IQ2_XXS with almost no unanswered lines, but its two training seeds disagree at IQ3_XXS; it will be added here only if it passes the same checks.
Quickstart
With llama.cpp (how every score below was produced):
./examples/serve_llamacpp.sh Muse-Glimmer-30B-IQ2_XXS.gguf noreasoning # the IQ2_XXS row
./examples/serve_llamacpp.sh Muse-Glimmer-30B-KQuant-17GB-Q4_K_M.gguf # reasoning rows
With transformers + PEFT (written against peft 0.20, not the way the scores were produced):
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("meta-models/Muse-Glimmer-30B", torch_dtype="auto", device_map="auto")
tok = AutoTokenizer.from_pretrained("meta-models/Muse-Glimmer-30B")
model = PeftModel.from_pretrained(
base, "Om22s/alexandria-muse-glimmer-attribution",
subfolder="adapters/muse-glimmer-30b-rightsclean-window25b-michel2v2", revision="v1.0.0")
Intended use, and not for
- For: attributing quoted speech in English prose fiction to a character from a given cast
list, with the
michel2_fullrequest shape, 25 lines per request, and the output validated against the JSON schema. - Not for: chat, other languages, cast lists it is not given, or any decision about real people.
Evaluation
All rows are on nine public-domain novels from the Project Dialogism Novel Corpus โ Emma, Pride and Prejudice, Mansfield Park, Sense and Sensibility, Northanger Abbey, Persuasion, The Awakening, The Sign of the Four, The Sun Also Rises โ 40 evenly spaced windows each, 2,655 labelled lines. All nine are held out of this adapter's training.
Settings for every row: llama.cpp, 32k context, one slot, temperature 0, 25 lines per request,
request-level JSON schema, the michel2_full prompt with the michel2v2 text. Paired rows are
base โ adapter on one server with the adapter scale toggled through /lora-adapters.
Unanswered or malformed lines count as wrong. Scored with PDNC's reviewed silent short names
counted as correct (for example SMALL for The Sign of the Four's Wooden-Legged Man; see
RECIPES.md, "Rescored 2026-09-28").
| base quant (file) | reasoning | GPU | base โ adapter | fixed / broken | p (sign test) |
|---|---|---|---|---|---|
IQ2_XXS, 7.96 GB (NANI-Nithin, sha256 2e45e054โฆ) |
off | A6000 | adapter only: 71.8%, 13.7% of lines unanswered | โ | โ |
IQ3_XXS, 11.1 GB (NANI-Nithin, 961b3a38โฆ) |
low | A100 | 93.1 โ 93.5 (+0.4) | +108 / โ96 | 0.44 |
| IQ3_XXS, same file | low | A6000 | 93.6 โ 93.5 (โ0.1) | +87 / โ89 | 0.94 |
UD-Q3_K_XL, 13.4 GB (unsloth, 820d18e0โฆ) |
low | A6000 | 94.6 โ 94.1 (โ0.5) | +60 / โ73 | 0.30 |
KQuant Q4_K_M, 16.8 GB (lmstudio-community, 4cc57c0fโฆ) |
low | A6000 | 94.2 โ 95.2 (+1.1) | +77 / โ49 | 0.016 |
About the IQ2_XXS row:
Its serving condition is not the one the adapter trained at. It was served with
--reasoning off --skip-chat-parsing --chat-template-kwargs '{"reasoning_strength":"none"}'. Muse's template prints any non-empty value as given, so the system turn readReasoning strength: none.โ a value the model was never trained on (the adapter trained atlow). The other rows renderReasoning strength: low.: llama.cpp copies each request'sreasoning_effortintoreasoning_strength. Atlowthis row does worse (measured 2026-09-28, same file, adapter and nine novels, replies capped at 4,096 tokens): 65.8% with 19.8% of lines unanswered, against 71.8% at "none" (+91 / โ251 lines, p = 2eโ18). At IQ2_XXS the 2-bit model runs on to the length limit atlow, so serve this quant as the row above does.The base arm was not run on this row. At this quant the base keeps the JSON format on 42 of 2,655 lines (1.1%, in a separate nine-novel base run); repeating it would take about 60 GPU-hours to re-measure a known collapse. In a 36-line check under this row's own settings (reasoning off), the base scored 5.6% against the adapter's 75.0%.
Of the lines the adapter answered, 83.3% were right. The unanswered 13.7% are what hold the score down โ the reason for the KL successor above.
On a smaller four-book set (176 lines from four translated Japanese light novels; RX 9070 XT and A100), the same pattern holds: IQ2_XXS 22.2 โ 79.0 (+56.8, p=2eโ25), IQ3_XXS 88.6 โ 89.8 (+1.1, p=0.77), Q3_K_XL 90.3 โ 90.9 (+0.6, p=1.0).
Earlier cells not on this card. A Q4_K_M cell served with the older MICHEL2_SYSTEM text
(1,825 characters) measured โ1.1 (p=0.024), and the same file on its training prompt measured
+1.1: the difference is the prompt. Cells served with the older text, and one Q3_K_XL cell whose
base scored an anomalous 87.9%, are excluded; they are listed in the repository's RECIPES.md.
Bias, risks and limitations
- English prose only. The nine novels are 19th- and 20th-century English fiction; the four-book set is translated Japanese light novels. Nothing is claimed for other languages or genres.
- It chooses from the cast list you give it. A character missing from the list cannot be named, and a shortened list costs accuracy: offering only the characters mentioned nearby (capped at 30) dropped this base from 92.3% to 63.6% in one test.
- At the larger quants the effect is small and depends on the serving condition. Treat the Q4_K_M +1.1 as "does not hurt", not as a reason to load it on a working base.
- It breaks some correct lines. At Q4_K_M it changed 2.0% of the base's correct lines to wrong answers while fixing more.
- One training seed.
Requirements
- The Muse-Glimmer-30B base as a GGUF (the files above) for llama.cpp, or in bf16 (about 60 GB) for transformers.
- llama.cpp with LoRA support (
--lora) and the/lora-adaptersendpoint. - The IQ2_XXS file is 7.96 GB; context memory comes on top. The product prompt's longest window
is 5,966 tokens, so
-c 8192is enough (the cells above used-c 32768).
Training data
PDNC only: the 19 PDNC novels that are not in the evaluation set โ A Handful of Dust, A Passage to India, A Room with a View, Alice's Adventures in Wonderland, Anne of Green Gables, Daisy Miller, Hard Times, Howards End, Night and Day, Oliver Twist, The Age of Innocence, The Gambler, The Invisible Man, The Man Who Was Thursday, The Mysterious Affair at Styles, The Picture of Dorian Gray, The Sport of the Gods, Where Angels Fear to Tread, Winnie-the-Pooh.
- The novels are in the public domain. The PDNC annotations carry no stated licence; permission has been requested from the authors, and this card says so rather than assuming it.
- The training rows are 25-line windows rendered in the served
michel2_fullshape (data hash484752e1โฆ, the same windows as the public Qwen window25 adapters). The targets are the model's own reasoning traces, rejection-sampled against each row's training label, with 20% of rows given as direct answers (training_manifest.json,recipe). training_manifest.jsonrecords the data hash, seeds and recipe: 1 epoch, learning rate 2e-4, rank 16, alpha 16, maximum length 8,192, bf16 LoRA on attention and MLP projections.
Versioning
main is current; releases are tagged vX.Y.Z. v1.0.0 (2026-09-28) is the first release. v1.0.1 (2026-09-28, card only, no weights changed): states that the IQ2_XXS row was served at reasoning_strength "none", which the template prints literally, not at the low the adapter trained at. v1.0.2 (2026-09-29, card only): the IQ2_XXS row measured at low โ worse (65.8% vs 71.8%), so the "none" serving condition stands.
License
The adapter weights are Apache-2.0 (see LICENSE). The base model, Muse-Glimmer-30B, is Apache-2.0.
Links
- Code, prompts and every evaluation artifact: on22s/alexandria-audiobook2 โ RECIPES.md, and the wiki's Which model for your card.
- The Qwen adapters: Om22s/alexandria-qwen3-attribution.
- Downloads last month
- 10
16-bit
Model tree for Om22s/alexandria-muse-glimmer-attribution
Base model
meta-models/Muse-Glimmer-30BEvaluation results
- accuracy, adapter only (base arm not run; the base holds the output contract on 1.1% of rows) on nine PDNC novels, all held out (2,655 rows, 40 windows each), NANI-Nithin IQ2_XXS, reasoning off, michel2_full (michel2v2), adapter onlyllama.cpp, adapter at scale 1 only71.800
- accuracy, adapter (base 93.1) on nine PDNC novels, all held out (2,655 rows, 40 windows each), NANI-Nithin IQ3_XXS, reasoning low, michel2_full (michel2v2)paired base/LoRA on one llama.cpp server, A10093.500
- accuracy, adapter (base 94.6) on nine PDNC novels, all held out (2,655 rows, 40 windows each), unsloth UD-Q3_K_XL, reasoning low, michel2_full (michel2v2)paired base/LoRA on one llama.cpp server, A600094.100
- accuracy, adapter (base 94.2) on nine PDNC novels, all held out (2,655 rows, 40 windows each), lmstudio-community KQuant Q4_K_M, reasoning low, michel2_full (michel2v2)paired base/LoRA on one llama.cpp server, A600095.200