评估LLM在细胞数据上的实用性(1)-基本概述

2024-01-11 02:36

本文主要是介绍评估LLM在细胞数据上的实用性(1)-基本概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于LLM的基础模型在工业和科学领域都取得了重大进展。本报告通过八个与单细胞数据相关的下游任务的综合实验,评估了LLM在单细胞测序数据分析中的性能。通过将七种不同的单细胞LLM与特定任务下的baselines进行比较,结果发现单细胞LLMs在所有任务中可能并不总是优于特定任务的方法。然而,LLM具有潜力并且在其他领域的成功应用证明是有希望的。此外,该报告还基于所提出的评估框架,通过超参数、初始设置等对训练单细胞LLM的影响进行了系统评估,并为预训练和微调提供了指导。总之,该工作总结了单细胞LLM的现状,并指出了它们的局限性和未来的发展方向。

来自:Evaluating the Utilities of Large Language Models in Single-cell Data Analysis
工程地址:https://github.com/HelloWorldLTY/scEval

目录

  • 背景概述
    • 基准方法
    • evaluation的overview

背景概述

单细胞测序技术通过多模态数据在细胞水平上对复杂的生物系统提供了高分辨率的观测。它们有助于阐明疾病机制和潜在的治疗方法。目前这些技术已经能够表征各种分子,如DNA、RNA和蛋白质。此外,单细胞测序可以促进表观遗传学研究,包括染色质可及性和甲基化。这些技术被评为近十年来最具影响力的技术之一。

随着单细胞技术的发展,现在已经收集了大量的单细胞数据集,它们在分析、整合、解释和下游任务方面都面临挑战。与单细胞数据类似,NLP也拥有广泛的数据集,其中预训练的LLM在处理NLP任务或多模态任务方面取得了巨大成功。包括GPT-4和LLaMA在内的LLM擅长于各种与语言相关的任务,如问答和句子生成,这受到了人工智能社区和社会的广泛关注。此外,这些LLM在零样本场景中表现出压制性的表现,从而使他们能够在原始训练范围外处理任务,例如解决数学问题。

事实上,基于single cell数据的研究与NLP中的研究存在显著的相似之处。首先,两者都有许多与多模态数据密切相关的下游任务。其次,两者都需要数据内和数据间关系的模板化。第三,两者都受益于高质量的数据库。

尽管LLM在DNA分析和生物医学NLP领域取得了显著的成功,但其在单细胞研究中的应用仍然是未知的。在单细胞研究中,能够管理多个任务的稳健预训练模型(称为scLLM)数量有限。一些scLLM专注于细胞类型注释或基因功能预测,包括scBERT、tGPT、CellLM和Geneformer,而另一些则旨在在该领域创建一个可以处理多个任务的基础模型,包括scGPT、scFoundation和SCimilarity。此外,到目前为止,还没有任何研究全面评估这些模型的实用性,并为模型训练提供指导。很少有人将NLP聚焦的LLM与用于单细胞研究的LLM进行比较,以深入了解零样本或小样本场景。

该报告提出了一个评估各种scLLM和任务的框架(图1),称为scEval。使用scEval,我们确定了scLLM微调过程的关键参数和策略。我们还研究了scLLM的潜在涌现能力。
fig1

  • 图1a:scLLM概述,描述LLM的典型结构和单细胞数据分析的一般任务。右边的两个块表示两种类型的下游任务。黄块:任务1,包括细胞类型注释和基因功能预测(从上到下)。蓝块:任务2,包括批次整合、多组学整合、推断(从左到右,上排)、扰动预测、基因网络分析和模拟(从左至右,下排)。
  • 图1b:scEval展示了系统评估分析的工作流程。
  • 图1c:可能影响scLLM性能的因素。已知的因素可以分为四种不同的类型。

基准方法

