🚀 DistilProtBert
DistilProtBert 是 ProtBert-UniRef100 模型的蒸馏版本。除了交叉熵和余弦师生损失外,DistilProtBert 还在掩码语言建模(MLM)目标上进行了预训练,并且仅适用于大写字母的氨基酸。
更多详细信息请查看我们的论文 DistilProtBert: A distilled protein language model used to distinguish between real proteins and their randomly shuffled counterparts。
Git 代码仓库。
🚀 快速开始
本模型可用于蛋白质特征提取,或在下游任务中进行微调。
如何使用
该模型的使用方法与 ProtBert 相同,并且可以使用 ProtBert 的分词器。
✨ 主要特性
- 基于 ProtBert-UniRef100 模型进行蒸馏,减少了参数数量。
- 在掩码语言建模(MLM)目标上进行预训练,提高了模型性能。
- 仅适用于大写字母的氨基酸。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
文档未提供代码示例,故跳过此章节。
📚 详细文档
模型详情
模型 |
参数数量 |
隐藏层数 |
预训练数据集 |
蛋白质数量 |
预训练硬件 |
ProtBert |
4.2 亿 |
30 |
UniRef100 |
2.16 亿 |
512 个 16GB TPU |
DistilProtBert |
2.3 亿 |
15 |
UniRef50 |
4300 万 |
5 个 v100 32GB GPU |
训练数据
DistilProtBert 模型在 Uniref50 数据集上进行预训练,该数据集包含约 4300 万个蛋白质序列(仅使用长度在 20 到 512 个氨基酸之间的序列)。
预训练过程
- 预处理使用 ProtBert 的分词器。
- 每个序列的掩码过程细节遵循原始 Bert(如 ProtBert 中所述)。
- 模型在单个 DGX 集群上总共预训练 3 个 epoch。本地批量大小为 16,使用的优化器是 AdamW,学习率为 5e-5,并采用混合精度设置。
评估结果
在下游任务上进行微调时,该模型取得了以下结果:
下游任务评估
任务/数据集 |
二级结构(3 状态) |
膜蛋白预测 |
CASP12 |
72 |
|
TS115 |
81 |
|
CB513 |
79 |
|
DeepLoc |
|
86 |
区分蛋白质及其 k-字母打乱版本
-
单字母打乱(数据集)
| 模型 | AUC |
|------|-----|
| LSTM | 0.71 |
| ProtBert | 0.93 |
| DistilProtBert | 0.92 |
-
双字母打乱(数据集)
| 模型 | AUC |
|------|-----|
| LSTM | 0.68 |
| ProtBert | 0.92 |
| DistilProtBert | 0.91 |
-
三字母打乱(数据集)
| 模型 | AUC |
|------|-----|
| LSTM | 0.61 |
| ProtBert | 0.92 |
| DistilProtBert | 0.87 |
🔧 技术细节
文档未提供技术实现细节,故跳过此章节。
📄 许可证
本项目采用 MIT 许可证。
📚 引用
如果您使用此模型,请引用我们的论文:
@article {
author = {Geffen, Yaron and Ofran, Yanay and Unger, Ron},
title = {DistilProtBert: A distilled protein language model used to distinguish between real proteins and their randomly shuffled counterparts},
year = {2022},
doi = {10.1093/bioinformatics/btac474},
URL = {https://doi.org/10.1093/bioinformatics/btac474},
journal = {Bioinformatics}
}