🚀 ProtBert-BFDモデル
タンパク質配列に対してマスク言語モデリング(MLM)の目的で事前学習されたモデルです。このモデルは、この論文で紹介され、このリポジトリで最初に公開されました。このモデルは大文字のアミノ酸で学習されており、大文字のアミノ酸のみで動作します。
🚀 クイックスタート
ProtBert-BFDモデルは、マスク言語モデリングを用いてタンパク質配列に対して事前学習されたモデルです。このモデルは、タンパク質の特徴抽出や下流タスクへのファインチューニングに使用できます。
✨ 主な機能
- タンパク質配列からの特徴抽出が可能です。
- 下流タスクに対してファインチューニングすることができ、精度向上が期待できます。
💻 使用例
基本的な使用法
>>> from transformers import BertForMaskedLM, BertTokenizer, pipeline
>>> tokenizer = BertTokenizer.from_pretrained('Rostlab/prot_bert_bfd', do_lower_case=False )
>>> model = BertForMaskedLM.from_pretrained("Rostlab/prot_bert_bfd")
>>> unmasker = pipeline('fill-mask', model=model, tokenizer=tokenizer)
>>> unmasker('D L I P T S S K L V V [MASK] D T S L Q V K K A F F A L V T')
[{'score': 0.1165614128112793,
'sequence': '[CLS] D L I P T S S K L V V L D T S L Q V K K A F F A L V T [SEP]',
'token': 5,
'token_str': 'L'},
{'score': 0.08976086974143982,
'sequence': '[CLS] D L I P T S S K L V V V D T S L Q V K K A F F A L V T [SEP]',
'token': 8,
'token_str': 'V'},
{'score': 0.08864385634660721,
'sequence': '[CLS] D L I P T S S K L V V S D T S L Q V K K A F F A L V T [SEP]',
'token': 10,
'token_str': 'S'},
{'score': 0.06227643042802811,
'sequence': '[CLS] D L I P T S S K L V V A D T S L Q V K K A F F A L V T [SEP]',
'token': 6,
'token_str': 'A'},
{'score': 0.06194969266653061,
'sequence': '[CLS] D L I P T S S K L V V T D T S L Q V K K A F F A L V T [SEP]',
'token': 15,
'token_str': 'T'}]
高度な使用法
from transformers import BertModel, BertTokenizer
import re
tokenizer = BertTokenizer.from_pretrained('Rostlab/prot_bert_bfd', do_lower_case=False )
model = BertModel.from_pretrained("Rostlab/prot_bert_bfd")
sequence_Example = "A E T C Z A O"
sequence_Example = re.sub(r"[UZOB]", "X", sequence_Example)
encoded_input = tokenizer(sequence_Example, return_tensors='pt')
output = model(**encoded_input)
📚 ドキュメント
モデルの説明
ProtBert-BFDは、Bertモデルをベースにしており、自己教師あり学習によって大量のタンパク質配列コーパスで事前学習されています。これは、人間によるラベル付けが一切ない生のタンパク質配列のみを使用して事前学習されており、それらのタンパク質配列から入力とラベルを自動的に生成するプロセスが行われます(このため、大量の公開データを利用できます)。
当社のBertモデルとオリジナルのBertバージョンの重要な違いの1つは、シーケンスを別々のドキュメントとして扱う方法です。つまり、各シーケンスは完全なドキュメントとして扱われるため、次文予測は使用されません。マスキングは、元のBert学習に従い、入力のアミノ酸の15%をランダムにマスクします。
最後に、このモデルから抽出された特徴量は、未ラベル付きデータ(タンパク質配列のみ)からのLM埋め込みが、タンパク質の形状を支配する重要な生物理的特性を捉えていることを明らかにしました。これは、タンパク質配列に実現されている生命の言語の文法の一部を学習していることを示唆しています。
想定される用途と制限
このモデルは、タンパク質の特徴抽出や下流タスクへのファインチューニングに使用できます。一部のタスクでは、モデルをファインチューニングすることで、特徴抽出器として使用するよりも高い精度を得ることができることがわかっています。
学習データ
ProtBert-BFDモデルは、21億のタンパク質配列から構成されるデータセットであるBFDで事前学習されました。
学習手順
前処理
タンパク質配列は大文字に変換され、単一の空白を使用してトークン化されます。語彙サイズは21です。モデルの入力は、以下の形式になります。
[CLS] タンパク質配列A [SEP] タンパク質配列B [SEP]
さらに、各タンパク質配列は別々のドキュメントとして扱われました。前処理ステップは2回行われ、1回目は合計長(2つのシーケンス)が512アミノ酸未満の場合、2回目は合計長(2つのシーケンス)が2048アミノ酸未満の場合に行われました。
各シーケンスのマスキング手順の詳細は、元のBertモデルに従い、以下の通りです。
- アミノ酸の15%がマスクされます。
- 80%のケースで、マスクされたアミノ酸は
[MASK]
に置き換えられます。
- 10%のケースで、マスクされたアミノ酸は、置き換えるアミノ酸とは異なるランダムなアミノ酸に置き換えられます。
- 残りの10%のケースでは、マスクされたアミノ酸はそのまま残されます。
事前学習
モデルは、合計100万ステップ、単一のTPU Pod V3 - 1024で学習されました。シーケンス長512(バッチサイズ32k)で80万ステップ、シーケンス長2048(バッチサイズ6k)で20万ステップ行われました。使用されるオプティマイザはLambで、学習率は0.002、重み減衰は0.01、学習率のウォームアップは14万ステップ、その後は学習率を線形に減衰させました。
評価結果
下流タスクにファインチューニングした場合、このモデルは以下の結果を達成します。
テスト結果:
タスク/データセット |
二次構造(3状態) |
二次構造(8状態) |
局在化 |
膜 |
CASP12 |
76 |
65 |
|
|
TS115 |
84 |
73 |
|
|
CB513 |
83 |
70 |
|
|
DeepLoc |
|
|
78 |
91 |
BibTeXエントリと引用情報
@article {Elnaggar2020.07.12.199554,
author = {Elnaggar, Ahmed and Heinzinger, Michael and Dallago, Christian and Rehawi, Ghalia and Wang, Yu and Jones, Llion and Gibbs, Tom and Feher, Tamas and Angerer, Christoph and Steinegger, Martin and BHOWMIK, DEBSINDHU and Rost, Burkhard},
title = {ProtTrans: Towards Cracking the Language of Life{\textquoteright}s Code Through Self-Supervised Deep Learning and High Performance Computing},
elocation-id = {2020.07.12.199554},
year = {2020},
doi = {10.1101/2020.07.12.199554},
publisher = {Cold Spring Harbor Laboratory},
abstract = {Computational biology and bioinformatics provide vast data gold-mines from protein sequences, ideal for Language Models (LMs) taken from Natural Language Processing (NLP). These LMs reach for new prediction frontiers at low inference costs. Here, we trained two auto-regressive language models (Transformer-XL, XLNet) and two auto-encoder models (Bert, Albert) on data from UniRef and BFD containing up to 393 billion amino acids (words) from 2.1 billion protein sequences (22- and 112 times the entire English Wikipedia). The LMs were trained on the Summit supercomputer at Oak Ridge National Laboratory (ORNL), using 936 nodes (total 5616 GPUs) and one TPU Pod (V3-512 or V3-1024). We validated the advantage of up-scaling LMs to larger models supported by bigger data by predicting secondary structure (3-states: Q3=76-84, 8 states: Q8=65-73), sub-cellular localization for 10 cellular compartments (Q10=74) and whether a protein is membrane-bound or water-soluble (Q2=89). Dimensionality reduction revealed that the LM-embeddings from unlabeled data (only protein sequences) captured important biophysical properties governing protein shape. This implied learning some of the grammar of the language of life realized in protein sequences. The successful up-scaling of protein LMs through HPC to larger data sets slightly reduced the gap between models trained on evolutionary information and LMs. Availability ProtTrans: \<a href="https://github.com/agemagician/ProtTrans"\>https://github.com/agemagician/ProtTrans\</a\>Competing Interest StatementThe authors have declared no competing interest.},
URL = {https://www.biorxiv.org/content/early/2020/07/21/2020.07.12.199554},
eprint = {https://www.biorxiv.org/content/early/2020/07/21/2020.07.12.199554.full.pdf},
journal = {bioRxiv}
}
作成者
Created by Ahmed Elnaggar/@Elnaggar_AI | LinkedIn