Carbon-X reads DNA on a 24 GB card: labels 3 in 4 right, not the reasons

Hugging Face's DNA chat model on stock vLLM and a 24 GB RTX 4090 with FP8: 75% on 40 ClinVar variants, 50 tokens/s, explanations often wrong.

Carbon-X read 55 letters of a human gene carrying the one change behind sickle-cell disease, and flagged it as pathogenic. On one of our two cards, it then explained its answer by pointing at the wrong letter.

Carbon-X is Hugging Face's new open model that reads raw DNA inside an ordinary chat and answers in English. We served it with unmodified open software on an RTX 4090, a 24 GB gaming card, on our cloud. On that card it correctly called 75% of 40 known DNA changes from ClinVar, a public gene database, harmful or harmless (authors: 74.9%). It answered a pair of 4,096-letter sequences in about 2.5 seconds. If you run your own GPUs, this is a DNA specialist that keeps unpublished sequences on your machine and runs on standard open serving software with one command. Use its harmful or harmless labels as a first pass. Do not trust its explanations.

The authors' sickle-cell question answered by Carbon-X on two cards. Left, RTX A6000 48 GB in BF16, 6.4 s, 110 tokens: a red box on 'position 21 from G to T, so AGA becomes AGT', wrong, it is base 20 and codon GAG to GTG. Right, RTX 4090 24 GB with FP8, 2.5 s, 84 tokens: a green box on 'position 20 from G to T'. Both end with 'Answer: pathogenic', boxed green. Footer: neither names HBB or Glu6Val, 16 of 20 samples said pathogenic on both cards, benign at temperature 0

The image shows a single run on each card. Both got the label right, and neither named the gene or the protein change. Over 20 tries on each card, the answer was pathogenic 16 times and benign 4 times. The 48 GB card named the wrong base in 12 of 20 tries. The runs with shrunk weights got it right in 16 and 18 of 20. When we removed the model's built-in randomness, the 48 GB card said benign.

Three numbers from our test of Carbon-X: 77.5% on 40 ClinVar coding variants (the authors report 74.9% on all 1,018). 24 GB is enough with FP8: RTX 4090, 21.4 GB, 50 tokens per second, 75.0%. 2.5 s per variant answer for a 4,096-base pair on the 4090, 7.3 s on the RTX A6000 in BF16

A chat model that reads DNA six letters at a time

Carbon-X is not a new kind of model, and that is why it was easy to serve. Under the hood it is Qwen3-14B, the open 14.8-billion-parameter chat model from the Qwen team, retrained on DNA and biology text. Hugging Face added one thing on the way in: a new way of cutting DNA into pieces before the model reads it.

Language models read text as tokens, chunks of a few letters each. Qwen's usual cutting step chops DNA into odd fragments, so long sequences cost many tokens. Carbon-X adds 5,515 DNA tokens to the ones Qwen already knows. Most of them (4,096) are six-letter blocks of A, C, G and T, so one token covers six bases. Think of a guitarist who reads a six-note run as one shape instead of six separate notes.

Six letters per token is why long DNA fits. In our test, two 4,096-letter sequences plus the question came to 1,445 tokens. The authors' own figure shows a short question with a 27-letter sequence taking 20 tokens with the Qwen3 tokenizer and 13 with Carbon-X's.

You do not have to mark the DNA yourself. Any run of six or more A, C, G and T letters in your message is marked as DNA automatically. Paste a sequence into a sentence and ask: is this variant harmful, what does this region do, which bases come next.

The catch for serving is that this cutting step is custom Python code that ships with the model. You have to let the serving software run Python from the model repository on your own machine. We read that file first: it uses only standard, widely used Python libraries. On first load it also downloads Qwen's base vocabulary from Hugging Face, so the machine needs internet access then. The rest is a stock 14B model.

Hugging Face says 66.7%, close to GPT-6.1 Sol at a sliver of the cost

