Overview
📄 第17期 | Cell2Sentence: Teaching Large Language Models the Language of Biology — 教大语言模型说"细胞的语言"
把基因表达谱写成句子,喂给GPT——然后让AI自己"读懂"细胞。耶鲁大学van Dijk实验室的Cell2Sentence用一种出人意料的简单方式,绕过了单细胞基础模型领域愈演愈烈的架构军备竞赛,证明了"语言即是一切"。
🔬 为什么这篇文章重要?
单细胞转录组学正在经历一场"大模型化"浪潮。过去五年间,研究者们设计了各式各样的专用神经网络架构来处理scRNA-seq数据:scGPT引入了基因分桶编码(gene binning),把连续的表达值离散化成token;Geneformer设计了一套精巧的排序学习策略,让模型通过预测基因顺序来理解转录调控网络;scFoundation采用不对称编码器-解码器来应对基因维度的巨大差异;UCE构建了蛋白质语言模型与基因共表达的双编码器体系。每一个新模型都在Transformer架构的底层做手术,试图让深度神经网络适应基因表达数据的特殊数学结构。
Cell2Sentence走了一条截然不同的路——一条让人拍案叫绝的"捷径"。它的核心洞见极为简洁:单细胞基因表达数据天然具有排序结构——在一个细胞中,高表达基因排在前面,低表达基因排在后面。这个排序不是随机的,它遵循着生物学中已知的逆序-频率规律(inverse-rank frequency pattern),即基因表达量与它在排序中的位置存在稳定的对数-线性关系。
如果这个排序本身已经编码了足够多的信息,为什么还要费尽心思设计专用tokenizer和定制编码器呢?直接把基因名字按表达量排序、连成一句话、喂给一个标准的大语言模型——这不就行了吗?
答案是:确实行。而且行得很好。
Cell2Sentence用GPT-2(1.24亿参数的一个小模型,在今天的LLM标准下几乎算"迷你")进行微调,就让模型学会了生成生物学上合理的细胞表达谱、从基因序列预测细胞类型、甚至从单细胞数据中直接生成自然语言描述。这种跨越生物信息学和自然语言处理的"双重能力"是任何其他单细胞基础模型都不具备的。
这篇工作在2024年被机器学习顶会ICML接收,至今已被引用71次,GitHub开源仓库收获861颗星。更重要的是,这项工作催生了一条持续演化的技术路线——2025年,团队与Google Research和Google DeepMind合作推出了C2S-Scale,将模型规模扩展到270亿参数,基于Google的Gemma-2架构,训练语料超过10亿token,涵盖5700万人类和小鼠细胞。Google Research官方博客将这项工作描述为"教机器学习生物学的语言"(Teaching machines the language of biology)。这是目前单细胞领域与NLP大模型生态结合最深、技术迭代最快的路线之一。
🧠 核心创新:Cell2Sentence是怎么工作的?
Cell2Sentence的工作流程可以清晰地拆解为三个步骤,每一步都充满聪明的工程选择。
第一步:把细胞变成句子
从一个scRNA-seq实验中得到的是一个计数矩阵:每一行是一个细胞,每一列是一个基因,矩阵中的数值表示该基因在该细胞中检测到的RNA分子数。这个矩阵极度稀疏——一个典型的人类细胞表达大约2000-5000个基因,但基因组总共有约20000个蛋白编码基因,这意味着矩阵中80%以上的格子都是零。
Cell2Sentence对这个矩阵做两件事。首先,用Scanpy(单细胞分析领域最主流的Python工具包)进行标准化预处理:过滤掉表达基因数不足200的低质量细胞、线粒体转录本比例超过20%的受损细胞,然后将每个细胞的总计数归一化到10000(消除测序深度差异),最后取对数变换(让高度偏态的表达分布更接近正态)。
然后,关键的一步来了。对每个细胞,将其所有非零表达的基因按表达量从高到低排列,取出基因名字,用空格连接成文本序列。例如,一个外周血CD8+ T细胞可能产生这样的"细胞句子":
CD3D CD3E CD8A CD8B CCL5 NKG7 GZMK CST7 GZMA PRF1 IL7R ...
这就是Cell2Sentence的全部数据魔法。没有embedding、没有tokenization工程、没有定制化词表——基因名字本身就是token(LLM的tokenizer天然认识这些字母组合)。排序本身编码了表达量的相对信息。整个过程可以用三行Python代码实现。
第二步:像教语言模型学英语一样,教它学"细胞语"
有了细胞句子之后,下一步是将它们组织成LLM微调所需的数据格式。具体做法是将细胞句子与文本元数据(细胞类型注释、组织来源、疾病状态、甚至论文摘要中的方法描述)拼接成prompt-completion对,用标准的因果语言建模损失函数对预训练LLM进行全参数微调。
例如,一个细胞生成任务的训练样本可能是:
输入: "Generate a CD8+ T cell from peripheral blood:"
输出: "CD3D CD3E CD8A CD8B CCL5 NKG7 GZMK CST7 GZMA PRF1 IL7R ..."
一个细胞类型预测任务的样本可能是:
输入: "CD19 MS4A1 CD79A CD79B PAX5 BANK1 ... What is the cell type?"
输出: "B cell"
这里有一个非常深刻的洞察:LLM的预训练权重中已经包含了从海量自然语言语料(数千亿token)中习得的统计模式和序列理解能力。Cell2Sentence不需要让模型从零开始学习"基因序列中的规律"——它只需要让模型将已经具备的序列建模能力应用到新的"基因词汇"上。就像一个有经验的翻译官不需要重新学习语法就能处理一门新语言,只需要学会词汇的排列规则。
在模型选择上,原始论文使用的是GPT-2(1.24亿参数)。团队也尝试了参数高效微调方法(LoRA),但发现全参数微调的模型在生成基因的准确性和唯一性上显著优于LoRA微调(LoRA生成的基因序列中重复率高达30%,而全参数微调仅约4%)。这个反直觉的结果说明,细胞句子的"语法"与自然语言差异足够大,以至于仅靠低秩适配器难以充分捕捉。
在训练数据方面,原始C2S使用了来自CellxGene和Human Cell Atlas(HCA)的3600万人类和小鼠免疫细胞数据。C2S-Scale将这一规模扩大到5700万细胞,涵盖了更广泛的组织类型和实验条件。
第三步:逆向工程——从生成的句子回到表达谱
这是Cell2Sentence设计中最令人惊叹的一环。模型生成了一串基因名之后,如何还原为可用于下游分析的标准基因表达向量(一个20000维的数值向量)?
答案出乎意料的简单:线性回归。作者发现并利用了基因表达中一个被前人充分研究但在大模型语境下被重新发现价值的统计规律——基因表达量与它在排序序列中的位置(rank)之间存在稳定的对数-线性关系。用数学语言表达:
$$\log(e_i) \approx \beta \cdot \log(r_i) + \alpha$$
其中 $e_i$ 是基因 $i$ 的表达量,$r_i$ 是它在排序中的位置(第1名、第2名……),$\beta$ 和 $\alpha$ 是特定于该数据集的回归系数。在数据预处理阶段拟合好这两个参数后,任何生成的基因序列都可以通过这个公式还原为表达值——出现在序列前部的基因获得高表达值,出现在后部的基因获得低表达值,未出现的基因表达为零。
这个还原过程的信息保真度有多高?在PBMC免疫数据集上的验证结果显示,还原表达与原始表达之间的R²达到0.815——这意味着排序编码保留了原始数据中超过81%的表达变异。Spearman相关系数同样优秀。UMAP可视化也显示,还原后的细胞与原始细胞在低维空间中几乎完全重叠,细胞类型聚类结构完好无损。
这个R²=0.815的数字既是Cell2Sentence有效性的证明,也是其局限性的提醒:排序编码保留了"谁高谁低"的相对信息,但丢失了"高多少、低多少"的精确量级。对于细胞类型鉴定、聚类分析等依赖相对表达模式的任务,这已经足够;但对于需要精确倍数变化(fold change)和统计显著性检验的差异表达分析,还原误差可能不可忽略。
Cell2Sentence与其他路线的本质区别
为了帮助读者理解Cell2Sentence在单细胞大模型版图中的位置,下面这张对比表或许比千言万语更直观:
| 维度 | scGPT / Geneformer | scFoundation | Cell2Sentence |
|---|---|---|---|
| 数据表示 | 基因分桶/排序索引编码 | 不对称编码器embedding | 基因名排序序列(纯文本) |
| 模型架构 | 改造Transformer | 专用非对称架构 | 标准LLM(GPT-2、Pythia、Gemma) |
| 训练目标 | 掩码基因预测 | 自编码重建 | 因果语言建模(预测下一个基因名) |
| 文本能力 | 无 | 无 | 原生支持自然语言理解与生成 |
| 生态兼容性 | 需专用工具链 | 需专用工具链 | 直接使用HuggingFace全家桶 |
| 模型规模上限 | 受限于专用架构 | 受限于专用架构 | 随NLP大模型生态同步扩展 |
| 最大规模(截至2025) | ~1亿参数 | ~1亿参数 | 270亿参数(C2S-Scale Gemma-2) |
Cell2Sentence的策略是"借力打力"——不造轮子,只做转换层。这个策略让它的模型规模上限由NLP领域的发展速度决定,而不是由自己团队的工程能力决定。当Meta发布LLaMA、Google发布Gemma、EleutherAI发布Pythia时,Cell2Sentence自动获得了更强的底层引擎——不需要重写一行架构代码。
📊 关键实验结果
原始C2S论文在三个任务维度上系统评估了模型的性能:
细胞生成:给定细胞类型标签作为条件(如"Generate a CD8+ T cell"),模型生成该类型的代表性基因表达序列。质量评估关注两个指标:基因合法性(生成的名字是否真实存在)和基因唯一性(是否有重复)。结果表明,生成序列中超过97%的基因名是真实存在的,超过96%是唯一的。更关键的是生物学合理性验证——例如,生成的CD8+ T细胞序列中,CD8A、CD8B、NKG7、GZMK、PRF1等细胞毒性T细胞标志基因稳定出现在序列前部,而B细胞标志基因(CD19、MS4A1)几乎不出现在T细胞提示词下的生成结果中。这意味着模型不仅仅是"编造合理基因名",而是真正捕捉到了细胞类型特异性的表达程序。
复杂细胞标签预测:这是Cell2Sentence展示LLM灵活性的一个亮点。在真实的单细胞实验中,每个细胞通常不会只有一个标签——它可能同时属于"人类、外周血、狼疮患者、CD4+ T细胞"这个四元组合。传统分类器需要将这种组合标签展平为几千个独立类别,而Cell2Sentence可以直接将细胞句子和标签格式化为自然语言序列,让模型在文本空间中自然处理组合逻辑。在包含多种组织来源、疾病状态和细胞类型的大型数据集上,C2S微调的GPT-2实现了准确的组合标签预测。
自然语言与细胞数据的双向转换:这是Cell2Sentence区别于所有其他单细胞基础模型的杀手锏。模型不仅能处理细胞数据,还能同时理解和生成自然语言。论文展示了两类跨模态任务:(1) 给定来自论文摘要的实验条件描述,模型生成相应条件下的细胞表达谱;(2) 给定一个细胞句子,模型生成对该细胞生物学特征的自然语言描述。这种"跨模态"能力无需任何额外的对齐训练或中间表示——因为从一开始,基因名和英文单词就在同一个token词汇表中。
C2S-Scale的能力飞跃:2025年发布的C2S-Scale将这一技术路线推向了全新的高度。270亿参数的Gemma-2模型,训练数据规模超过10亿token,新增了三个高级能力:(1) 扰动响应预测——预测基因敲除或药物处理后细胞的转录组变化,在多个CRISPR数据集上展现出与专用扰动模型(如GEARS)可比的性能;(2) 数据集摘要生成——自动总结单细胞实验的主要生物学发现,生成可读的自然语言段落;(3) 细胞集群自动标注——为无监督聚类结果自动生成生物学上有意义的名称和描述,大幅减少人工标注时间。Google Research的官方博客文章将C2S-Scale的能力总结为"从细胞图谱到生物学洞察的端到端管线"。
⚠️ 局限与展望
对任何技术路线的诚恳评估都需要直面其局限。Cell2Sentence面临以下挑战:
信息保真度的天花板:排序编码虽然在R²=0.815的水平上保留了大部分表达信息,但这15%的信息损失在某些应用场景下是决定性的。对于需要精确log-fold-change的差异表达分析、需要精确表达量值的基因调控网络推断,还原误差可能导致假阳性或假阴性。这不是架构缺陷,而是"用排序代替数值"这一核心设计选择的必然代价。选择简单性,就要接受一定程度的近似。
序列长度与上下文窗口的博弈:一个表达3000个基因的细胞会产生约3000个token的细胞句子。加上prompt和元数据,单个样本轻松突破LLM的上下文窗口限制。原始C2S用GPT-2(1024 token上下文)时不得不截断到前100个高表达基因。C2S-Scale通过Gemma-2(8192 token上下文)部分解决了这个问题,但依然无法完整编码细胞的全转录组。这是一个结构性问题——随着单细胞技术进入全转录组时代,基因数量的增长可能始终跑在LLM上下文窗口扩展的前面。
跨物种泛化的隐忧:原始C2S论文的实验集中在美国和英国的标准数据集——人类和小鼠的免疫细胞。基因名在这两个物种中高度重叠(同源基因通常共享符号),这使得"基因名作为token"的策略运行良好。但对于非模式生物——斑马鱼(基因名格式不同)、拟南芥(AGI编号体系完全不同)、果蝇(FlyBase命名惯例)——这套依赖于共享基因符号体系的方法可能面临严重的词汇不匹配问题。这在C2S-Scale论文中也未得到系统评估。
对预训练LLM质量的单向依赖:Cell2Sentence的天才之处在于"利用已有的轮子",但这同时也是它的阿喀琉斯之踵。如果底层LLM存在偏见、幻觉或能力缺陷,这些缺陷会原封不动地传递到单细胞分析环节。例如,原始GPT-2在某些序列模式上的统计偏差可能导致某些细胞类型的生成质量系统性优于其他类型——这并非生物学问题,而是语言模型训练数据分布不均衡的折射。
展望未来,Cell2Sentence的技术路线有几条令人兴奋的发展方向。首先,利用现代LLM强大的指令跟随能力实现"对话式单细胞分析"——研究者用自然语言提问("在狼疮患者的B细胞中,哪些通路被异常激活?"),模型从对应的细胞句子中提取答案。这将是单细胞数据分析从"写代码-跑pipeline-看图表"到"自然语言交互"的范式转变。其次,多模态扩展——将细胞句子与病理H&E染色图像的组织学描述、空间转录组的位置坐标、蛋白质组学的丰度数据在同一文本框架内统一编码,实现真正的多组学融合。第三,也是最具想象力的方向——随着LLM生态以月为单位迭代升级(从GPT-2到Gemma-2只用了五年),Cell2Sentence的模型能力将自动"水涨船高",而这个路线几乎不需要在生物学方法层面做任何调整——只需把新的LLM底座接上即可。
📎 论文信息
- 📄 论文:Cell2Sentence: Teaching Large Language Models the Language of Biology | ICML 2024 (bioRxiv preprint v4)
- 🔗 链接:https://doi.org/10.1101/2023.09.11.557287
- 💻 代码:https://github.com/vandijklab/cell2sentence (⭐ 861)
- 🤗 模型:https://huggingface.co/collections/vandijklab/cell2sentence-models-66d71f690a7b77558a36b9ef
- 📖 文档:https://vandijklab-cell2sentence.readthedocs.io/
- 👥 团队:Daniel Levine, Syed Asad Rizvi, Sacha Lévy et al. | van Dijk Lab, Yale University
- 🏛️ 发表:International Conference on Machine Learning (ICML), 2024
- 🆕 最新进展:C2S-Scale (2025) — 270亿参数Gemma-2模型,与Google Research合作 | 链接:https://doi.org/10.1101/2025.04.14.648850 | Google博客:https://research.google/blog/teaching-machines-the-language-of-biology-scaling-large-language-models-for-next-generation-single-cell-analysis/
📌 下期预告:第18期 — SATURN。同样是van Dijk Lab出品(与Stanford合作),用一个蛋白质语言模型驱动的embedding空间统一了人类、小鼠、斑马鱼的跨物种细胞图谱。如果说Cell2Sentence是把细胞变成语言,SATURN则是把所有物种的细胞"翻译"成同一种蛋白质"方言"。