HuggingFaceBio/Carbon-8B-GGUF
Carbon-8B GGUF
Running with llama.cpp
Carbon is a base DNA model (not instruction-tuned). Use the raw completion front-end so llama.cpp does not apply any chat templating:
llama-completion \
-hf HuggingFaceBio/Carbon-8B-GGUF:Q8_0 \
--prompt "<dna>ATGCGCTAGCTACGATCGATCGTAGCTAGCTAGCTAGCTACG" \
-n 128 --temp 0 --no-display-promptIf you use llama-cli instead, pass -no-cnv so it does not wrap the prompt in assistant-style markers (otherwise the model may emit annotation tags such as <protein_coding_region> instead of DNA).
Available files
K-quants are produced with --token-embedding-type Q8_0 --output-tensor-type Q8_0 so the sensitive embedding/output tensors stay at Q8_0 precision (important for this model's tight DNA-vs-text logit margins).
Requires a recent llama.cpp
HybridDNATokenizer support was merged in ggml-org/llama.cpp#23410, so any build from master after that works:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp && cmake -B build && cmake --build build -jUsage
Download
hf download HuggingFaceBio/Carbon-8B-GGUF carbon-8b-bf16.gguf --local-dir .Basic DNA completion
./build/bin/llama-completion -m carbon-8b-bf16.gguf \
-p '<dna>ATGCGCTAGCTACGATCGATCGTAGCTAGCTAGCTAGCTACG' \
-n 64 --temp 0 -no-cnvMetadata-conditioned generation
./build/bin/llama-completion -m carbon-8b-bf16.gguf \
-p '<vertebrate_mammalian><protein_coding_region><dna>ATGCGCTAG' \
-n 64 --temp 0 -no-cnvSpeculative decoding with Carbon-500M draft (~2x speedup)
The 500M shares the HybridDNA vocab, so it's a near-ideal draft. Measured ~2.1x speedup at temp=0 with 87% accept rate on DNA prompts. Grab the draft GGUF first:
hf download HuggingFaceBio/Carbon-500M-GGUF carbon-500m-bf16.gguf --local-dir .Then run the standalone tool with --model-draft:
./build/bin/llama-speculative \
-m carbon-8b-bf16.gguf \
-md carbon-500m-bf16.gguf \
-p '<dna>ATGCGCTAGCTACGATCGATCGTAGCTAGCTAGCTAGCTACG' \
-n 256 --temp 0Or serve the 8B with the 500M draft (llama-server accepts the same -md flag):
./build/bin/llama-server \
-m carbon-8b-bf16.gguf \
-md carbon-500m-bf16.gguf \
--draft-max 16 --draft-min 1 \
--port 8080curl -s http://localhost:8080/completion -d '{
"prompt": "<dna>ATGCGCTAGCTACGATCGATCGTAGCTAGCTAGCTAGCTACG",
"n_predict": 256,
"temperature": 0
}' | jq -r .contentLikelihood scoring
The source card's Python score() function computes mean log-prob per DNA token. In llama.cpp the closest tools are llama-perplexity for corpus-level perplexity (perplexity = exp(-mean_logprob)):
# one prompt per line in dna_corpus.txt, each wrapped in <dna>...</dna>
./build/bin/llama-perplexity -m carbon-8b-bf16.gguf -f dna_corpus.txt --ppl-stride 0Or llama-server with logprobs for per-token log-probabilities:
./build/bin/llama-server -m carbon-8b-bf16.gguf --port 8080 &
curl -s http://localhost:8080/completion -d '{
"prompt": "<dna>GGGCTATAAAGGCCATCGATCGATCGATCGATCGATCGATCG</dna>",
"n_predict": 0,
"n_probs": 1
}' | jq '.completion_probabilities'Long context with YaRN (65k tokens ≈ 393 kbp)
Mirrors the source card's rope_scaling = {type: yarn, factor: 4.0, original_max_position_embeddings: 32768}:
./build/bin/llama-completion -m carbon-8b-bf16.gguf \
-c 65536 --rope-scaling yarn --rope-scale 4 --yarn-orig-ctx 32768 \
-p '<dna>...' -n 64 --temp 0 -no-cnvBase-pair-level generation (FNS branch) — not supported
The revision="fns" example from the source card needs custom modeling code (factorized nucleotide supervision head), which only the Python transformers path can load. llama.cpp can't run that branch.
See also
- Source weights: HuggingFaceBio/Carbon-8B
- Other GGUF variants: 500M · 3B · 8B
License
Apache-2.0, inherited from the source model.