The authors' headline, in their release blog and on the model card, is an average of 66.7% across five DNA benchmarks. GPT-6.1 Sol scores 67.5% on the same table and Opus 5.5 scores 60.9%. Hugging Face priced its own model at 5 dollars per GPU-hour, the others at retail API prices: for every 1,800 dollars spent on Sol, Carbon-X spends about one. The blog's subtitle says 1,000x instead.

The most concrete claim is about ClinVar, the public database where labs file genetic variants and what they think each one does. About 2.4 million of its variants are still of uncertain significance. The authors estimate that scoring all of them once with Carbon-X would cost about 300 dollars (their chart reads 271), against 32,000 dollars to 4 million with frontier models. We reproduced neither that estimate nor the 66.7%: their evaluation data is not public, so we built our own set from public sources.

We spotted Carbon-X in AI Search's AI NEWS roundup of 25 October. That video says Carbon-X outperforms GPT-6.1 on average. The authors' own table puts it 0.8 points behind Sol. The model card says llama.cpp and GGUF runtimes are not supported, yet the authors' own blog demo runs an 8-bit GGUF on a MacBook at 34 tokens a second. We did not test the laptop route.

Our test: two real cards, 120 public questions, the authors' own settings

We served Carbon-X on two cards on our cloud. A model is mostly its weights, the 14.8 billion numbers it learned. The main run used an RTX A6000 with 48 GB and kept each weight in 16 bits, the model's native format. The second run used an RTX 4090 with 24 GB and shrank each weight to 8 bits as it loads, nearly halving their memory. Both runs went through our platform, the way an application would call it.

The question set had 120 items, all from public data. Forty were real ClinVar variants in protein-coding genes, 20 harmless and 20 harmful, from the same test set the authors use. The model saw only the reference sequence, the changed one and our question, never the gene name. Sixty were GenomeQA multiple-choice questions on what a DNA region does, ten per task. Twenty asked for the next 24 bases of a human gene.

We used the authors' settings: no step-by-step reasoning before answering, and a little randomness in each reply. We also ran with randomness off.

One limit up front: 40 and 60 questions are small samples. On 40 variants, a score of 77.5% could honestly be anywhere from about 64% to 90%. Read our numbers as "matches the authors or not", not as a ranking.

Results: on real ClinVar variants, the labels match the authors

Carbon-X labelled 77.5% of our 40 ClinVar variants correctly on the 48 GB card with the authors' settings. The authors report 74.9% on all 1,018 variants of that test. On GenomeQA it scored 65.0%, against the authors' 63.6%.

ClinVar variants (40)GenomeQA (60)Speed, one request
RTX A6000 48 GB, 16-bit, authors' settings77.5%65.0%
RTX A6000 48 GB, 16-bit, randomness off80.0%65.0%19.5 tokens/s
RTX 4090 24 GB, 8-bit, randomness off75.0%66.7%50.5 tokens/s
Authors (full sets)74.9%63.6%

Like for like, with randomness off, the 4090 scored 75.0% against 80.0%: two variants out of 40, inside the noise. Its answers matched the 48 GB card's on 36 of 40 variants and 57 of 60 questions. Turning randomness off changed one answer in 40. What limits these numbers is the small sample.

The errors lean one way. On the 48 GB card the model caught 19 of the 20 harmful variants but only 12 of the 20 harmless ones. So it flagged 8 of 20 harmless variants. On a long, real list, that is a lot of harmless cases for a human to review.

On the 4090, a full variant question on two 4,096-letter sequences comes back in 2.4 to 2.6 seconds, against 7.1 to 7.5 on the 48 GB card in 16-bit. Most of the gain comes from the 8-bit weights: with them, even the 48 GB card answered the same question in about 4 seconds.

Where it breaks: the label holds, the reasoning does not

The verdicts are usable, but the explanations around them are often wrong, even when the verdict is right. That matters because a chat answer in fluent English invites you to trust the reasoning.

