| name | fair-esm2 |
| description | Embed proteins with Meta AI's ESM-2 (`fair-esm` package). Use this skill when: (1) Extracting per-residue or per-sequence embeddings for downstream ML, (2) Masked-LM likelihood / mutation effect scoring, (3) Contact prediction from a sequence.
|
| license | Apache-2.0 |
| origin | openai4s |
| category | biomodels |
| requirements | ["gpu"] |
| capabilities | {"network":{"mode":"raw_required","domains":[]}} |
| metadata | {"display-name":"ESM-2","third_party":[{"kind":"weights","name":"ESM-2","provider":"Meta AI","license":"MIT","terms_url":"https://github.com/facebookresearch/esm/blob/main/LICENSE"}]} |
fair-esm2 — ESM-2 (Meta AI)
ESM-2 code and weights are MIT (Meta AI, github.com/facebookresearch/esm).
Package disambiguation. pip install fair-esm gives you import esm
with esm.pretrained.* (ESM-1/2). Biohub's github.com/Biohub/esm fork
(MIT) gives you from esm.models.esmfold2 import ESMFold2InputBuilder —
see the esmfold2 skill. Both share the esm namespace but are
different libraries. This skill covers fair-esm (the Meta package).
Prerequisites
| Requirement | Minimum | Recommended |
|---|
| Python | 3.8+ | 3.11 |
| CUDA | 11.7+ | 12.x |
| GPU VRAM | 8 GB (8M), 16 GB (650M) | 24 GB+ (650M / 3B) |
How to run
Embeddings
import torch, esm
model, alphabet = esm.pretrained.esm2_t33_650M_UR50D()
model = model.eval().cuda()
bc = alphabet.get_batch_converter()
_, _, toks = bc([("ubq", "MQIFVKTLTGKTITLEVEPSDTIENVK")])
with torch.no_grad():
out = model(toks.cuda(), repr_layers=[33])
emb = out["representations"][33]
seq_emb = emb[0, 1:-1].mean(0)
Masked-LM scoring
with torch.no_grad():
out = model(toks.cuda(), repr_layers=[33])
logits = out["logits"][0, 1:-1]