🚀 大小寫敏感的電池專用BERT模型
該模型是在大量電池研究論文語料庫上,以掩碼語言模型(MLM)為目標進行預訓練的。它在
this paper 中被提出,並首次在
this repository 發佈。此模型區分大小寫,例如 "english" 和 "English" 會被視為不同內容。
🚀 快速開始
BatteryOnlyBERT 模型可直接用於掩碼語言建模任務,也可在下游任務中進行微調。你可以按照以下使用示例中的代碼,快速將其應用到你的項目中。
✨ 主要特性
- 雙向表徵學習:通過掩碼語言模型(MLM)目標進行預訓練,能夠學習句子的雙向表徵,與傳統的循環神經網絡(RNN)和自迴歸模型(如 GPT)不同。
- 適用於下游任務:學習到的英語語言內部表徵可用於提取對下游任務有用的特徵,例如訓練標準分類器。
- 區分大小寫:模型對大小寫敏感,能更好地處理文本中的大小寫信息。
📦 安裝指南
文檔未提及安裝步驟,可參考 transformers 庫官方文檔 進行安裝。
💻 使用示例
基礎用法
你可以使用管道直接進行掩碼語言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='batterydata/batteryonlybert-cased')
>>> unmasker("Hello I'm a <mask> model.")
高級用法
以下是在 PyTorch 中使用該模型獲取給定文本特徵的示例:
from transformers import BertTokenizer, BertModel
tokenizer = BertTokenizer.from_pretrained('batterydata/batteryonlybert-cased')
model = BertModel.from_pretrained('batterydata/batteryonlybert-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/batteryonlybert-cased')
model = TFBertModel.from_pretrained('batterydata/batteryonlybert-cased')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 詳細文檔
模型描述
BatteryOnlyBERT 是一個以自監督方式在大量電池研究論文語料庫上進行預訓練的 Transformer 模型。這意味著它僅在原始文本上進行預訓練,沒有人工進行任何標註(因此可以使用大量公開可用的數據),並通過自動過程從這些文本中生成輸入和標籤。
更準確地說,它以掩碼語言模型(MLM)為目標進行預訓練。對於一個句子,模型會隨機掩碼輸入中 15% 的單詞,然後將整個掩碼後的句子輸入模型,並預測被掩碼的單詞。這與傳統的循環神經網絡(RNN)通常逐個處理單詞不同,也與像 GPT 這樣的自迴歸模型內部掩碼未來標記不同。這使得模型能夠學習句子的雙向表徵。
通過這種方式,模型學習到英語語言的內部表徵,可用於提取對下游任務有用的特徵:例如,如果你有一個帶標籤句子的數據集,你可以使用 BERT 模型生成的特徵作為輸入,訓練一個標準分類器。
訓練數據
BatteryOnlyBERT 模型僅在電池論文的全文上進行預訓練。論文語料庫包含來自 2000 年至 2021 年 6 月期間發表的 400,366 篇電池研究論文的 18.7 億個標記,這些論文來自皇家化學學會(RSC)、愛思唯爾(Elsevier)和施普林格(Springer)等出版商。DOI 列表可在 Github 找到。
訓練過程
預處理
文本先轉換為小寫,然後使用 WordPiece 進行分詞,詞彙表大小為 28,996。模型的輸入形式如下:
[CLS] Sentence A [SEP] Sentence B [SEP]
每個句子的掩碼過程細節如下:
- 15% 的標記被掩碼。
- 在 80% 的情況下,被掩碼的標記被替換為
[MASK]
。
- 在 10% 的情況下,被掩碼的標記被替換為一個與原標記不同的隨機標記。
- 在剩下 10% 的情況下,被掩碼的標記保持不變。
預訓練
模型在 8 個 NVIDIA DGX A100 GPU 上訓練了 1,500,000 步,批次大小為 256。序列長度限制為 512 個標記。使用的優化器是 Adam,學習率為 1e-4,\(\beta_{1} = 0.9\),\(\beta_{2} = 0.999\),權重衰減為 0.01,學習率在 10,000 步內進行預熱,之後線性衰減。
預期用途和限制
你可以使用原始模型進行掩碼語言建模,但它主要用於在下游任務中進行微調。請查看 模型中心,尋找你感興趣任務的微調版本。
請注意,此模型主要旨在用於需要使用整個句子(可能被掩碼)進行決策的任務,如序列分類、標記分類或問答。對於文本生成等任務,你應該考慮使用像 GPT2 這樣的模型。
評估結果
最終損失:1.0614。
🔧 技術細節
- 模型類型:基於 Transformer 的預訓練語言模型
- 訓練數據:來自 2000 年至 2021 年 6 月期間發表的 400,366 篇電池研究論文的全文,包含 18.7 億個標記,論文來自皇家化學學會(RSC)、愛思唯爾(Elsevier)和施普林格(Springer)等出版商。
- 訓練過程:使用掩碼語言模型(MLM)目標進行預訓練,文本先小寫並使用 WordPiece 分詞,詞彙表大小 28,996。在 8 個 NVIDIA DGX A100 GPU 上訓練 1,500,000 步,批次大小 256,序列長度限制為 512 個標記,使用 Adam 優化器,學習率 1e-4 等。
屬性 |
詳情 |
模型類型 |
基於 Transformer 的預訓練語言模型 |
訓練數據 |
來自 2000 年至 2021 年 6 月期間發表的 400,366 篇電池研究論文的全文,包含 18.7 億個標記,論文來自皇家化學學會(RSC)、愛思唯爾(Elsevier)和施普林格(Springer)等出版商。 |
📄 許可證
本項目採用 Apache-2.0 許可證。
👥 作者
- Shu Huang:
sh2009 [at] cam.ac.uk
- Jacqueline Cole:
jmc61 [at] cam.ac.uk
📖 引用
BatteryBERT: A Pre-trained Language Model for Battery Database Enhancement