docs/source/en/model_doc/esmc.md
This model was contributed to Hugging Face Transformers on 2026-08-19.
ESMC (ESM Cambrian) is a family of protein language models released by BioHub. It is a bidirectional Transformer encoder trained with a masked-language-modelling objective over amino-acid sequences. Like ESM-2, ESMC produces per-residue representations that are useful for downstream protein modelling tasks.
ESMC is suitable for fine-tuning on protein classification or token classification tasks. It is also used as the backbone of ESMFold2, where it generates representations that are used as input to the folding head.
Pre-trained checkpoints are available on the Hugging Face Hub:
ESMC is registered with the auto classes (AutoModel, AutoModelForMaskedLM,
AutoModelForSequenceClassification, AutoModelForTokenClassification).
import torch
from transformers import pipeline
extractor = pipeline(
task="feature-extraction",
model="biohub/ESMC-300M-hf",
)
# Per-residue representations of shape (batch, sequence_length, hidden_size).
representations = extractor("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ", return_tensors="pt")
import torch
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("biohub/ESMC-300M-hf")
model = AutoModel.from_pretrained("biohub/ESMC-300M-hf")
inputs = tokenizer("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ", return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
# Per-residue representations of shape (batch, sequence_length, hidden_size).
representations = outputs.last_hidden_state
[[autodoc]] EsmcConfig
[[autodoc]] EsmcTokenizer
[[autodoc]] EsmcModel - forward
[[autodoc]] EsmcForMaskedLM - forward
[[autodoc]] EsmcForSequenceClassification - forward
[[autodoc]] EsmcForTokenClassification - forward