CoolFace
Modelpublic

bartowski/badtheorylabs_BTL-4-GGUF

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
8likes4.2kdownloads
Model Card

Llamacpp imatrix Quantizations of BTL-4 by badtheorylabs

Using <a href="https://github.com/ggml-org/llama.cpp/">llama.cpp</a> release <a href="https://github.com/ggml-org/llama.cpp/releases/tag/b10262">b10262</a> for quantization.

Original model: https://huggingface.co/badtheorylabs/BTL-4

Model details:

  • Parameter count: 35B
  • Input support: text, image (with mmproj file) - details
  • MTP: no
  • imatrix: yes - details

How to run

Prompt format

<|im_start|>system
{system_prompt}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
<think>

Don't know which to choose? Grab Q4_K_M (21.39GB) - usually a good mix of size and performance. Download instructions available here

Available files:

FilenameQuant typeFile SizeSplitDescription
badtheorylabs_BTL-4-bf16.ggufbf1669.38GBtrueFull BF16 weights.
badtheorylabs_BTL-4-Q8_0.ggufQ8_036.91GBfalseExtremely high quality, generally unneeded but max available quant.
badtheorylabs_BTL-4-Q6_K_L.ggufQ6KL30.30GBfalseUses Q8_0 for embed and output weights. Very high quality, near perfect, recommended.
badtheorylabs_BTL-4-Q6_K.ggufQ6_K30.05GBfalseVery high quality, near perfect, recommended.
badtheorylabs_BTL-4-Q5_K_L.ggufQ5KL25.33GBfalseUses Q8_0 for embed and output weights. High quality, recommended.
badtheorylabs_BTL-4-Q5_K_M.ggufQ5KM25.02GBfalseHigh quality, recommended.
badtheorylabs_BTL-4-Q5_K_S.ggufQ5KS24.16GBfalseHigh quality, recommended.
badtheorylabs_BTL-4-Q4_1.ggufQ4_121.97GBfalseLegacy format, similar performance to Q4KS but with improved tokens/watt on Apple silicon.
badtheorylabs_BTL-4-Q4_K_L.ggufQ4KL21.77GBfalseUses Q8_0 for embed and output weights. Good quality, recommended.
badtheorylabs_BTL-4-Q4_K_M.ggufQ4KM21.39GBfalseGood quality, default size for most use cases, recommended.
badtheorylabs_BTL-4-Q4_K_S.ggufQ4KS20.59GBfalseSlightly lower quality with more space savings, recommended.
badtheorylabs_BTL-4-Q4_0.ggufQ4_019.94GBfalseLegacy format, kept for compatibility with older tools.
badtheorylabs_BTL-4-IQ4_NL.ggufIQ4_NL19.86GBfalseSimilar to IQ4_XS, but slightly larger.
badtheorylabs_BTL-4-IQ4_XS.ggufIQ4_XS18.81GBfalseDecent quality, smaller than Q4KS with similar performance, recommended.
badtheorylabs_BTL-4-Q3_K_XL.ggufQ3KXL17.33GBfalseUses Q8_0 for embed and output weights. Lower quality but usable, good for low RAM availability.
badtheorylabs_BTL-4-IQ3_M.ggufIQ3_M16.90GBfalseMedium-low quality, new method with decent performance comparable to Q3KM.
badtheorylabs_BTL-4-Q3_K_L.ggufQ3KL16.89GBfalseLower quality but usable, good for low RAM availability.
badtheorylabs_BTL-4-Q3_K_M.ggufQ3KM16.23GBfalseLow quality.
badtheorylabs_BTL-4-IQ3_XS.ggufIQ3_XS16.22GBfalseLower quality, new method with decent performance, slightly better than Q3KS.
badtheorylabs_BTL-4-Q3_K_S.ggufQ3KS15.51GBfalseLow quality, not recommended.
badtheorylabs_BTL-4-IQ3_XXS.ggufIQ3_XXS14.87GBfalseLower quality, new method with decent performance, comparable to Q3 quants.
badtheorylabs_BTL-4-Q2_K_L.ggufQ2KL13.11GBfalseUses Q8_0 for embed and output weights. Very low quality but surprisingly usable.
badtheorylabs_BTL-4-Q2_K.ggufQ2_K12.62GBfalseVery low quality but surprisingly usable.
badtheorylabs_BTL-4-IQ2_M.ggufIQ2_M12.07GBfalseRelatively low quality, uses SOTA techniques to be surprisingly usable.
badtheorylabs_BTL-4-IQ2_S.ggufIQ2_S11.01GBfalseLow quality, uses SOTA techniques to be usable.
badtheorylabs_BTL-4-IQ2_XS.ggufIQ2_XS10.80GBfalseLow quality, uses SOTA techniques to be usable.
badtheorylabs_BTL-4-IQ2_XXS.ggufIQ2_XXS9.78GBfalseVery low quality, uses SOTA techniques to be usable.

