From: HuggingFaceBio <huggingface.co/HuggingFaceBio>Newsgroups: alt.freeweights.textSubject:

Carbon-3B

Date: 2026-11-15Commit: e1b2369Signed: 2DC28CC7B26A283B ✓

Text generation model with 3.5B parameters. Safetensors weights, 6.91 GB in all. Published by HuggingFaceBio under Apache-2.0.

3.5B params6.91GBCarbon-3Bsafetensorspermissive
FactsParams3.5BSize6.91 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get HuggingFaceBio/Carbon-3B
# manifest sha256 58cd4215259b… · 6.91 GB · 18 files
$ fw verify ./Carbon-3B HuggingFaceBio/Carbon-3B
From sourceHosted (signed)HuggingFaceBio/Carbon-3BLast check: 2026-11-15 03:34 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Overview

Size
6.91 GB
Weights
6.90 GB (safetensors)
Parameters
3.5B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
18, each with a sha256
Publisher
HuggingFaceBio
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:34 UTCpassed

Model card

From the publisher at commit e1b2369. Shown as plain text with links; images open at the publisher.

Image: image

Technical Report 🧬

Carbon-3B#

A generative DNA foundation model from the Carbon family.

Table of Contents#

  1. Model Summary
  2. How to use
  3. Evaluation
  4. Training
  5. Limitations
  6. License
  7. Acknowledgements

Model Summary#

Image: Pareto plot

Carbon-3B is a 3B-parameter decoder-only autoregressive genomic foundation model trained on DNA and RNA sequences, with a primary focus on eukaryotes. It has a native context length of 32,768 6-mer tokens (β‰ˆ 197k DNA base pairs) and extends to 65,536 tokens (β‰ˆ 393 kbp) at inference time via YaRN. Carbon-3B is designed to be both strong and efficient: on generative tasks (sequence recovery), variant-effect prediction, and motif-perturbation discrimination, it matches the capability of substantially larger single-nucleotide baselines such as Evo2-7B while running several times faster.

Carbon-3B is the flagship model of the Carbon family. We also release Carbon-8B for users who need additional capability at higher inference cost, and Carbon-500M β€” a small generative model intended for speculative decoding alongside Carbon-3B (or Carbon-8B).

Key features#
  • 3B parameters, 30 layers, hidden size 3072, GQA (32 heads, 4 KV groups), SwiGLU, RMSNorm.
  • Hybrid tokenizer: non-overlapping 6-mer tokenization for DNA combined with the Qwen3 BPE vocabulary for English text. We found 6-mer tokenization to work substantially better than BPE for DNA β€” hence the hybrid setup, which keeps 6-mer for DNA while preserving a BPE vocabulary for future joint English + DNA training, the direction in which we believe genomic foundation models should converge. Each DNA token encodes 6 nucleotides, so 1 DNA token β‰ˆ 6 bp.
  • Native context: 32,768 tokens β‰ˆ 197 kbp. Extendable to 65,536 tokens (β‰ˆ 393 kbp) at inference time using YaRN.
  • Trained with a Cross-Entropy β†’ Factorised Nucleotide Supervision (FNS) objective schedule to bridge coarse tokenization and single-nucleotide resolution (see the Carbon technical report).
  • Metadata-conditioned: optional species-type and gene-type metadata tokens enable conditional generation.
  • Efficient inference: compatible with vLLM and other inference engines. Can generate over 100,000 base-pairs per second on a single H100 GPU.

Across our zero-shot evaluation suite, sequence recovery, four variant-effect-prediction (VEP) benchmarks (ClinVar coding, ClinVar non-coding, BRCA2, TraitGym Mendelian), and two sequence-level perturbation tasks (nucleotide triplet-expansion and synonymous codon replacement), Carbon-3B is competitive with Evo2-7B. It additionally works well on long context and retrieves needles reliably from up to β‰ˆ 393 kbp of distal context on the Genomic-NIAH long-context benchmark, while remaining several times faster than Evo2-7B. For full design rationale and ablations, see the Carbon technical report and the Carbon GitHub repository.

How to use#

Carbon-3B is a standard Hugging Face causal LM. The custom DNA tokenizer requires trust_remote_code=True on the tokenizer; the model itself is stock LlamaForCausalLM and does not require it.

pip install -U transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

repo = "HuggingFaceBio/Carbon-3B"

tok = AutoTokenizer.from_pretrained(repo, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    repo,
    dtype=torch.bfloat16,
).cuda().eval()