On a real ClinVar variant where a T became a C, it gave the right label with the rationale "The variant changes C to C". Given 93 bases of the beta-globin gene, it translated them into protein correctly and then said the gene was PKM2, a different gene. The authors warn about exactly this: the model "can miscount bases, confuse coordinates" and may invent a sequence's identity.

Some tasks are weak too. On two of GenomeQA's six tasks it got 3 of 10 each, about as weak as the authors report (29.8% and 34.6%). Asked for the next 24 bases of a human gene, it got about 29% of bases right, where random guessing gets 25%. That set is ours, not the authors' NextBase benchmark (39.4%), so the two are not directly comparable.

It is not a clinical tool, and the authors say so.

Which GPU: a 24 GB RTX 4090 with 8-bit weights, not the 80 GB card on the model page

The smallest card that worked was a real 24 GB RTX 4090, with weights shrunk to 8 bits and room for 8,192 tokens per conversation. It peaked at 21.4 GB and answered faster than the 48 GB card (see Results).

In full 16-bit precision you need a 48 GB card. Our RTX A6000 showed 40.6 GB in use, and most of that beyond the weights is room reserved for the text of ongoing conversations. The 80 GB on the model card, for a 29.6 GB file, is generous.

Here is what ran on real hardware and what did not:

  • Real cards: RTX A6000 48 GB in 16-bit (passed) and RTX 4090 24 GB in 8-bit (passed).
  • Simulated by capping memory on the 48 GB card: a 24 GB cap in 8-bit passed (77.5% and 65.0%). Three 16 GB attempts failed: two would not start, and one managed roughly one token every five seconds.
  • Not tried: 32 GB and 80 GB cards, and several other 24 and 48 GB models (list in the appendix).

The 8,192-token limit on the 4090 is half of what we used on the 48 GB card. We did not measure speed on prompts longer than our variant pair, or anywhere near the model's 40,960-token limit.

On InferenceKey: one command line, ready in six minutes on a cold card

From a cold 48 GB worker with no vLLM and no weights on it, Carbon-X was serving on stock vLLM, the open serving software, in 356 seconds, with one command line. A domain model should not need a custom engine, and this one did not. Most of the wait was installing vLLM (138 seconds) and the engine warming up (136 seconds). Downloading 30 GB of weights took 22 seconds, and loading them took 30. The 4090 was ready in 262.5 seconds. Our SDK example deploys the model on your GPU machine, waits for it, asks two questions from the model card and removes it.

Two settings did the work: a fixed vLLM version the tokenizer is known to work with, and step-by-step reasoning switched off on the server, as the authors trained it.

One problem shows up in the output. Answers that contain DNA come back wrapped in the literal markers <dna> and </dna>, and vLLM's cleanup option does not remove them. Status: open. The example's README tells you to strip the tags in your parser.

Should you use it? Yes for triage on your own card, no for its explanations

  • If you need to sort many variants by likely harm, run it, but do not treat one answer as final. The sickle-cell verdict flipped to benign with randomness off. On the 4090, 120 questions sent 8 at a time took 45.9 seconds, a median of 3.3 seconds each. We did not measure tokens per second under load.
  • If you need to know why, do not take its word. Positions, bases and gene names in its explanations were wrong too often. Compute positions in code.
  • If your sequences cannot leave the building, it is Apache-2.0, not gated, and runs on one 24 GB card you control.
  • If your card has 16 GB, skip it for now. No vLLM setup we tried worked.

To ask Carbon-X the authors' two DNA questions on your own NVIDIA card, run python main.py from the Carbon-X SDK example. It needs an InferenceKey project with an SDK token and an API key. It also needs an NVIDIA machine with a CUDA 13 driver (580 or newer) and 48 GB, or 24 GB with CARBON_FP8=1, plus access to Hugging Face on first load. It deletes the deployment when it finishes.

For engineers

