bobjones-ministral-14b

Ministral 3 14B Base, continued-pretrained on the complete blog archive of Sir Bob Jones (nopunchespulled.com) and then instruction-tuned to write a column from a one-line brief.

Usage

The model expects a brief and returns TITLE\n\nARTICLE. The chat template is a minimal Mistral [INST] format shipped with the tokenizer โ€” load the tokenizer from this repo, not from the base model, or the format is lost and output degrades badly.

from unsloth import FastModel

model, tokenizer = FastModel.from_pretrained(
    "ariedotcodotnz/bobjones-ministral-14b",
    max_seq_length = 4096,
    load_in_4bit = True,      # ~9 GB; bf16 needs ~28 GB and will not fit a 24 GB card
)
FastModel.for_inference(model)
tok = getattr(tokenizer, "tokenizer", tokenizer)

brief = "Any thoughts on the state of headline writing in the papers lately?"
text = tok.apply_chat_template([{"role": "user", "content": brief}],
                               tokenize=False, add_generation_prompt=True)
inputs = tok(text, return_tensors="pt", add_special_tokens=False).to("cuda")
out = model.generate(**inputs, max_new_tokens=800, temperature=0.9,
                     min_p=0.05, do_sample=True)
print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

Rendered prompt format:

<s>[INST]{brief}[/INST]{TITLE}

{article}</s>

Notes. The architecture is Mistral3ForConditionalGeneration โ€” a multimodal checkpoint with a Pixtral vision tower. The vision layers were not trained and are unused; treat this as a text-only model. min_p=0.05 with temperature=0.9 produced the best samples in testing.

Training data

1,573 posts scraped from nopunchespulled.com, 27 Feb 2019 โ€“ 16 Apr 2025. After cleaning, 1,448 articles / ~550k tokens.

125 posts were dropped: 119 were cartoon or letter-screenshot posts consisting of a title and an image the scrape never captured, plus 6 fragments. Short posts were deliberately kept โ€” 67 articles run 8โ€“45 words and carry the punchy one-line style.

Cleaning was intentionally minimal: NFC normalisation, CRLF โ†’ LF, non-breaking and zero-width characters removed, runs of 3+ newlines collapsed. No spelling correction, no smart-quote replacement, no sentence rewriting โ€” the idiosyncrasies are the training signal.

Splits are at article level with a fixed seed (3407): 1,258 train / 70 validation / 70 test, plus a chronological holdout of the 50 most recent posts. Zero exact duplicates; the 2 near-duplicate pairs found were forced into the same split.

Licensing of the training data

The weights are released under Apache 2.0, inherited from Ministral 3 Base. The training corpus is copyrighted material belonging to its author and was not licensed for this use. Anyone redistributing or deploying this model should consider their own position on that; inclusion here is not a claim of rights over the underlying text.

Framework

Trained with Unsloth and TRL. Base model: mistralai/Ministral-3-14B-Base-2512 (Apache 2.0).

Downloads last month
1,507
Safetensors
Model size
14B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for ariedotcodotnz/bobjones-ministral-14b

Finetuned
(1)
this model