🚀 大小写敏感的电池专用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