Download a specific file:

hf download bartowski/badtheorylabs_BTL-4-GGUF --include "badtheorylabs_BTL-4-Q4_K_M.gguf" --local-dir ./

Downloading using the Hugging Face CLI

<details> <summary>Click to view download instructions</summary>

First, make sure you have the Hugging Face CLI installed:

pip install -U "huggingface_hub[cli]"

Download a specific file:

hf download bartowski/badtheorylabs_BTL-4-GGUF --include "badtheorylabs_BTL-4-Q4_K_M.gguf" --local-dir ./

The files marked true in the Split column above are stored as multiple parts in a folder. To download all the parts to a local folder, run:

hf download bartowski/badtheorylabs_BTL-4-GGUF --include "badtheorylabs_BTL-4-bf16/*" --local-dir ./

You can either specify a new local-dir (badtheorylabs_BTL-4-bf16) or download them all in place (./)

</details>

How to run

These quants run with llama.cpp - installable in one line via llama.app:

curl -LsSf https://llama.app/install.sh | sh
llama-server -hf bartowski/badtheorylabs_BTL-4-GGUF:Q4_K_M

llama-server includes a built-in chat web UI, served at http://localhost:8080 by default.

These quants were made with llama.cpp release b10262 - if this model's architecture is newly supported, you'll need that release or newer to run them.

They also work in: LM Studio · koboldcpp · ramalama · Jan AI · Text Generation Web UI · LoLLMs · Atomic Chat

Multimodal

This model supports image input. Alongside the quants, this repo includes the multimodal projector files mmproj-badtheorylabs_BTL-4-f16.gguf and mmproj-badtheorylabs_BTL-4-bf16.gguf, which pair with any quant above.

llama.cpp downloads the mmproj automatically when using -hf as shown above; if you're loading files manually, pass it with --mmproj.

imatrix

All quants made using imatrix option with dataset from here. The imatrix is available here: badtheorylabs_BTL-4-imatrix.gguf.

Embed/output weights

Some of these quants (Q3KXL, Q4KL etc) are the standard quantization method with the embeddings and output weights quantized to Q8_0 instead of what they would normally default to.

ARM/AVX information

llama.cpp automatically "repacks" weights into an interleaved layout at load time for faster inference on ARM and AVX machines - details in this PR. This once required downloading special Q4044/48/88 files; those are long gone. Online repacking now covers Q40, IQ4_NL, and most K-quants, so no special quant choice is needed for CPU inference.

Which file should I choose?

<details> <summary>Click here for details</summary>

An older (early 2024) but still useful write-up with charts comparing quant performances is provided by Artefact2 here

The first thing to figure out is how big a model you can run. To do this, you'll need to figure out how much RAM and/or VRAM you have.

If you want your model running as FAST as possible, you'll want to fit the whole thing on your GPU's VRAM. Aim for a quant with a file size 1-2GB smaller than your GPU's total VRAM.

If you want the absolute maximum quality, add both your system RAM and your GPU's VRAM together, then similarly grab a quant with a file size 1-2GB Smaller than that total.

Hugging Face can also do this math for you: add your hardware in your Local Apps settings and the model page will show which files fit.

Next, you'll need to decide if you want to use an 'I-quant' or a 'K-quant'.

If you don't want to think too much, grab one of the K-quants. These are in format 'QXKX', like Q5KM.

If you want to get more into the weeds, you can check out this extremely useful feature chart:

llama.cpp feature matrix

But basically, if you're aiming for below Q4, and you're running cuBLAS (Nvidia) or rocBLAS (AMD), you should look towards the I-quants. These are in format IQXX, like IQ3M. These are newer and offer better performance for their size.

These I-quants can also be used on CPU, but will be slower than their K-quant equivalent, so speed vs performance is a tradeoff you'll have to decide.

</details>

Credits

Thank you kalomaze and Dampf for assistance in creating the imatrix calibration dataset.

Thank you ZeroWw for the inspiration to experiment with embed/output.

Want to support my work? Visit my ko-fi page here: https://ko-fi.com/bartowski