❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦
🧫 「生物博士的噩梦终结者!凌晨3点还在比对百万碱基?现在AI一键生成基因编辑器!」
大家好,我是蚝油菜花。如果你经历过——
- 🔬 为定位一个SNP位点,手动筛查十万级基因序列
- 🧬 设计合成质粒时,反复试错启动子组合
- 📊 预测BRCA1突变效应,结果被Nature审稿人质疑方法…
那么今天介绍的 Evo 2 将改变你的科研人生!这个由斯坦福×英伟达联合研发的DNA大模型,能像读小说一样解析百万碱基序列,自动生成高活性基因编辑器,甚至预测变异对蛋白结构的影响。合成生物实验室已用它缩短70%实验周期——是时候让AI接管移液枪了!
🚀 快速阅读
Evo 2 是一个突破性的 DNA 语言模型,专注于基因组建模与设计。
- 长上下文建模:支持高达百万碱基对的 DNA 序列处理,精度极高。
- 生成与预测能力:具备 DNA 序列生成、零样本变异预测等功能,适用于合成生物学与疾病研究。
Evo 2 是什么
Evo 2 是由 Acr 研究所、英伟达和斯坦福大学合作开发的一款先进 DNA 语言模型。该模型基于 StripedHyena 2 架构,能够以单核苷酸分辨率处理长达 100 万个碱基对的基因组序列。Evo 2 使用 OpenGenome2 数据集进行自回归预训练,该数据集包含来自生命所有领域的 8.8 万亿个标记,覆盖细菌、古菌和真核生物等多个领域。
Evo 2 不仅可以用于基因组建模,还能够生成新的 DNA 序列,为合成生物学和基因编辑提供支持。此外,它还可以提取嵌入向量,用于下游分析,如基因功能预测和变异效应评估。Evo 2 的推出标志着基因组学研究迈入了一个新时代,为生物医学和合成生物学等领域带来了巨大的潜力。
Evo 2 的主要功能
- 长上下文建模:处理长达 100 万个碱基对的 DNA 序列,支持高精度的基因组建模。
- DNA 序列生成:根据给定提示生成新的 DNA 序列,适用于合成生物学和基因编辑。
- 嵌入向量提取:提取 DNA 序列的嵌入向量,用于下游分析,如基因功能预测和变异效应分析。
- 零样本预测:支持零样本学习,例如预测基因变异对功能的影响(如 BRCA1 基因变异效应预测)。
- 序列评分:计算 DNA 序列的似然分数,评估序列的稳定性和功能潜力。
Evo 2 的技术原理
- 大规模数据训练:基于超过 9.3 万亿个核苷酸的数据进行训练,涵盖多个生命领域的基因组信息。
- 独特的 AI 架构:采用 StripedHyena 2 架构,处理长基因序列并理解基因组中相距较远部分之间的关系。
- 深度学习与生成生物学:通过深度学习技术理解核酸序列,预测基因突变影响并生成新基因组。
- 强大的计算支持:利用英伟达 DGX Cloud AI 平台和超过 2000 个 H100 GPU,实现高效的模型训练。
如何运行 Evo 2
1. 安装环境
Evo 2 基于 Python 3.11 开发,部分层使用 NVIDIA Transformer Engine FP8 技术,需要 H100 或其他具有计算能力 ≥8.9 的 GPU。推荐使用 Conda 创建新环境并安装依赖:
git clone --recurse-submodules git@github.com:ArcInstitute/evo2.git
cd evo2
pip install .
2. 测试安装
确保安装成功,可以通过以下命令运行测试脚本:
python ./test/test_evo2.py --model_name evo2_7b
3. 使用示例
DNA 序列评分
以下代码展示如何计算 DNA 序列的似然分数:
import torch
from evo2 import Evo2
evo2_model = Evo2('evo2_7b')
sequence = 'ACGT'
input_ids = torch.tensor(
evo2_model.tokenizer.tokenize(sequence),
dtype=torch.int,
).unsqueeze(0).to('cuda:0')
outputs, _ = evo2_model(input_ids)
logits = outputs[0]
print('Logits: ', logits)
print('Shape (batch, length, vocab): ', logits.shape)
DNA 序列生成
以下代码展示如何生成新的 DNA 序列:
from evo2 import Evo2
evo2_model = Evo2('evo2_7b')
output = evo2_model.generate(prompt_seqs=["ACGT"], n_tokens=400, temperature=1.0, top_k=4)
print(output.sequences[0])
资源
- GitHub 仓库:https://github.com/ArcInstitute/evo2
- HuggingFace 模型库:https://huggingface.co/arcinstitute
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