Credits

  • Carbon-X: Loubna Ben Allal, Lewis Tunstall, Dana Aubakirova, Maurizio Fiusco, Edward Beeching, Kashif Rasul, Leandro von Werra, Qiuyi Li and Diego di Bernardo, a collaboration of Hugging Face, Zhongguancun Academy and TIGEM / University of Naples Federico II. They trained the model, wrote the tokenizer, published the weights under Apache-2.0 and released their training and eval recipes in huggingface/carbon.
  • Base model: Qwen3-14B from the Qwen team.
  • Serving: the vLLM project.
  • Eval data: the BioReason variant set wanglab/variant_effect_coding from the Wang lab, and HuggingFaceBio/genomeqa.
  • Where we spotted it: AI Search's AI NEWS video of 2026-10-25 (Carbon-X segment 07:37 to 09:27), and a r/LocalLLaMA post of 2026-10-22.
  • Our part: the deployment through the platform, the public eval set, the measurements, the VRAM ladder and the SDK example.

Model and files

  • HuggingFaceBio/Carbon-X, sha a5f4e199957aa2ca3e0345eb28bd1254604db2b2, repo created 2026-10-21, last modified 2026-10-28, Apache-2.0, not gated.
  • Qwen3ForCausalLM, 14,822,046,720 parameters in BF16. 40 layers, hidden 5120, FFN 17408, 40 heads with 8 KV heads (GQA), head dim 128, SwiGLU, RMSNorm with QK-norm, untied embeddings, RoPE base 1e6, max_position_embeddings 40,960.
  • Two safetensors shards: 24,956,844,000 B + 4,687,301,152 B = 29.64 GB.
  • Vocabulary 157,184 = 151,669 BPE + 5,515 DNA tokens (4,096 6-mers, 1,364 tail tokens for lengths not a multiple of 6, <dna>, </dna>, <oov>, padded to a multiple of 128).
  • Auto-tagging: runs of 6 or more A/C/G/T are wrapped in <dna>...</dna>. Runs of 12 or more with up to 20% IUPAC ambiguity codes are tagged too. Non-ACGT 6-mers become one <oov>. auto_dna_tags=False disables it.
  • tokenizer.py (class HybridDNATokenizer, via auto_map) imports only transformers and the stdlib. On first load it fetches the Qwen/Qwen3-4B-Base BPE at a pinned revision from the Hub, so the serving host needs Hub access. We read it before running it.
  • The card: "Carbon-X requires Transformers v5 or later". The release blog's laptop demo is an 8-bit GGUF in llama.cpp; the card says GGUF runtimes are not supported (see Problems). Post-trained and evaluated with enable_thinking=False. generation_config.json: temperature 0.6, top_p 0.95, top_k 20, used for every reported result.
  • Training (authors): vocabulary extension with about 10B tokens and the body frozen, mid-training on 302B tokens at 8,192 sequence length (55% raw DNA, 20% English, 15% biology text, 10% instruction), SFT for 3 epochs, two rounds of async GRPO with thinking off.

Authors' benchmarks (not reproduced by us)

Thinking off, default sampling, one sample per problem. Leaderboard snapshot 2026-10-21T13:31:46Z.

BenchmarkCarbon-XGPT-6.1 Sol MaxOpus 5.5 MaxGemini 4 Argon Low
BioReason Coding (1,018)74.971.070.36.5
BioReason Non-SNV (873)85.191.794.890.3
GenomeQA (2,600)63.667.262.263.1
NextBase (600)39.432.91.131.2
FrontierVEP (1,000)70.474.976.258.0
Average66.767.560.949.8

Other averages on the same table: GLM-5.3 39.8, Kimi K3 50.4, DeepSeek V4.1 Flash 47.1. GenomeQA per task: enhancer/promoter 70.0, splice 29.8, eukaryote 93.2, histone 34.6, TFBS 64.0, motif 90.0. IFEval 79.3% prompt-strict. As a sub-agent, Carbon-X raised Kimi K3's DNA index from 49.4% to 60.5% (100 questions per benchmark). Cost claims use API list prices for the comparison models and measured Carbon-X throughput per H200-hour at 5 USD. The ClinVar chart's bars read 271, 32,380, 110,724, 658,632 and 4,027,185 USD. We matched the frontier bars to models by their order in the SVG, so that mapping is not confirmed.

