[ PROMPT_NODE_26542 ]
esm-c-api
[ SKILL_DOCUMENTATION ]
# ESM C API 参考
## 概述
ESM C (Cambrian) 是一系列针对表示学习和高效嵌入生成而优化的蛋白质语言模型。作为 ESM2 的直接替代品,ESM C 在所有模型尺寸上都提供了显著的速度和质量提升。
## 模型架构
**ESM C 系列模型:**
| 模型 ID | 参数量 | 层数 | 适用场景 |
|----------|-----------|--------|----------|
| `esmc-300m` | 300M | 30 | 快速推理,轻量级应用 |
| `esmc-600m` | 600M | 36 | 性能与质量的平衡 |
| `esmc-6b` | 6B | 80 | 最高表示质量 |
**关键特性:**
- 推理速度比 ESM2 快 3 倍
- 改进了困惑度和嵌入质量
- 适用于生产部署的高效架构
- 兼容 ESM2 工作流 (直接替换)
- 支持长序列 (高效处理多达 1024 个残基)
**相比 ESM2 的架构改进:**
- 优化的注意力机制
- 更好的 Token 表示
- 增强的训练流程
- 降低了内存占用
## 核心 API 组件
### ESMC 类
ESM C 模型的主要接口。
**模型加载:**
python
from esm.models.esmc import ESMC
from esm.sdk.api import ESMProtein
# 自动设备分配加载模型
model = ESMC.from_pretrained("esmc-300m").to("cuda")
# 或显式指定设备
model = ESMC.from_pretrained("esmc-600m").to("cpu")
# 获取最高质量
model = ESMC.from_pretrained("esmc-6b").to("cuda")
**模型选择标准:**
- **esmc-300m**: 开发、实时应用、大量序列的批处理
- **esmc-600m**: 生产部署、质量与速度的良好平衡
- **esmc-6b**: 研究、下游任务的最高准确度
### 基本嵌入生成
**单序列:**
python
from esm.models.esmc import ESMC
from esm.sdk.api import ESMProtein
# 加载模型
model = ESMC.from_pretrained("esmc-600m").to("cuda")
# 创建蛋白质
protein = ESMProtein(sequence="MPRTKEINDAGLIVHSPQWFYK")
# 编码为张量
protein_tensor = model.encode(protein)
# 生成嵌入
embeddings = model.forward(protein_tensor)
# 获取 Logits (位置预测)
logits = model.logits(embeddings)
print(f"Embedding shape: {embeddings.shape}")
print(f"Logits shape: {logits.shape}")
**输出形状:**
对于长度为 L 的序列:
- `embeddings.shape`: `(1, L, hidden_dim)`,其中 hidden_dim 取决于模型
- esmc-300m: hidden_dim = 960
- esmc-600m: hidden_dim = 1152
- e