Nature Protocols 手把手教你做scGPT模型微调

scGPT关于细胞类型注释的预训练模型微调的文档内容详细而系统,但对于使用来说有点复杂,看着让人眼花缭乱。这样整个过程摊开在使用者面前,虽然调整的自由度很高,但也同时增加了复杂性,这对于仅仅想简单使用一下的用户来说有些头重脚轻。

为此,就有研究者将微调的过程模块化,并将每一个模块封装成了python脚本,使用时只需调用现成的脚本即可运行相应的功能,大大降低了使用的复杂度,让scGPT模型微调平民化,让更多的人在数据分析时可以尝试大模型的解法。

整个过程分成三个模块:预处理、微调、推断,分别对应脚本protocol_preprocess.pyprotocol_finetune.pyprotocol_inference.py

  • 预处理
    将自有数据准备成微调需要的形式:
# 查看所有参数
python protocol_preprocess.py --help

python protocol_preprocess.py \
  --dataset_directory=../datasets/retina_snRNA.h5ad \
  --cell_type_col=celltype \
  --batch_id_col=sampleid \
  --load_model=../scGPT_human \
   --wandb_sync=True \
  --wandb_project=finetune_retina_snRNA \
  --wandb_name=finetune_example1
  • 微调
    开始使用自有数据集对基础scGPT模型进行微调。请根据自身的需求调整相关参数。
python protocol_finetune.py \
  --max_seq_len=5001 \
  --include_zero_gene=True \
  --epochs=3 \
  --batch_size=32 \
  --schedule_ratio=0.9

batch_size参数会影响程序的运行,可以利用dry-run模式找到当前运行环境可以使用的最大值。

python protocol_finetune.py \
    --dry_run=True \
    --batch_size=32 \
    --max_seq_len=5001 \
    --include_zero_gene=True
  • 推断
    使用微调好的模型,评估和基准测试也在该部分执行。
python protocol_inference.py \
  --load_model=save/dev_eyescGPT_May0520 \
  --batch_size=32 \
  --wandb_sync=True \
  --wandb_project=benchmark_BC \
  --wandb_name=sample_bm_0520

过程经过这么一封装使用起来显得相当简单,只要会跑程序的人看了都会觉得自己又行了,这就是让事情简单化的意义所在吧。

https://doi.org/10.1038/s41596-025-01220-1
https://github.com/RCHENLAB/scGPT_fineTune_protocol

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容