# Wrap a DNA prompt with the <dna> tag (the model is trained with this format).
# DNA length should be a multiple of 6 β€” see the Tokenizer section below.
dna_prompt = "ATGCGCTAGCTACGATCGATCGTAGCTAGCTAGCTAGCTACG"   # 42 bp = 7 Γ— 6-mer
prompt = f"<dna>{dna_prompt}"

inputs = tok(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")
out = model.generate(
    **inputs,
    max_new_tokens=64,
    do_sample=False,
)
print(tok.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
Tokenizer: working with DNA inputs#

The Carbon tokenizer is a hybrid of BPE (for English text) and a fixed 6-mer scheme (for DNA). 6-mer tokenization is the central DNA-modeling design choice in Carbon β€” we found it works substantially better than BPE for DNA (see the Carbon technical report for the analysis) β€” but it comes with a few practical constraints when feeding input to the model. The tokenizer only switches into 6-mer mode when it sees the <dna> tag and emits <oov> token for any token with letters not in [ATCG].

1. Always wrap DNA sequences with <dna> β€” this is critical#

If you pass a raw DNA sequence without the <dna> tag, the tokenizer treats it as English text and applies BPE. BPE-tokenized DNA is essentially a different language for Carbon-3B, and performance collapses across every benchmark. Always prepend <dna> before any DNA content. Use </dna> to close the DNA block if you intend to follow it with non-DNA tokens.

# ❌ Wrong β€” tokenized as BPE, performance collapses
prompt = "ATGCGCTAGCTACGATCGATCGTAGCTAGCTAG"

# βœ… Correct β€” `<dna>` flips the tokenizer into 6-mer mode, for generation
prompt = "<dna>ATGCGCTAGCTACGATCGATCGTAGCTAGCTAG"

# βœ… Also correct β€” explicitly close the DNA block
prompt = "<dna>ATGCGCTAGCTACGATCGATCGTAGCTAGCTAG</dna>"

The <dna> / </dna> tell the tokenizer where to switch modes.

2. Only uppercase A, C, G, T are in the 6-mer vocab#

Anything else inside a <dna>... block β€” lowercase bases, IUPAC ambiguity codes (N, Y, R, …), or any other character β€” is mapped to the <oov> token. Filter to canonical uppercase ACGT before passing input if you don't want <oov>.

3. DNA length should be a multiple of 6#

Each DNA token encodes 6 nucleotides, so the tokenizer groups input in non-overlapping 6-mer blocks. If the sequence is not a multiple of 6, the current tokenizer right-pads the trailing partial block with As (e.g. ...CTAG β†’ token TAGAAA). We recommend truncating to a multiple of 6 before passing the sequence in:

def truncate_to_6mer(seq: str) -> str:
    return seq[: (len(seq) // 6) * 6]

prompt = f"<dna>{truncate_to_6mer(seq)}"
Likelihood-based scoring#

For variant-effect or perturbation tasks, score sequences with the model's per-token log-probabilities. A minimal single-sequence helper:

import torch
import torch.nn.functional as F

@torch.no_grad()
def score(seq: str) -> float:
    """Mean log-prob per DNA token of `seq` (single sequence, no padding)."""
    text = f"<dna>{seq}</dna>"
    ids = tok(text, return_tensors="pt", add_special_tokens=False).input_ids.to(model.device)
    logits = model(ids).logits[:, :-1, :]
    targets = ids[:, 1:]
    logp = F.log_softmax(logits.float(), dim=-1).gather(-1, targets.unsqueeze(-1)).squeeze(-1)
    return logp.mean().item()

For batched scoring with attention masking and full reproducible evaluation pipelines (sequence recovery, ClinVar / BRCA2 / TraitGym VEP, triplet-expansion / synonymous codon replacement, Genomic-NIAH), use the official scripts in the Carbon evaluation directory β€” see perturbation_tasks.py for the canonical score_hf implementation and README.md for run instructions across all tasks.

Long context: extending to 65,536 tokens (β‰ˆ 393 kbp) with YaRN#

The released config.json is configured for the native 32 k context. To extend to 65,536 tokens (β‰ˆ 393 kbp) at inference time, override max_position_embeddings and add a YaRN rope_scaling block. We recommend a YaRN factor of 4, which we observed gives better retrieval quality at 64 k than a tighter factor of 2:

from transformers import AutoConfig, AutoModelForCausalLM

config = AutoConfig.from_pretrained(repo, trust_remote_code=True)
config.max_position_embeddings = 65536    # 65,536 tokens β‰ˆ 393 kbp
config.rope_scaling = {
    "type": "yarn",
    "factor": 4.0,
    "original_max_position_embeddings": 32768,
}
model = AutoModelForCausalLM.from_pretrained(
    repo, config=config, dtype=torch.bfloat16
).cuda().eval()

We do not recommend pushing beyond 64 k tokens: retrieval quality degrades sharply at 128 k context in our benchmarks.

Speculative decoding with Carbon-500M#

Carbon-3B and Carbon-500M share the same tokenizer and DNA template format, so Carbon-500M can be used as a draft model for speculative decoding with Carbon-3B (or Carbon-8B) as the target model, reducing wall-clock generation cost at no quality loss.

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

draft = AutoModelForCausalLM.from_pretrained(
    "HuggingFaceBio/Carbon-500M",
    dtype=torch.bfloat16,
).cuda().eval()
target = model  # Carbon-3B, loaded above

inputs = tok(f"<dna>{dna_prompt}", return_tensors="pt", add_special_tokens=False).to("cuda")
out = target.generate(
    **inputs,
    max_new_tokens=256,
    do_sample=False,
    assistant_model=draft,
)
Conditional generation with metadata#

The model is trained with a mixed-template objective; some examples are prefixed with species-type and/or gene-type metadata tokens. Generation can be conditioned on these by prepending the corresponding tokens:

prompt = "<vertebrate_mammalian><protein_coding_region><dna>ATGCGCTAG..."

The unconditional <dna>SEQUENCE</dna> format remains supported and is the default. See the Carbon technical report for the full list of supported metadata tags.

Base-pair-level generation and scoring#

The fns branch loads custom modeling code for Factorized Nucleotide Supervision (FNS). Carbon still uses its efficient 6-mer tokenizer, but during generation each selected 6-mer is assembled from six per-position nucleotide distributions, giving base-pair-level control over decoded DNA. Use this branch when you need exact base-pair counts, per-position masks, or temperature/top-p behavior applied at the nucleotide level rather than over the 4,096-way 6-mer distribution:

import math
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "HuggingFaceBio/Carbon-3B"
revision = "fns"
device = "cuda"

tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    revision=revision,
    trust_remote_code=True,
    dtype=torch.bfloat16,
).to(device).eval()

context = "ATGCGCTAGCTACGATCGATCGTAGCTAGCTAGCTAGCTACG"
n_bp = 60

inputs = tokenizer(f"<dna>{context}", return_tensors="pt", add_special_tokens=False).to(device)

with torch.no_grad():
    output_ids = model.generate(
        **inputs,
        max_new_tokens=math.ceil(n_bp / tokenizer.k),
        do_sample=False,
        pad_token_id=tokenizer.eos_token_id,
    )

generated_ids = output_ids[0, inputs.input_ids.shape[1]:]
generated_dna = tokenizer.decode(generated_ids, skip_special_tokens=True)[:n_bp]

print(generated_dna)

The same per-base marginals are exposed through score_sequence(), which returns the probability assigned to the observed base at each position. Taking the mean log probability gives a base-pair-level sequence score, where higher values indicate higher model likelihood:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "HuggingFaceBio/Carbon-3B"
revision = "fns"
device = "cuda"

tokenizer = AutoTokenizer.from_pretrained(model_id, revision=revision, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    revision=revision,
    trust_remote_code=True,
    dtype=torch.bfloat16,
).to(device).eval()

reference = "GGGCTATAAAGGCCATCGATCGATCGATCGATCGATCGATCG"
perturbed = "GGGCGCGCGCGGCCATCGATCGATCGATCGATCGATCGATCG"

with torch.no_grad():
    bp_probs, actual_probs = model.score_sequence([reference, perturbed])

scores = [torch.log(p.clamp_min(1e-12)).mean().item() for p in actual_probs]

print(f"reference mean bp logp: {scores[0]:.4f}")
print(f"perturbed mean bp logp: {scores[1]:.4f}")
print(f"reference preferred: {scores[0] > scores[1]}")

Evaluation#

All evaluations are zero-shot and use the public Carbon evaluation pipeline. The suite covers seven tasks across four capability families:

FamilyTaskMetric
GenerativeSequence recovery (eukaryote, bacteria, others splits)Per-base accuracy on the next 30 bp
Variant-effect prediction (VEP)ClinVar codingAUROC, AUPRC (right-end / next-token scoring)
ClinVar non-codingAUROC, AUPRC
BRCA2AUROC, AUPRC, Spearman ρ (centered 8 kb window, full-LL delta)
TraitGym MendelianAUROC, AUPRC, Spearman ρ
Sequence-level perturbationNucleotide triplet-expansion (insert 10 consecutive CAG triplets into a CDS; model should prefer the natural reference)Pairwise discrimination accuracy
Synonymous codon replacement (replace every codon with the highest-frequency synonym for the target species; model should prefer the natural reference)Pairwise discrimination accuracy
Long-context retrievalGenomic-NIAH (4 task variants Γ— 6 context lengths, up to 786 kbp)gen_exact_match, ll_correct

Below we highlight the three short-context probes for which we report headline numbers in this card. Full results, including all VEP benchmarks and Genomic-NIAH heatmaps, are in the Carbon technical report.

Downstream tasks#
CategoryMetric (%)Carbon 3BGENERator-v2 3BEvo2 7B
GenerativeSequence Recovery eukaryote61.5458.5659.86
Variant effect predictionBRCA284.6381.9383.52
TraitGym Mendelian33.6527.9137.78
ClinVar coding (24 kb)92.8991.5593.33
ClinVar non-coding (24 kb)91.1490.1389.79
PerturbationNucleotide triplet-expansion85.2083.0688.43
Synonymous codon88.8987.0391.59

Carbon-3B is competitive with Evo2-7B while being much faster to run.

Long-context retrieval (Genomic-NIAH)#

Genomic-NIAH is a long context benchmark, inspired from NIAH and RULER benchmarks for English. The model needs to retrieves a random 24 bp VALUE planted in a real-genome haystack at one of five depths, evaluated at six context lengths from 24 kbp to 786 kbp. The benchmark contains 500 examples per (task, context) cell.

Below are the scores on niah:

Context lengthCarbon 3B 32k (native / YaRN 4Γ—)GENERator-v2 3BEvo2-7B
16 k tokens (98 kbp)0.73 / β€”0.740.97
32 k tokens (196 kbp)0.55 / 0.90β€”0.95
64 k tokens (393 kbp)β€” / 0.79β€”0.80

Sample sizes: Carbon & GENERator n=500. Evo2-7B n=150 at 16k, n=100 at 32k, n=100 at 64k due to the slow inference speed.

  • 4Γ— longer effective context than Generator-v2-3B. Generator-v2-3B caps at 16 k tokens (β‰ˆ 98 kbp). Carbon-3B has a native context of 32 k tokens (β‰ˆ 197 kbp) and extends to 65,536 tokens (β‰ˆ 393 kbp) at inference time with YaRN. It matches Generator-v2-3B on niah at 98 kbp.
  • Matches Evo2-7B (1 M context) on niah at 393 kbp (64 k tokens) under YaRN, despite being substantially smaller.
  • YaRN helps at the native-context boundary. At 32 k tokens (β‰ˆ 197 kbp), retrieval quality near the model's native maximum begins to degrade; applying YaRN at inference time smooths the boundary and recovers most of the lost accuracy.
Inference efficiency#

Carbon models run natively in vLLM and thus generate DNA sequences over 150 times faster than the Evo2 family of models. Below we show the results of a throughput benchmark, where 1080 base-pairs are used for prefill and decode with increasing number of input sequences. All models except Evo2 40B were run on a H100 GPU, with the batch size of the Evo2 models tuned to the largest possible size that fits in VRAM.

Image: image

Training#

Model#
  • Architecture: decoder-only Transformer (Llama-style), 30 layers, hidden 3072, FFN 8448, 32 attention heads with GQA (4 KV groups), SwiGLU, RMSNorm.
  • Tokenizer: Carbon 6-mer hybrid (vocab β‰ˆ 156 k including DNA tags and metadata tokens and BPE tokens for future English & DNA continual pretraining).
  • Precision: bfloat16
  • Positional embedding: RoPE, base ΞΈ = 5 Γ— 10^6, max position 32,768.
Pre-training#

Carbon-3B is pre-trained for 1T 6-mer tokens (β‰ˆ 6T DNA base pairs) at sequence length 8 192, with a global batch size of 256 sequences (β‰ˆ 2 M tokens / step). The optimizer is AdamW throughout.

The data mixture during the stable phases of pre-training (Phase 1 and the stable portion of Phase 2) is the one documented on the HuggingFaceBio/carbon-pretraining-corpus dataset card: β‰ˆ 70 % Generator-style eukaryotic genomic DNA, with mRNA, splice-enriched mRNA, and GTDB bacterial genomes alongside metadata-conditioned templates.

The training uses a staged objective and learning-rate schedule:

  • Phase 1 β€” Cross-Entropy (0 β†’ 100B tokens). WSD learning-rate schedule with peak LR = 3e-4 and a 2,000-step linear warmup, then stable at peak through the end of Phase 1.
  • Phase 2 β€” Factorised Nucleotide Supervision (100B β†’ 1T tokens). Switch to the hybrid FNS loss, lower the peak LR to 2e-5, and continue with a WSD schedule whose decay phase covers the last 20% of Phase-2 steps. During the decay phase, we rebalance the data mixture to upsample mRNA and prokaryotic data β€” we found that mRNA in particular meaningfully helps downstream tasks β€” using the following ratios: 50% Generator-style eukaryotic genes Β· 25% mature mRNA Β· 10% splice-enriched mRNA Β· 15% GTDB bacterial genomes.

See the Carbon technical report for the full pre-training recipe.

Long-context training#

After pre-training, the model undergoes continued training for 50B additional tokens at sequence length 32,768, with the rotary base shifted from 5 Γ— 10^5 to 5 Γ— 10^6. The long-context training mixture is:

ComponentFraction
Gener-style annotated genes (metadata-conditioned)35.0 %
Concatenated annotated genes (long-context-data)13.8 %
mRNA transcripts25.0 %
Splice-enriched mRNA10.0 %
GTDB bacterial genomes15.0 %
Promoter sequences1.2 %

The optimizer is AdamW (β₁ = 0.9, Ξ²β‚‚ = 0.95, Ξ΅ = 1e-8, weight decay = 0.1, gradient clipping = 1.0), with a WSD learning-rate schedule: 2,000 steps linear warmup from 0 to 3e-5, stable phase, then 4,000-step linear decay to 3e-6. Global batch size: 64 sequences Γ— 32,768 tokens.

Software & hardware#

Limitations#

  • ⚠️ Genetic data is highly sensitive. Depending on how this model is used (local download, inference API/endpoints, third-party inference providers, Spaces demos or others), input and output data may be processed or handled differently by different providers or space owners. Please make sure you understand and agree with how your data is handled before using the model.
  • Primarily eukaryotic training. Carbon-3B is trained mostly on eukaryotic genomic and transcript sequence; the pre-training mixture deliberately includes a smaller prokaryotic component (GTDB bacterial genomes) so that continual pre-training on prokaryotic data remains straightforward. Despite this modest prokaryotic share, we observed consistent gains on prokaryotic sequence recovery throughout training, and Carbon-3B already matches GENERator-v2-prokaryote-3B β€” a model trained specifically on prokaryotes β€” on the prokaryote sequence-recovery split. We expect that a short continued-training phase on prokaryotic data would deliver substantially stronger prokaryote-specific performance.
  • YaRN beyond 64 k tokens degrades. YaRN reliably extends Carbon-3B to 65,536 tokens (β‰ˆ 393 kbp) at inference time with factor=4. Pushing further to 128 k tokens (β‰ˆ 786 kbp) causes retrieval quality to drop sharply in our long-context benchmarks.

License#

Apache 2.0.

Acknowledgements#

Carbon is a joint collaboration between the research teams at Hugging Face, Zhongguancun Academy, and the Telethon Institute of Genetics and Medicine/University of Naples β€œFederico II”.

Image: Hugging Face, Zhongguancun Academy, Telethon Institute of Genetics and Medicine and University of Naples Federico II

Citation#

@article{allal2026carbon,
  title={Carbon: Decoding the Language of Life},
  author={Allal, Loubna Ben and Li, Qiuyi and Fiusco, Maurizio and Tunstall, Lewis and Rasul, Kashif and Beeching, Ed and Aubakirova, Dana and Pati{\~n}o, Carlos and Frere, Thibaud and Lozhkov, Anton and others},
  journal={bioRxiv},
  pages={2026--05},
  year={2026},
  publisher={Cold Spring Harbor Laboratory}
}

Files

18 files Β· 6.91 GBWeights 6.90 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 18 files with their sha256
FileSizesha256
.gitattributes1.86 KB0e68ee2e2dde6c0deec5a29bcf65070e4233fdbaa90ecba67261e16c88cd4353
README.md23.0 KB21957386a93e5b614b6f7d3f8d823e0a834a790fee27b8d0a07eaf24343d5687
added_tokens.json707 Bc0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680
config.json670 B9d80dfa10dc60e1564f425c54dbb423efbdb216a3a7b5802b19dc1af9a331172
dna_config.json160 B5aa3c13df5452264fdc6140b5a4b4f9dc35c1b81bd168bc84223bd610f165a7e
figures/carbon-3b-banner.png1.28 MB50e121a50df40e8d38ae82d72be4b4c3278bf96c2141bf6a1ee0dcd64c917288
figures/inference.png197 KB304525afeace9c89e89f6aeccba1fc8256ab0089a36893640f742a8394ea5da3
figures/pareto.png119 KB4aab9d9b09678b0c53d2627b987013864426303a9139915acdccde7490cbf62e
figures/partner-logos.png196 KBb68a98c4828da90eaaef533d3699ff7867193aff212a88e90414a06953409ef6
generation_config.json115 B269049836d11c5e25b7f206da818ba5d9a2ba2bda4041fb66bac46a3e36dfbca
model-00001-of-00003.safetensors2.49 GBe497fa3a3b7df30eca9231a3def3fd0742fa2dbaf098043342f3a6cb7f26593c
model-00002-of-00003.safetensors2.47 GBc843313dbf2775fe2d89496c296ad6254437c25713ce913266a6e526949125ea
model-00003-of-00003.safetensors1.94 GB4ab9845411f31996bc54be74d8078ad3e28bb30b95462dde62a78261e1bf067c
model.safetensors.index.json23.5 KBe5dc6b18a9804023e9325eadfd9d462562855933c579028fe4811b5775f76578
special_tokens_map.json616 B6676f091c8bc4d1b50146427cfde92073402866b87b6e39223227931b70083e9
tech-report.pdf4.12 MB7d18d95151c3c12d45090009abe37eae24bbee29b60ad9995216b8d259f8a236
tokenizer.py26.6 KBe84af29f2eb2b64d9faa3643d85b15278698c2c5bdc8f301347b2a82151508b7
tokenizer_config.json5.54 KBf0ebf75e73c89e3131331cdd41e04436e8fc0c3e33d1020e191ad746c07e2479
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
e1b2369c08 pinned now2026-11-15 03:34 UTC18 files Β· 6.91 GB

Use it

$ fw get HuggingFaceBio/Carbon-3B
# manifest sha256 58cd4215259b… · 6.91 GB · 18 files
$ fw verify ./Carbon-3B HuggingFaceBio/Carbon-3B
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/HuggingFaceBio/Carbon-3B.json --dir ./Carbon-3B $ python3 fw.py verify ./Carbon-3B ./HuggingFaceBio__Carbon-3B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceBio/Carbon-3B --revision e1b2369c087f39769a2107704b887a1c8ae1f3b8 --local-dir ./Carbon-3B
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("HuggingFaceBio/Carbon-3B", revision="e1b2369c087f39769a2107704b887a1c8ae1f3b8") model = AutoModelForCausalLM.from_pretrained("HuggingFaceBio/Carbon-3B", revision="e1b2369c087f39769a2107704b887a1c8ae1f3b8", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve HuggingFaceBio/Carbon-3B --revision e1b2369c087f39769a2107704b887a1c8ae1f3b8

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
21957386a93e5b614b6f7d3f8d823e0a834a790fee27b8d0a07eaf24343d5687
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: HuggingFaceBio <huggingface.co/HuggingFaceBio>Newsgroups: alt.freeweights.textSubject: Carbon-3BDate: 2026-11-15Commit: e1b2369Signed: 2DC28CC7B26A283B ✓
Upstream
HuggingFaceBio/Carbon-3B
Pinned commit
e1b2369c087f39769a2107704b887a1c8ae1f3b8
Manifest
Carbon-3B.json Β· .minisig
Manifest sha256
58cd4215259bb84d9e931d8b0888cfc5cd8a8e7d59f56355b82f0edb77bcdc59
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:34 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/HuggingFaceBio/Carbon-3B.json $ curl -O https://freeweights.allternit.com/manifests/HuggingFaceBio/Carbon-3B.json.minisig $ minisign -Vm Carbon-3B.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

1 model in the catalog name this one as their parent.

Quantizations
1
Quantizations 1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download HuggingFaceBio/Carbon-3B
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Carbon-3B.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of Carbon-3B. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B