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:
If 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:
Usage
Download
Basic DNA completion
Metadata-conditioned generation
Speculative 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:
Then run the standalone tool with --model-draft:
Or serve the 8B with the 500M draft (llama-server accepts the same -md flag):
Likelihood 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)):
Or llama-server with logprobs for per-token log-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}:
Base-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
License
Apache-2.0, inherited from the source model.