Setup

  • Local InferenceKey manager and nats-proxy built from main, workers on our cloud, production never touched.
  • Backend: built-in vllm with vllm_version="0.32.0" (2026-10-18). It pins transformers<5.20.0,>=5.16.1 (5.19.0 installed) and torch==2.13.0. Those are cu13 wheels, so the worker needs a CUDA 13 driver (580 or newer). The worker default, vLLM 0.20.0, has no upper bound on transformers, which is why we pinned.
  • Main run: RTX A6000 48 GB, driver 595.91.07, CUDA 13.2. Ladder run: RTX 4090 24 GB, same driver.
# 48 GB card, BF16 (main run)
vllm serve HuggingFaceBio/Carbon-X --trust-remote-code --dtype bfloat16 \
  --max-model-len 16384 \
  --default-chat-template-kwargs '{"enable_thinking": false}'

# 24 GB card, FP8 at load (what CARBON_FP8=1 sends)
vllm serve HuggingFaceBio/Carbon-X --trust-remote-code --dtype bfloat16 \
  --max-model-len 8192 --quantization fp8 \
  --default-chat-template-kwargs '{"enable_thinking": false}'

If you call vLLM directly and prefer per-request control, the card's form is extra_body={"chat_template_kwargs": {"enable_thinking": False}}. We did not test quality with thinking on.

Step by step with the SDK example

The example lives at examples/carbon-x-dna-chat-vllm-private-nvidia (commit 4ccd5764 on main). The Python SDK is not on PyPI yet, so it builds locally with maturin.

git clone https://github.com/inferencekey/inferencekey-sdk.git
cd inferencekey-sdk/examples/carbon-x-dna-chat-vllm-private-nvidia
cp .env.example .env        # INFERENCEKEY_SDK_TOKEN (ik_sdk_), INFERENCEKEY_API_KEY (ik_live_),
                            # INFERENCEKEY_PROJECT, IK_WORKER_ID, optional INFERENCEKEY_BASE_URL
python -m venv .venv && . .venv/bin/activate
pip install maturin
( cd ../../bindings/python && maturin develop --release )
set -a; . ./.env; set +a
python main.py                  # 48 GB card, BF16
CARBON_FP8=1 python main.py     # 24 GB card, FP8

What main.py does:

  1. ensure() a fixed vllm workload (task_type="text2text", one replica) pinned to IK_WORKER_ID, with the command above.
  2. wait_until_ready(timeout=2400). A cold worker installs vLLM and downloads 29.6 GB first.
  3. Asks the model card's two questions (the sickle-cell HBB variant, and "What does this sequence encode?") with max_tokens=1024, prints answers, seconds and tokens, and saves outputs/answers.md.
  4. delete() the workload, unless IK_KEEP_ALIVE=1.

The worker needs about 40 GB of free disk and Hub access for the tokenizer.

Time to ready

StepRTX A6000, BF16, coldRTX 4090, FP8, cold
pip install vllm==0.32.0138 s106 s
Download 29.6 GB22.0 s20.3 s
Load weights29.5 s (27.62 GiB)27.9 s (15.97 GiB)
Engine init (profile, KV cache, warm-up)135.6 s (compile 34.1 s)89.2 s (compile 29.5 s)
SDK ready after356.0 s262.5 s

On a warm A6000 (same venv and weights, direct vllm serve), the FP8 24 GB cap was ready in 95 s.

Speed, one request (temperature 0, streaming)

