在 2025 年这个时间点,你要是还觉得“基因组语言模型”只是生物信息学里一个赶时髦的名词,那就错过了一个非常关键的变化。斯坦福大学等机构把这类模型用在了噬菌体设计上,尝试生成自然界里不存在的新型噬菌体。我第一次看到这个新闻时的反应不是兴奋,而是一种“终于来了”的感觉。过去我们谈 AI 设计蛋白质,谈 AlphaFold 预测结构,谈论的是“看懂”生物分子;这一次,模型开始直接“写”出完整的病毒基因组序列,去探索自然进化没有走过的路。
这件事真正值得关注的,不是“AI 又赢了一次”,而是它把生物学研究从“读取自然”推进到了“编写自然”。当然,这种说法听起来有点宏大,落地到实验室里,它其实是一套非常具体的工作流:用海量基因组序列训练语言模型,让模型学会 DNA 序列的上下文规律,再生成新的序列,最后放进湿实验里去验证。整个过程充满工程细节,也充满边界。这篇文章想把这套东西一层层拆开,讲清楚它到底做了什么、为什么能做成、以及作为普通开发者或研究者,你可以怎么理解甚至参与进去。
1. 你以为这是 AI 设计蛋白质?其实是“能读懂基因组的语言模型”
1.1 它做的事,不是预测结构,而是生成序列
先说一个最常见的误解。很多人听到“AI 设计噬菌体”,第一反应是 AlphaFold 那种输入氨基酸序列、输出三维结构的模型。不是一回事。
AlphaFold 解决的是“结构预测”问题,它的输出是坐标,是蛋白质折叠成什么样。而基因组语言模型做的事情更接近“文本生成”:给模型一段 DNA 序列上下文,让模型预测下一个碱基或下一个片段是什么,或者直接生成一整段在自然界中未见过的序列。它不直接告诉你这个序列会折叠成什么结构,也不直接告诉你这个噬菌体感染哪种细菌,它只是在序列层面生成“看起来合理”的新组合。
但这恰恰是价值所在。过去我们想要设计一个噬菌体,通常是在已知噬菌体基础上做点突变、删掉某个基因、替换某个启动子。这种方法是“打补丁”,是在自然已经给定的骨架上做局部修改。而基因组语言模型的思路完全不同,它把噬菌体基因组当作一种语言来学习,学完之后可以写出新的“句子”,也就是新的基因组序列。
所以,这篇研究的关键词不是“结构预测”,而是“序列生成”。它没有替代 AlphaFold,它处在完全不同的一层。
1.2 为什么 DNA 序列可以被当作语言
要让语言模型学会写 DNA,首先要回答一个问题:DNA 序列和自然语言到底有什么共同点?
语言不是随机排列的字词,它有语法,有上下文,有长期依赖关系。一个句子里某个词的选择,往往受到前面几十个词甚至整段话的影响。DNA 序列也类似。基因组的编码区、非编码区、启动子、终止子、调控元件之间都有复杂的上下文关系。某个基因的出现位置、密码子的偏好、序列内部的重复结构,都不是随机的,而是长期进化的结果。
语言模型最擅长的,恰恰是捕捉这种上下文依赖。Transformer 架构里的注意力机制,可以让模型在长序列里找到“哪些位置之间有依赖关系”。把人类、细菌、病毒的大量基因组序列切成片段喂给模型,模型就会逐渐学到:什么样的序列组合在进化中是常见的,什么样的组合是反自然规律的。训练完成后,模型就不再只是记住已有的序列,而是可以在序列空间里做插值、外推和组合。
这种思路不是第一次出现。DNABERT、Nucleotide Transformer、Evo 这些模型都已经证明了“基因组预训练”的可行性。斯坦福这次的工作更像是一个集成点:把基因组语言模型、序列生成和噬菌体功能验证串在了一起。
1.3 生成不等于理解,更不等于安全
这里必须清醒一点。语言模型“写出”一段序列,不等于它理解这段序列的全部生物学意义。模型学到的是统计规律,是序列在数据分布上的合理性。这个合理性跟真实功能之间还有很大一段距离。一段序列可能看起来非常“像天然的”,但放到细胞里不一定能正确表达,不一定能组装成有感染能力的病毒颗粒。
所以在实际项目里,模型生成序列只是第一步,后面还要经过大量的生物信息学过滤、结构分析、功能注释和湿实验验证。这不是模型不够强,而是生物学本身太复杂。哪怕模型生成 1000 个候选序列,真正能进入合成和功能测试的,可能只有几十个,最终能形成有活性的噬菌体的,可能只有个位数。
这种“高候选、低通过率”的模式,正是生成式 AI 在科学研究中落地时的典型形态。不要期待一步到位。
2. “自然进化之外的生物设计”到底意味着什么
2.1 自然进化是一条被约束的路径
一个关键问题:为什么我们需要“自然进化之外”的设计?自然进化不是已经产生了无数种噬菌体吗?
自然进化很强大,但它不是全能的。它依赖随机变异和自然选择,只能沿着当前适应度地形一步步往上爬。很多时候,进化只能给出“足够好”的方案,而不是“最优”或“全新”的方案。加上历史路径依赖,很多看似可能的序列组合在进化过程中根本没有被探索过。自然界的噬菌体种类虽然多,但相对于整个序列空间来说,只是极小极小的一小撮。
再者,自然进化的时间尺度太长。你想要一个具有特定功能的噬菌体,不能指望自然进化在短期内给你变出来。人类的科研和产业需求,希望在可接受的时间范围内拿到设计好的生物部件。这就需要一个比进化更快、更可控的设计方法。
基因组语言模型提供了这种可能性。它学会了进化的“语法”,却不受进化路径的约束。它可以组合出自然界中不存在的序列,它不需要经过漫长的自然选择压力,它把搜索过程从“等待突变”变成了“直接采样”。这是“自然进化之外”的第一层含义。
2.2 设计噬菌体不是制造威胁,而是打开医疗和工业空间
说到设计噬菌体,有人会本能地联想到生物安全。这里必须明确一个边界:新型噬菌体的价值,主要在于安全和建设性的方向。
噬菌体本质上是感染细菌的病毒,不是感染人类的病毒。它们的天然宿主是细菌。正因为这一点,噬菌体成了抗菌研究中的重要工具。耐药菌问题越来越严重,传统抗生素开发速度跟不上细菌变异速度,噬菌体疗法重新受到关注。通过基因组语言模型设计噬菌体,可以用来更高效地寻找能够裂解特定耐药菌的候选噬菌体,也可以用来设计更安全的基因回路载体,或者用来研究噬菌体与细菌之间的共进化机制。
换句话说,这类研究的目标不是制造威胁,而是增加人类可控的生物工具。在科研合规框架内,这类工作是受严格监管和伦理审查的。任何涉及病原体操作的研究,都要遵守生物安全法规。普通开发者和科研人员在接触这类技术时,更要明确边界:设计序列用于合规的学术研究,和制造具有潜在风险的生物实体,完全是两回事。
2.3 从“描述自然”到“撰写自然”
如果从更大的视角看,基因组语言模型带来的核心变化是研究范式的改变。
传统分子生物学是描述性的:我们测序,注释,比对,找到保守区域,推测功能。整个过程是“自然已经把答案写好了,我们去读”。基因组语言模型则打开了另一条路:我们可以写出新的答案,再测试它是否合理。生物学家不再只是一个读者,而是变成一个作者。
用写文章来类比会更清楚。传统方法像是你有一本优秀小说,你想写一个类似风格的新章节。你只能通过替换人物名字、调整对话顺序来制造变化。而语言模型是读了几十万本小说之后,你让它直接写一个新故事。它可能写出一个情节不完美的初稿,但它的创造力空间比前者大得多。
这个转变,就是“自然进化之外的生物设计”的实质。
3. 为什么斯坦福等机构能做成这件事:一张技术路线图
3.1 第一块拼图:基因组数据成为“语料”
基因组语言模型的起点不是模型,而是数据。
训练一个能生成噬菌体序列的语言模型,首先得给它海量的基因组序列。噬菌体基因组相对较小,通常只有几千到几十万碱基,这使得它成为基因组语言模型很合适的试验场。公开数据库里已经有大量噬菌体和病毒基因组序列,这些序列就是模型的训练语料。
这里有一个关键认知:数据不是简单的“越多越好”,而是需要质量筛选。基因组序列里可能包含注释错误、污染序列、不完整序列。如果模型学到太多错误模式,生成结果就会不靠谱。在实际研究中,通常要经过质量过滤、去冗余、序列比对确认,才能把数据放进训练流程。
3.2 第二块拼图:模型架构要适配基因组
语言模型架构本身不是全新发明,但用在基因组上需要一些适配。
DNA 序列由 A、T、C、G 四种碱基组成,没有天然的词边界。自然语言里有分词器(tokenizer)把句子拆成词,DNA 序列怎么切?常见做法是 k-mer 切分,比如把序列切成等长的 3-mer、6-mer,或者使用字节对编码(BPE)算法来学习适合基因组的“子词”单位。不同的 tokenizer 会直接影响模型学到的上下文长度和生成效果。
另一个重要参数是上下文长度。语言模型只能看到有限长度的上下文,DNA 模型也一样。如果上下文长度是几千碱基,模型可以学习局部的基因结构和启动子特征;如果上下文长度拉长到几万碱基,模型才有可能学到整个噬菌体基因组的组织方式。上下文越长,计算成本越高,但生成序列的全局一致性也会越好。
所以,不要指望随便拿一个 NLP 模型不经过适配就能生成完整的噬菌体基因组。tokenizer、上下文长度、预训练语料,每一个细节都影响结果。
3.3 第三块拼图:生成-筛选-验证的闭环
模型能生成序列,只是一个开始。真正的工程难点在后面的筛选和验证。
实际流程一般长这样:
- 模型生成大量候选噬菌体基因组序列。
- 用计算工具过滤掉明显不合理的序列,比如含有提前终止密码子的关键基因、缺失必要结构域、序列组成异常等。
- 对剩余候选做功能注释,看它是否保留了噬菌体感染、复制、组装所需的核心模块。
- 计算这些序列与已知噬菌体的进化距离,挑选既新颖又有一定合理性的序列。
- 把最终候选序列送到实验室合成,构建完整噬菌体基因组,再转入宿主细菌中测试是否能形成有活性的噬菌体颗粒。
这五个步骤没有哪一步可以省略。模型生成只是打开了候选空间,真正决定研究成果的,是筛选标准的合理性,以及湿实验验证的执行质量。这也是为什么这次研究的意义不在于“写代码”,而在于“跨学科闭环”。
4. 如果你想复现或参与:一套从零开始的工作流参考
4.1 先跑通开源模型,再谈训练新模型
如果你是做 NLP 或者机器学习的开发者,想进入这个方向,最稳妥的路径不是一开始就训练一个全新的基因组语言模型,而是先跑通已有的开源模型。
常见的选择包括:
- DNABERT:在人类基因组上预训练的 Transformer 模型,适合做启动子、剪接位点等序列分类任务。
- Nucleotide Transformer:在多种物种基因组上预训练,提供不同参数规模。
- Evo:基于长上下文架构的基因组大模型,在 DNA 序列生成和功能预测上有较强表现,也可以处理一定长度的基因组片段。
在动手之前,先确认环境:Python 版本、PyTorch/CUDA 版本、显存大小。基因组语言模型虽然不都在动辄几百亿参数级别,但较大的模型也需要多卡 GPU。如果硬件有限,可以先选择小规模模型,用小数据集做微调和生成,先把整个流程跑通。
4.2 数据准备:这一步的质量决定了训练质量
准备数据时,建议从公开数据库下载已验证的噬菌体/病毒基因组序列,格式通常是 FASTA。接着做以下几件事:
- 去除冗余序列,用 CD-HIT 或 MMseqs2 按序列相似度聚类。
- 过滤长度过短或包含大量 N 碱基的序列。
- 做基本注释,确认序列里包含哪些已知功能基因。
- 划分训练集、验证集和测试集,避免训练数据泄漏。
这里最容易犯的错误是直接拿原始 FASTA 文件开始训练。基因组数据库里有很多片段化和注释噪音序列,不清理会让模型学会一些并不真实存在的模式。宁可少用数据,也要保证数据质量。
4.3 模型微调与生成:关键参数不要拍脑袋
在已有预训练模型基础上做微调和生成时,有几个参数需要特别留意。
- tokenizer:确认模型内置的 tokenizer 是否适合你要处理的序列。如果用 BPE,需要重新训练 tokenizer;如果用 k-mer,要检查 k 的取值。不同 k 会影响序列片段的语义粒度。
- 上下文长度:生成时设置的上下文长度不能超过模型训练时的最大长度。如果要生成长片段,可能需要使用窗口滑动或分块生成后拼接。
- 采样温度:温度过高,生成序列会变得混乱;温度过低,容易重复已知序列。在噬菌体生成场景里,通常需要做多次采样,再用筛选脚本过滤,而不是追求单次生成完美。
- 批量生成数量:建议先设置较小的批量,比如 100 条候选序列,跑通整个生成和筛选流程后,再扩大数量。
在生成之后,一定要做基础过滤。比如检查序列是否合法(只包含 A/T/C/G)、有没有非预期终止密码子、每个基因编码框是否完整。不要直接拿模型原始输出去做湿实验,那是灾难。
4.4 湿实验验证:没有生物安全合规,一切归零
如果你的目标不只是做计算分析,而是想验证生成序列是否有功能,那就必须进入湿实验环节。这个过程一般包括:
- 序列合成:把候选 DNA 序列交给专业合成公司或实验室合成平台。
- 基因组组装:把合成的 DNA 片段组装成完整的噬菌体基因组。
- 转染/转化:把基因组导入宿主菌,比如大肠杆菌或其他适合噬菌体感染的菌株。
- 功能检测:观察是否能形成噬菌斑,检测裂解能力、宿主范围、复制效率等。
- 安全性评估:完整记录实验过程,严格遵守实验室生物安全等级规定。
这里没有任何捷径。用 AI 生成序列是计算问题,合成和验证是生物安全问题,后者的门槛更高,监管要求也更严格。如果你想在实验室里做这个方向,第一件事不是写模型代码,而是先咨询实验室安全负责人,确认你所在的实验室具备相应资质和合规条件。
5. 真正决定成败的不是模型,而是输入、验证和边界
5.1 数据质量、类不平衡与评估标准
很多人以为只要模型够大,生成结果就会自动变得合理。真实情况是,输入数据的质量决定了生成结果的上限。
噬菌体基因组数据有一个显著特点:不同噬菌体类型的数量极不均衡。研究得比较透彻的噬菌体,比如某些感染大肠杆菌的噬菌体,数据量很大;而很多环境来源的噬菌体,数据量极少。模型容易在常见类型上生成多样化的序列,对于稀有类型,生成结果可能只是简单复制近邻序列。这会导致“新颖性”大打折扣。
所以在评估生成结果时,不能只看“是否像已知噬菌体”,还要看“在序列空间里是否足够远,但在功能上又可能成立”。这需要在新颖性和合理性之间找平衡。一般会使用序列比对工具,比如 BLAST,把生成序列和已知数据库比对,计算序列一致性和覆盖度。如果没有明显相似序列,说明新颖性高,但功能风险也高;如果相似度太高,又只是重复已知序列。
5.2 从计算候选到湿实验,是一道需要反复校准的关卡
生成模型的输出,更像是一个“可能正确”的集合,而不是“确定可用”的答案。之前提到的工作流里,生成、过滤、筛选、湿实验验证,每一步都会大幅降低候选数量。
实际落地时,我一般建议采用分层筛选策略:
- 第一层:基础序列合法性过滤,淘汰低质量序列。
- 第二层:基因结构完整性过滤,确认关键功能区域完整。
- 第三层:与已知功能基因的结构域比对,确认关键蛋白可能保留必要结构。
- 第四层:综合打分排序,优先选择新颖性适度、完整度高的候选。
这几层筛完,1000 条候选可能只剩 20 条。再和湿实验团队讨论,从中选择 5 到 10 条做合成验证。一口气合成几百条,既浪费经费,也没有必要。
5.3 技术边界:模型不产出功能保证,只产出可检验假设
必须承认,基因组语言模型目前还不是“全自动生物设计机”。它更像是一个假设生成器。模型给你一段新的序列,你无法提前知道它是不是有功能,只能通过实验去验证。它优化的是你“提出新假设”的效率,而不是“验证假设”的效率。
还有一个容易被忽略的问题:模型训练数据里如果有某些序列涉及潜在的安全风险,模型生成的序列也可能包含类似特征。所以在任何基因组生成项目里,都要有意识地进行风险评估,过滤掉任何可能具有已知毒性因子、致病因子特征的序列。这不是多余的谨慎。生成式工具越是强大,使用它的责任就越大。
6. 这类研究给普通开发者和科研者带来什么
6.1 对 NLP 开发者:基因序列是新的语料
如果你有 NLP 背景,看到基因组语言模型应该有一种强烈的既视感。序列建模、注意力机制、预训练、微调、生成,这些概念你全都熟悉。你缺的不是机器学习能力,而是生物学基础。
从这个角度看,跨学科的门槛其实没有想象中那么高。DNA 只有四种字符,比自然语言简单得多。你不需要先拿到生物学博士学位,才能理解噬菌体基因组的基本结构。花几个晚上读读噬菌体基因组学入门资料,你就能看懂大部分论文里的数据描述。再配合开源工具库,完全可以在计算层面做实验。
这种感觉有点像回到移动互联网早期:App 开发的底层能力是通用的,关键是你愿不愿意进入一个新场景。基因组语言模型也是一样。模型的底层技术是通用的,差异在于你怎么理解某个生物学问题,怎么设计输入输出,怎么定义“好”的生成结果。
6.2 对科研人员:多了一个可以反复实验的虚拟助手
传统湿实验科学家面对的问题往往是:候选序列少,实验成本高,试错周期长。基因组语言模型可以快速产出大量候选序列,让湿实验从“大海捞针”变成“在精选池子里捞针”。
但科研人员也要调整习惯。以前做实验,每一步都需要明确的生物学假设;现在用生成模型,很多时候模型输出的序列背后并没有一个已经被验证的机制假设。它可能只是在统计规律上合理。所以,科研人员需要学会和“黑箱输出”共处:先做计算过滤,再做低通量实验验证,对结果进行归类,把有效的序列特征重新喂给模型,形成反馈迭代。
这不是否认人类科学家的价值,而是改变他们的工作位置。过去科研人员要手动设计突变位点,现在更像是在管理一个探索系统:设计筛选标准、决定优先级、解释实验结果、修正模型训练目标。
6.3 长期价值:把设计工具链做成像代码仓库一样的东西
一个值得期待的方向是,基因组语言模型会催生出类似“生物设计即代码”的工具链。
想象一下,未来的生物工程师可以像使用 GitHub 一样使用一系列公共模型库、序列合成接口和实验验证平台。你写一段提示词,模型给出候选序列;你调用注释工具,自动标注潜在基因;你对接合成服务,提交序列生产物理样本。整个流程会越来越像现代软件开发的 CI/CD 流水线。
当然,这条路还很长。目前最大的瓶颈不是模型能力,而是湿实验验证的通量和成本。合成一条长 DNA 序列不便宜,验证一个噬菌体是否有功能也需要大量人力。只有当计算生成的候选序列成功率足够高,整个工具链才有资格进入“快速迭代”的正循环。
7. 结尾:从语言模型里读到的,是进化的另一种写法
回到最开始的问题。科学界用基因组语言模型生成新型噬菌体,这件事最让人感慨的地方在哪里?
我想是视角的转变。过去我们看到生物的复杂性,第一反应是敬畏,觉得这是几十亿年进化的产物,我们只能缓慢地解读它。现在,生成式模型给了我们一种新的姿态:我们可以在理解规律之后,尝试把它扩展到自然从未走过的方向。
但姿态归姿态,真正的科学研究仍然要落到“生成、筛选、验证”这个朴素流程上。斯坦福等机构这项工作真正的价值,不在于模型产出了某一个惊世骇俗的噬菌体序列,而在于它证明了一条可行的闭环路径:把基因组语言模型、生物信息学筛选和湿实验验证串在一起,可以系统性地扩大生物设计的探索空间。
如果你是开发者,可以从跑通一个开源基因组模型开始;如果你是研究者,可以从为一个具体生物学问题设计筛选标准开始。如果你只是旁观者,也不用急着下结论。这项技术还很年轻,它的产出需要时间验证,它的边界需要持续讨论。
在生物设计这场演进里,语言模型并不是替代进化,而是给进化增加了一张草稿纸。我们还在学怎么在这张纸上画出像样的第一笔。