scLLM包括:

  • tGPT:tGPT是基于GPT-2结构的scLLM。它利用大规模的scRNA-seq数据集进行预训练,并将预训练任务设置为预测基因表达的排序(ranking)。tGPT的下游应用遵循零样本学习框架,包括聚类、批次整合。
  • scBERT:scBERT是一种基于预训练的scLLM,专注于细胞类型预测。它基于Performer,具有由Gene2vec初始化的基因embedding。scBERT向下游数据集的默认微调过程是冻结至倒数第二层。细胞类型注释任务考虑使用scBERT。
  • Geneformer:Geneformer使用迁移学习来预测细胞类型和基因功能。Geneformer的tokenization步骤是基于在整个训练数据集上缩放后对单个细胞中的基因表达值进行排序来完成的。细胞被表示为toekn strings,基因排名作为tokens。
    Geneformer 用于细胞类型注释任务和基因功能预测任务。这两项任务都是通过在已发布的预训练 Geneformer 的基础上进行微调来完成的。 默认的超参数用于 Geneformer 微调。 在tokenization之前,所有数据集中的基因名称均使用 python 包 mygene 和 pyensembl 转换为 ENSEMBL IDs。
  • CellLM:CellLM是使用三种不同预训练策略的scLLM。预训练损失函数包括:1.masked基因表达水平重建,2.细胞状态判别,3.自监督的对比学习。此外,在预训练过程中引入了蛋白质-蛋白质相互作用网络作为先验信息。CellLM的下游任务都与细胞类型注释有关。

任务特定的方法包括:

  • ResPAN:ResPAN是一种基于GAN的批次整合工具。ResPAN用于批次整合任务和多组学数据整合任务。
  • scVI:scVI是一种基于变分推理和变分自编码器的批次整合工具。scVI使用神经网络用批次信息对基因表达数据进行编码,并将网络的输出设置为分布的参数。
  • Vanilla NNs:该神经网络包含三个MLP层,并使用Mish作为激活函数。Vanilla NNs用于细胞类型注释任务和基因功能预测任务。
  • TOSICA:TOSICA是一种基于深度学习的一站式细胞类型注释方法。TOSICA采用了无需预训练的多头Transformer。它还为研究人员提供了关于注意力embedding的解释。
  • GEARS:GEARS是一种基于scRNA-seq数据集的单基因和多基因扰动预测工具。它结合了基因-基因相互作用网络作为先验信息,并使用跨基因神经网络和图神经网络来预测扰动后的基因表达。
  • Tangram:Tangram是一个基于神经网络的空间转录组数据分析工具箱。Tangram背后的思想是使用神经网络找到从单细胞基因表达数据空间到空间数据空间的映射函数。在映射过程之后,整合来自单细胞水平和空间水平的信息,它可以执行几个下游任务,包括数据插补、细胞类型反卷积等。
  • scDesign3:scDesign3是一个基于Copula分布的模型,用于生成不同的单细胞数据集。这样的数据集可以是多模态的。此外,基于scDesign3的输入参数和要求,它还可以生成具有特定条件的数据集,比如批次效应。

evaluation的overview

该报告通过评估LLM在8个任务和22个数据集上的性能,评估了5个开源单细胞LLM(scGPT、Geneformer、scBERT、CellLM和tGPT)的性能。图2总结了不同模型可以执行的任务以及总体排名。作者还将它们的性能与任务特定的SOTA方法进行比较。对于每个任务,作者讨论了不同参数设置对模型性能的影响,并通过消融实验研究了不同损失函数和初始设置的贡献。对于涌现能力,作者考虑了模型大小对性能的贡献。最后,作者评估了不同scLLM的稳定性和可用性,并提出了选择模型的建议。
fig2

  • 图2:在基于任务的广度选择模型时要考虑的标准表。空白表示所选模型不符合标准,因为它们没有针对特定任务的设计。这里的scGPT benchmark代表用于该基准测试的修改版本。

这篇关于评估LLM在细胞数据上的实用性(1)-基本概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/592862

相关文章

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