evo

evo

实现跨尺度DNA序列建模与设计的开源工具

Evo是一个开源的生物基础模型,专注于DNA序列的长上下文建模和设计。基于StripedHyena架构,Evo实现了单核苷酸级别的序列建模,具有近乎线性的计算和内存扩展性。该模型拥有70亿参数,在OpenGenome数据集上训练,包含约3000亿个原核全基因组标记。Evo提供8K和131K上下文长度的预训练模型,适用于从分子到基因组尺度的序列分析和生成任务。研究人员可通过HuggingFace和Together API等多种方式使用Evo,为DNA序列研究提供了强大而灵活的工具。

Evo生物基础模型DNA建模基因组尺度序列设计Github开源项目

Evo: 从分子到基因组尺度的DNA基础建模

Evo

Evo是一个能够进行长上下文建模和设计的生物学基础模型。 Evo使用StripedHyena架构,能够以单核苷酸、字节级分辨率对序列进行建模,计算和内存相对于上下文长度近乎线性扩展。 Evo拥有70亿参数,在OpenGenome上训练,这是一个含有约3000亿个标记的原核生物全基因组数据集。

我们在论文"用Evo从分子到基因组尺度进行序列建模和设计"配套博客文章中描述了Evo。

我们提供以下模型检查点:

检查点名称描述
evo-1-8k-base使用8,192上下文预训练的模型。我们将此模型用作分子尺度微调任务的基础模型。
evo-1-131k-base使用evo-1-8k-base作为基础模型,用131,072上下文预训练的模型。我们使用此模型在基因组尺度推理和生成序列。

新闻

我们发现并修复了一个与某些投影错误排列相关的问题,该问题影响生成质量。要在HuggingFace上使用新的模型修订版,请按如下方式加载:

config = AutoConfig.from_pretrained(model_name, trust_remote_code=True, revision="1.1_fix") model = AutoModelForCausalLM.from_pretrained( model_name, config=config, trust_remote_code=True, revision="1.1_fix" )

目录

设置

要求

Evo基于StripedHyena

Evo使用FlashAttention-2,可能不适用于所有GPU架构。 请查阅FlashAttention GitHub仓库获取当前支持的GPU列表。

确保在您的系统上安装正确的PyTorch版本

安装

您可以使用pip安装Evo

pip install evo-model

或直接从GitHub源代码安装

git clone https://github.com/evo-design/evo.git cd evo/ pip install .

我们建议您先安装PyTorch库,然后再安装所有其他依赖项(由于flash-attn库的依赖问题;参见例如这个问题)。

我们的一个示例脚本,演示如何从用Evo生成序列到折叠蛋白质(scripts/generation_to_folding.py),还需要安装prodigal。我们为此创建了一个environment.yml文件:

conda env create -f environment.yml conda activate evo-design

使用

以下是如何下载Evo并通过Python API在本地使用它的示例。

from evo import Evo import torch device = 'cuda:0' evo_model = Evo('evo-1-131k-base') model, tokenizer = evo_model.model, evo_model.tokenizer model.to(device) model.eval() sequence = 'ACGT' input_ids = torch.tensor( tokenizer.tokenize(sequence), dtype=torch.int, ).to(device).unsqueeze(0) with torch.no_grad(): logits, _ = model(input_ids) # (batch, length, vocab) print('Logits: ', logits) print('Shape (batch, length, vocab): ', logits.shape)

批量推理的示例可以在scripts/example_inference.py中找到。

我们提供了一个示例脚本,演示如何提示模型并根据提示采样一组序列。

python -m scripts.generate \ --model-name 'evo-1-131k-base' \ --prompt ACGT \ --n-samples 10 \ --n-tokens 100 \ --temperature 1. \ --top-k 4 \ --device cuda:0

我们还提供了一个示例脚本,用于使用模型对一组序列的对数似然进行评分。

python -m scripts.score \ --input-fasta examples/example_seqs.fasta \ --output-tsv scores.tsv \ --model-name 'evo-1-131k-base' \ --device cuda:0

HuggingFace

Evo已集成到HuggingFace

from transformers import AutoConfig, AutoModelForCausalLM model_name = 'togethercomputer/evo-1-8k-base' model_config = AutoConfig.from_pretrained(model_name, trust_remote_code=True, revision="1.1_fix") model_config.use_cache = True model = AutoModelForCausalLM.from_pretrained( model_name, config=model_config, trust_remote_code=True, revision="1.1_fix" )

Together API

Evo可通过Together AI的网页界面使用,您可以在类似聊天的界面中生成DNA序列。

对于更详细或批量工作流程,您可以使用以下简单示例调用Together API。

import openai import os # 在此填写您的API信息。 client = openai.OpenAI( api_key=TOGETHER_API_KEY, base_url='https://api.together.xyz', ) chat_completion = client.chat.completions.create( messages=[ { "role": "system", "content": "" }, { "role": "user", "content": "ACGT", # 用序列提示模型。 } ], model="togethercomputer/evo-1-131k-base", max_tokens=128, # 采样一些新标记。 logprobs=True ) print( chat_completion.choices[0].logprobs.token_logprobs, chat_completion.choices[0].message.content )

引用

引用Evo时,请引用以下预印本。

@article {nguyen2024sequence,
    author = {Eric Nguyen and Michael Poli and Matthew G Durrant and Armin W Thomas and Brian Kang and Jeremy Sullivan and Madelena Y Ng and Ashley Lewis and Aman Patel and Aaron Lou and Stefano Ermon and Stephen A Baccus and Tina Hernandez-Boussard and Christopher Ré and Patrick D Hsu and Brian L Hie},
    title = {Sequence modeling and design from molecular to genome scale with Evo},
    year = {2024},
    doi = {10.1101/2024.02.27.582234},
    publisher = {Cold Spring Harbor Laboratory},
    URL = {https://www.biorxiv.org/content/early/2024/02/27/2024.02.27.582234},
    journal = {bioRxiv}
}

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多