项目名:evolutionaryscale/esm-蛋白质相关的模型库
项目简介
这个项目主要围绕着ESM和ESMC模型展开。ESMC是一个与ESM3旗舰生成模型并行的模型家族,专注于创建蛋白质潜在生物学的表征。ESM3则是一个生物学的前沿生成模型,能够联合推理蛋白质的序列、结构和功能这三个基本生物学特性。
安装与使用
- ESMC的安装与使用 -若使用300M和600M的ESMC,可以通过pip安装esm库来开始,模型权重存储在HuggingFace hub上。例如:
from esm.models.esmc import ESMC
from esm.sdk.api import ESMProtein, LogitsConfig
protein = ESMProtein(sequence="AAAAA")
client = ESMC.from_pretrained("esmc_300m").to("cuda") # or "cpu"
protein_tensor = client.encode(protein)
logits_output = client.logits(protein_tensor, LogitsConfig(sequence = True, return_embeddings = True))
print(logits_output.logits, logits_output.embeddings)
-若使用6B的ESMC,可通过Forge API(需要申请访问并获取令牌):
from esm.sdk.forge import ESM3ForgeInferenceClient
from esm.sdk.api import ESMProtein, LogitsConfig
forge_client = ESM3ForgeInferenceClient(model="esmc-6b-2024-12", url="https://forge.evolutionaryscale.ai", token="<your forgetoken>")
protein_tensor = forge_client.encode(protein)
logits_output = forge_client.logits(protein_tensor, LogitsConfig(sequence = True, return_embeddings = True))
print(logits_output.logits, logits_output.embeddings)
-还可通过Amazon SageMaker使用ESMC6B(需要AWS管理访问权限),按照一系列步骤部署模型后创建客户端使用,例如:
from esm.sdk.sagemaker import ESM3SageMakerClient
from esm.sdk.api import ESMProtein, LogitsConfig
sagemaker_client = ESM3SageMakerClient(
# E.g. "Endpoint-ESMC-6B-1"
endpoint_name = SAGE_ENDPOINT_NAME,
# E.g. "esmc-6b-2024-12". Same model names as in Forge.
model = MODEL_NAME,
)
protein = ESMProtein(sequence="AAAAA")
protein_tensor = sagemaker_client.encode(protein)
logits_output = sagemaker_client.logits(protein_tensor, LogitsConfig(sequence = True, return_embeddings = True))
print(logits_output.logits, logits_output.embeddings)
- ESM3的使用 -对于ESM3-open-small,可以通过pip安装esm,权重存储在HuggingFace/EvolutionaryScale/esm3,用户需要接受非商业许可才能下载权重。例如:
from huggingface_hub import login
from esm.models.esm3 import ESM3
from esm.sdk.api import ESM3InferenceClient, ESMProtein, GenerationConfig
login()
model: ESM3InferenceClient = ESM3.from_pretrained("esm3-open").to("cuda") # or "cpu"
# 之后进行蛋白质生成等操作
-还可以申请beta访问EvolutionaryScale Forge上更大、更高能力的ESM3模型家族。
项目总结
这个项目提供了多种蛋白质相关模型的使用方式,无论是ESMC还是ESM3都有各自的应用场景和优势。如果你对这个项目有任何想法或者疑问,欢迎在下方留言一起讨论。