Card / config300-word answer4 kbp + 4 kbp variant pair (1,445 prompt tokens)
RTX A6000, BF1619.5 tok/s, TTFT 0.17 to 0.18 s135 tokens in 7.1 to 7.5 s
RTX A6000, FP8, 24 GB cap38.4 to 38.5 tok/s, TTFT 0.26 to 0.31 s118 to 151 tokens in 4.0 to 4.3 s
RTX 4090, FP850.5 to 50.6 tok/s, TTFT 0.14 to 0.15 s116 to 117 tokens in 2.4 to 2.6 s
RTX A6000, BF16 + 16 GB CPU offload, eager40 tokens in 189.1 s (0.21 tok/s)not run

Our variant-pair question (8,192 bases of DNA) used 1,445 prompt tokens. Concurrency was not measured as tokens per second. The eval runs at 8 concurrent requests had a median latency of 7.56 s on the A6000 and 3.30 s on the 4090. Speed near the 40,960-token context is unmeasured.

GPU memory

  • A6000 BF16: weights 27.62 GiB, KV cache 10.96 GiB (71,824 tokens at 16,384 context), vLLM preallocates 0.92 of the card, nvidia-smi 40,639 MiB.
  • A6000 FP8 with a 24 GB cap: 22,477 MiB (weights 15.81 GiB, KV 4.95 GiB = 32,432 tokens).
  • RTX 4090 FP8: weights 15.97 GiB, KV 3.18 GiB (20,800 tokens), peak 21,418 MiB of 24,564.
  • KV arithmetic: 40 layers x 8 KV heads x 128 x 2 (K and V) x 2 B = 160 KiB per token, so 16K context is 2.5 GiB.

VRAM ladder

GPU or capConfigPeak VRAMTime per outputOutput OKReal or emulated
RTX A6000 48 GBBF16, --max-model-len 16384, 0.92 prealloc40.6 GB7.3 s per variant pairyes (77.5% / 65.0%)real
24 GB cap on the A6000--quantization fp8 --gpu-memory-utilization 0.52 --max-model-len 819222.5 GB4.1 syes (77.5% / 65.0%, sickle 16/20)emulated
RTX 4090 24 GBCARBON_FP8=1 via SDK ensure()21.4 GB2.5 syes (75.0% / 66.7%, sickle 16/20)real
16 GB cap on the A6000--quantization bitsandbytes, 0.34no: Unknown quantization method: bitsandbytes (removed in vLLM 0.32)emulated
16 GB cap on the A6000FP8 + --cpu-offload-gb 6, 0.34no: NotImplementedError: Cannot copy out of meta tensor; no data!emulated
16 GB cap on the A6000BF16 + --cpu-offload-gb 16 --enforce-eager, 0.3415.5 GB189.1 s for 40 tokensno: 0.21 tok/s; with CUDA graphs, more than 10 min of graph captureemulated

Not tried: int8 weight-only, torchao int4, community GGUF, RTX 3090, L4, L40S, RTX 6000 Ada, 32 GB cards in BF16 (no useful KV room by arithmetic), 80 GB cards, A40 (the machine failed on SSH, not on the model). The example's docstring and README list some of these as fitting; only the A6000 and the 4090 ran.

Eval runs

120 items, 8 concurrent, through the manager's /v1/chat/completions. 109,236 prompt tokens per run. 0 HTTP errors, every answer parseable, no crash, NaN or empty answer in about 600 requests.

