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}
}

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成热门AI工具AI图像AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多