Skip to content

Enable using different quantization of models #1615

Description

@ghthor

Please describe the feature you want

Currently it appears that tabby internally assumes that all models are using Q8 quantization, but that appears to not be a requirement. I forked the registry and modifying a Q8 download to instead download a a Q4_K_M download of the deepseek 6.7B model as I needed a smaller usage of RAM so I could run on my nvidia 2080 SUPER.

Tabby still downloads the model to a file name q8_0.v2.gguf but we see the sha256sum does match the Q4_K_M.gguf that I overloaded in my fork of registry-tabby.

✦ ❯ jq .[-1] /home/ghthor/.tabby/models/ghthor/models.json
{
  "name": "DeepseekCoder-6.7B",
  "prompt_template": "<|fim▁begin|>{prefix}<|fim▁hole|>{suffix}<|fim▁end|>",
  "urls": [
    "https://huggingface.co/TheBloke/deepseek-coder-6.7B-base-GGUF/resolve/main/deepseek-coder-6.7b-base.Q4_K_M.gguf"
  ],
  "sha256": "28cef03e1b2d2478dafdb09f1520417cab55efcd3d1cc22bb1950c90bcd8804b"
}

Mon Mar  4 10:45:14 2024 exit 0 🟢 took 2s
registry-tabby on  main 
✦ ❯ find ~/.tabby/models/ghthor/DeepseekCoder-6.7B/ggml/
/home/ghthor/.tabby/models/ghthor/DeepseekCoder-6.7B/ggml/
/home/ghthor/.tabby/models/ghthor/DeepseekCoder-6.7B/ggml/q8_0.v2.gguf

Mon Mar  4 10:45:17 2024 exit 0 🟢 took 2s
registry-tabby on  main 
✦ ❯ sha256sum /home/ghthor/.tabby/models/ghthor/DeepseekCoder-6.7B/ggml/q8_0.v2.gguf
28cef03e1b2d2478dafdb09f1520417cab55efcd3d1cc22bb1950c90bcd8804b  /home/ghthor/.tabby/models/ghthor/DeepseekCoder-6.7B/ggml/q8_0.v2.gguf

Mon Mar  4 10:45:22 2024 exit 0 🟢 took 4s

Once I performed this "override" via my fork of registry-tabby, I was able to load the model without issue as llama-cpp doesn't require that we use only Q8 models.

I think this would probably require an additional field to the registry-tabby json structure that would allow tabby to map the model file to a different filename; in addition we couldn't hardcode the model filename as has been done here.

Implementation details aside, my main point is that llama-cpp supports loading ggml gguf models other than Q8 and it would be nice if tabby supported this without the ugly registry hack that I've done

Additional context

  1. ghthor/registry-tabby@3c36622
  2. ghthor/registry-tabby@7762e81

Please reply with a 👍 if you want this feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions