用途:ESM 提供蛋白质语言模型,用于理解、生成和设计蛋白质,主要围绕 ESM3(生成式)与 ESM C(表示学习)两个模型族。
主要能力:
- 序列生成:用 ESM3 生成具备目标特性的新序列、补全部分序列、生成变体。示例以 '_' 表示掩码位:ESMProtein(sequence="MPRT___KEND"),随后调用 model.generate(protein, GenerationConfig(track="sequence", num_steps=8))。
- 结构预测与反向折叠:以 track="structure" 从序列预测三维坐标并导出 PDB;或以 ESMProtein.from_pdb 读入结构、置 sequence=None 后按 track="sequence" 设计序列。
- 蛋白质嵌入:用 ESM C(如 esmc-300m)经 model.encode 与 model.forward 得到表示,可批处理,用于功能预测、分类、相似度与迁移学习。
- 功能条件生成与标注:通过 FunctionAnnotation(label, start, end) 结合 track="sequence" 生成带指定功能的序列。
- 思维链生成:按 structure、sequence、function 等 track 多步迭代优化设计。
- Forge 批量处理:用 ESM3ForgeInferenceClient 与 async_generate 结合 asyncio.gather 异步批处理。
模型选择:生成侧有 esm3-sm-open-v1(1.4B,开放权重,可本地)、esm3-medium-2024-08(7B,仅 Forge)、esm3-large-2024-03(98B,仅 Forge);嵌入侧有 esmc-300m、esmc-600m、esmc-6b。可按本地实验、生产质量、最高精度或高吞吐场景选择。
安装与使用:uv pip install esm;如需更快推理可再安装 uv pip install flash-attn --no-build-isolation。Forge 客户端包含在 SDK 中,需在 https://forge.evolutionaryscale.ai 获取 token。
适用场景:蛋白质工程、药物发现与科学研究中的设计、变体筛选、结构相关序列优化、功能预测与嵌入聚类分析等。
限制与注意:本地仅 esm3-sm-open-v1 为开放权重,其余模型需经 Forge;生成的序列建议用结构预测验证或湿实验确认;应遵循负责任生物设计框架并考虑生物安全与伦理。价格、速率限制等具体信息暂未提供。