🚀 BatterySciBERT-casedモデル
このモデルは、SciBERT-casedの重みを初期値として、電池研究論文の大規模コーパスでマスク言語モデリング(MLM)の目的で事前学習されたモデルです。このモデルは
this paperで紹介され、最初に
this repositoryで公開されました。このモデルは大文字と小文字を区別します。例えば、englishとEnglishは異なるものとして扱われます。
✨ 主な機能
BatterySciBERTは、自己教師付き学習方式で電池研究論文の大規模コーパス上で事前学習されたトランスフォーマーモデルで、SciBERT-casedの重みから始まります。つまり、人間によるラベル付けが一切ない生のテキストのみを使用して事前学習され、それらのテキストから自動的に入力とラベルを生成するプロセスが行われます。
具体的には、マスク言語モデリング(MLM)の目的で事前学習されます。文章を入力として受け取り、モデルは入力の中の単語の15%をランダムにマスクし、そのマスクされた文章全体をモデルに通して、マスクされた単語を予測する必要があります。これは、通常単語を順番に見る従来の再帰型ニューラルネットワーク(RNN)や、内部的に未来のトークンをマスクするGPTのような自己回帰モデルとは異なり、文章の双方向的な表現を学習することができます。
このようにして、モデルは英語の内部表現を学習し、それを下流のタスクに役立つ特徴量を抽出するために使用することができます。例えば、ラベル付けされた文章のデータセットがある場合、BERTモデルが生成する特徴量を入力として標準的な分類器を学習させることができます。
📦 インストール
このモデルは、以下のように直接パイプラインで使用することができます。
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='batterydata/batteryscibert-cased')
>>> unmasker("Hello I'm a <mask> model.")
また、以下のようにPyTorchで特定のテキストの特徴量を取得することもできます。
from transformers import BertTokenizer, BertModel
tokenizer = BertTokenizer.from_pretrained('batterydata/batteryscibert-cased')
model = BertModel.from_pretrained('batterydata/batteryscibert-cased')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
TensorFlowでは、以下のように使用できます。
from transformers import BertTokenizer, TFBertModel
tokenizer = BertTokenizer.from_pretrained('batterydata/batteryscibert-cased')
model = TFBertModel.from_pretrained('batterydata/batteryscibert-cased')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 ドキュメント
学習データ
BatterySciBERTモデルは、SciBERT-casedの重みから初期化された後、電池論文の全文のみで事前学習されました。論文コーパスには、2000年から2021年6月までにRoyal Society of Chemistry (RSC)、Elsevier、Springerの出版社から公開された合計400,366件の電池研究論文が含まれています。DOIのリストはGithubで確認できます。
学習手順
前処理
テキストはWordPieceを使用してトークン化され、語彙サイズは31,116です。モデルの入力は以下の形式になります。
[CLS] Sentence A [SEP] Sentence B [SEP]
各文章のマスク手順の詳細は以下の通りです。
- トークンの15%がマスクされます。
- 80%の場合、マスクされたトークンは
[MASK]
に置き換えられます。
- 10%の場合、マスクされたトークンは置き換えるトークンとは異なるランダムなトークンに置き換えられます。
- 残りの10%の場合、マスクされたトークンはそのまま残されます。
事前学習
モデルは、8台のNVIDIA DGX A100 GPUでバッチサイズ256で1,000,000ステップ学習されました。シーケンス長は512トークンに制限されました。使用されたオプティマイザはAdamで、学習率は2e-5、\(\beta_{1} = 0.9\)、\(\beta_{2} = 0.999\)、重み減衰は0.01で、10,000ステップの学習率ウォームアップとその後の学習率の線形減衰が行われました。
使用目的と制限
このモデルは、マスク言語モデリングに生のモデルを使用することができますが、主に下流のタスクで微調整することを目的としています。興味のあるタスクで微調整されたバージョンを探すには、モデルハブを参照してください。
このモデルは、主に文章全体(潜在的にマスクされた)を使用して決定を行うタスク、例えばシーケンス分類、トークン分類、質問応答などで微調整することを目的としています。テキスト生成のようなタスクには、GPT2のようなモデルを探すべきです。
評価結果
最終損失: 1.0505
著者
Shu Huang: sh2009 [at] cam.ac.uk
Jacqueline Cole: jmc61 [at] cam.ac.uk
引用
BatteryBERT: A Pre-trained Language Model for Battery Database Enhancement
📄 ライセンス
このモデルはApache-2.0ライセンスの下で公開されています。