CoolFace
Modelpublic

opencerebral/Boris-1.3-125M-Instruct-GGUF

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
1likes445downloads
Model Card

Boris-1.3-125M-Instruct-GGUF

GGUF quantizations of KSP-NMAI/boris-1.3-125M-Instruct for llama.cpp and compatible runtimes (llama-server, LM Studio, koboldcpp, Jan).

The original safetensors weights live in the base repo — use those for finetuning or for any PyTorch-based runtime. GGUF is inference-only.

Which file should I pick?

Use `Q8_0`, or `Q6_K` if you want the same quality a little smaller.

Boris-1.3-125M is a small model, and quantization behaves differently at this scale than it does for 7B+ models. d_model is 768 and the QKV/FFN rows are 2304/3072, all divisible by 256, so unlike the 75M sibling every tensor here really is quantized at its nominal bit width — the k-quants and i-quants behave as intended.

What still sets a floor on file size is the token embedding: 768 × 50304 ≈ 38.6M weights, 31% of the model. The output weights are tied to it, and llama.cpp keeps it at Q6_K (~32 MB) in nearly every file here, which is most of the 50–60 MB you see at the bottom of the table.

The practical consequence is that the aggressive quants buy very little. Going from Q8_0 (130 MB) to IQ1_S (50 MB) saves 80 MB while more than tripling perplexity, and the ternary files are broken outright. Below roughly Q3_K_M the curve turns sharply and is not worth walking down unless you are curious.

Files

Perplexity is measured on a fixed 30 × 1024-token slice of the calibration corpus. It is useful for comparing these rows against each other and nothing else.

FileQuantSizePPLNotes
Boris-1.3-125M-Instruct-F16.ggufF16241M55.10Reference. Unquantized conversion of the safetensors weights.
Boris-1.3-125M-Instruct-BF16.ggufBF16241M55.12Reference, bfloat16.
Boris-1.3-125M-Instruct-Q8_0.ggufQ8_0130M55.08Effectively lossless. Recommended.
Boris-1.3-125M-Instruct-Q6_K.ggufQ6_K102M55.16Near-lossless.
Boris-1.3-125M-Instruct-Q5_K_M.ggufQ5KM94M55.61Very good quality.
Boris-1.3-125M-Instruct-Q5_K_S.ggufQ5KS91M55.54
Boris-1.3-125M-Instruct-Q5_1.ggufQ5_196M55.51
Boris-1.3-125M-Instruct-Q5_0.ggufQ5_091M55.60
Boris-1.3-125M-Instruct-Q4_K_M.ggufQ4KM87M56.05Standard 4-bit default for larger models.
Boris-1.3-125M-Instruct-Q4_K_S.ggufQ4KS82M56.28
Boris-1.3-125M-Instruct-Q4_1.ggufQ4_186M56.80
Boris-1.3-125M-Instruct-Q4_0.ggufQ4_081M56.94
Boris-1.3-125M-Instruct-IQ4_NL.ggufIQ4_NL81M56.22Best of the 4-bit-and-under group per byte.
Boris-1.3-125M-Instruct-IQ4_XS.ggufIQ4_XS78M56.27
Boris-1.3-125M-Instruct-Q3_K_L.ggufQ3KL84M57.61
Boris-1.3-125M-Instruct-Q3_K_M.ggufQ3KM78M58.24Reasonable floor for everyday use.
Boris-1.3-125M-Instruct-Q3_K_S.ggufQ3KS70M61.97
Boris-1.3-125M-Instruct-IQ3_M.ggufIQ3_M74M58.07
Boris-1.3-125M-Instruct-IQ3_S.ggufIQ3_S70M60.44
Boris-1.3-125M-Instruct-IQ3_XS.ggufIQ3_XS69M61.27
Boris-1.3-125M-Instruct-IQ3_XXS.ggufIQ3_XXS62M65.56
Boris-1.3-125M-Instruct-Q2_K.ggufQ2_K67M68.54
Boris-1.3-125M-Instruct-Q2_K_S.ggufQ2KS62M83.13Starts looping on open-ended prompts.
Boris-1.3-125M-Instruct-IQ2_M.ggufIQ2_M60M68.66Best 2-bit option; matches Q2_K 7M smaller.
Boris-1.3-125M-Instruct-IQ2_S.ggufIQ2_S58M74.79
Boris-1.3-125M-Instruct-IQ2_XS.ggufIQ2_XS55M92.54Fluent but confabulates freely.
Boris-1.3-125M-Instruct-IQ2_XXS.ggufIQ2_XXS53M107.47Sometimes emits an empty answer.
Boris-1.3-125M-Instruct-IQ1_M.ggufIQ1_M51M153.38Still clean English, but largely unrelated to the question.
Boris-1.3-125M-Instruct-IQ1_S.ggufIQ1_S50M179.37
Boris-1.3-125M-Instruct-TQ2_0.ggufTQ2_056M8903.62Ternary; degenerate token soup. Curiosity only.
Boris-1.3-125M-Instruct-TQ1_0.ggufTQ1_052M8903.62Ternary; as above, and gives the same greedy output as TQ2_0.

All K-quant, IQ and TQ files were produced with an importance matrix calibrated on 300 chunks of held-out data drawn from the model's own pretraining mixture (60% fineweb-edu / 40% dclm) plus rendered instruction turns; the matrix itself is published here as boris-1.3-125m-instruct.imatrix. Q8_0 and the legacy Q4_0/Q4_1/Q5_0/Q5_1 are plain round-to-nearest. SHA256SUMS covers every file.

Converted and quantized with llama.cpp build b9013 (e48034dfc).

Usage

bash
# straight from the Hub
llama-server -hf KSP-NMAI/Boris-1.3-125M-Instruct-GGUF:Q8_0 --jinja

# or a local file
llama-server -m Boris-1.3-125M-Instruct-Q8_0.gguf --jinja

The chat template is embedded in every file, so --jinja applies the correct prompt format automatically.

Prompt format

Boris-1.3-125M-Instruct uses a plain text chat template — the GPT-NeoX-20B BPE has no chat special tokens, so turns are delimited by headers and terminated by <|endoftext|> (token 0), which is also the stop token.

### System:
{optional system message}

### User:
{your message}

### Assistant:
{reply}<|endoftext|>

### User:
{next message}

### Assistant:

Note this differs from the Alpaca-style template used by Boris-1.3-75M-Instruct; do not reuse prompts between the two.

Verification

Every file in this repo was checked to load as arch=gpt2 with the chat template present, and to complete chat-formatted prompts with output that decodes as strict UTF-8 containing zero U+FFFD replacement characters — no mojibake at any quant level, including the ternary files. The GGUF vocab was diffed against the source tokenizer.json across accented Latin, Cyrillic, CJK, Hangul, Arabic, Hebrew, emoji (including ZWJ sequences), zero-width and whitespace-run samples: identical token ids and byte-exact detokenization.

Limitations

This is a very small instruction-tuned model. It will produce text that is frequently inaccurate, inconsistent, or offensive, and has received no alignment or safety tuning beyond supervised fine-tuning. Do not rely on it for factual information or deploy it without supervision.

License

Apache 2.0. Copyright 2026 Joseph Jones. See the base repository for the full notice.