RunWallClinVar (40)Benign / pathogenic recallGenomeQA (60)Next 24 bases, per base
A6000 BF16, default sampling101.2 s77.5%60 / 95%65.0%29.2%
A6000 BF16, temperature 0118.9 s80.0%65 / 95%65.0%27.9%
A6000 FP8, 24 GB cap, temperature 080.1 s77.5%55 / 100%65.0%30.6%
RTX 4090 FP8, temperature 045.9 s75.0%55 / 95%66.7%29.6%
  • Data: wanglab/variant_effect_coding v1 test (1,233 rows, 1,018 unique pairs, 20 + 20 sampled, sequence only, our fixed question ending in <answer>benign|pathogenic</answer>). HuggingFaceBio/genomeqa mcq_carbon_600, 10 per sub-task, Inspect's multiple_choice(cot=True) template. 20 human RefSeq mRNAs with 300 bases of context at a random offset. The authors' HuggingFaceBio/DNAIntelligenceIndex returned HTTP 401.
  • GenomeQA per sub-task, BF16 default (10 each): enhancer/promoter 60, splice 30, histone 30, TFBS 70, motif 100, eukaryote 100. Greedy: splice 20, histone 40.
  • Agreement with BF16 greedy answers: default sampling 39/40 and 57/60, FP8 cap 37/40 and 56/60, 4090 36/40 and 57/60.
  • A 95% interval on 77.5% of 40 is roughly plus or minus 13 points.

Quality details

  • Sickle-cell example (first 55 bases of HBB, GAG to GTG at base 20, Glu6Val, gene not given), 20 samples at default sampling: 16 pathogenic / 4 benign on A6000 BF16, FP8 cap and 4090. Temperature 0 on BF16: "Answer: Benign". BF16 names "position 21" in 12 of 20, FP8 runs name 20 in 16 and 18 of 20. "GAG" / "GTG" appear in 6 to 9 of 20. No sample mentions glutamate, valine or sickle cell.
  • "What does this sequence encode?" (36 bases of HBB): MVHLTPEEKSAV correct on both cards. The A6000 added "has a stop codon at the end" (false). Neither named beta-globin. With 93 bases at temperature 0: correct translation, then "PKM2 (pyruvate kinase M2)".
  • Real pair Task1_test_581 (DNAAF11, ClinVar pathogenic, CATGGC to CACGGC): labelled pathogenic every time, rationales "a C>A transversion, changing ATG to AAG" and "The variant changes C to C, so ATG becomes ACG".
  • Next-base answers were always exactly 24 bases inside <dna> tags, several low-complexity (AAAAAAAAAAAAAAAAAAAAAAAA). Scored with the authors' extractor (seqrecqa.py).

Problems

  • <dna> tags in output. Answers with DNA come back wrapped in literal <dna>...</dna>, and skip_special_tokens does not strip them. Status: open. Documented in the example README; parse around them.
  • Unreliable explanations. A model limitation the authors document. Status: open, no fix on our side beyond sampling several times and computing positions in code.
  • No 16 GB path in vLLM 0.32. See the ladder. Status: open; int8 weight-only, torchao int4 and GGUF untried.
  • ensure() creates the assignment with max_in_flight 1. Known since 2026-10-15. We raised it to 8 per run with PATCH /api/projects/<pid>/assignments/<workload>/<worker>. Status: open on the platform.
  • A40 machine without SSH. It ran for 180 s without exposing direct SSH, and the manager terminated it after 3.1 minutes. We moved to the RTX A6000 (same chip family, same 48 GB). Status: handled by the manager's check.
  • Gateway streams carry no usage. Token counts came from the stream chunks. Status: open.
  • "Using a slow tokenizer" warning from the Python DNA tokenizer. No visible throughput effect.
  • Card and blog disagree on GGUF. The card says llama.cpp and GGUF runtimes are not supported. The release blog's 16 s demo runs llama-cli -m models/Carbon-X/carbon-x-q8_0.gguf on an Apple M5 Max at 34.1 t/s on screen, and its own shortened peptide "MVHLP ... (MVHLPEEKSV)" is wrong. Our example README repeats the card. We did not check whether a public GGUF repo exists.
  • Our slips, no effect on results. A wait-loop regex missed the 4090's bootstrap line, so it sat idle about 6 minutes. An empty IK_WORKER_ID made the first 4090 ensure() fail with 422. Our first next-base regex did not expect the tags and scored 0%.

Demo video

The 154.5 s narrated video covers the model, the authors' examples and benchmark table, our test and the GPU ladder.

Carbon-X deploy test: the key comparison insert, '16 of 20 tries said pathogenic'

Sources