🚀 RetrievaBERT模型
RetrievaBERT 是一款使用Megatron - LM进行预训练的Transformer编码器,专为日语使用场景而设计,能有效解决日语自然语言处理任务中的诸多问题,为相关应用提供强大的语言理解能力。
🚀 快速开始
RetrievaBERT模型可直接使用或进行微调以适配下游任务。若直接使用,需将 trust_remote_code
设置为 True
;若进行微调,可使用Hugging Face的AutoModels类。
✨ 主要特性
新增内容
- 2024年11月 (
v1.0.1
):修复了模型参数的一个bug。
- 修复了
up_proj
的偏置使用 gate
的偏置进行初始化的问题。
模型详情
模型描述
RetrievaBERT 是使用Megatron - LM进行预训练的Transformer编码器,专为日语使用场景设计。与传统BERT模型相比,该模型具有以下高级特性:
- PreNorm:提高训练过程中的稳定性。
- SwiGLU:增强激活函数,提升性能。
- 分组查询注意力(多查询注意力):高效的注意力机制。
- 最大序列长度:2048个标记,支持更长的上下文。
- 参数数量:13亿个参数。
- 预训练目标:仅进行掩码语言模型(MLM)训练,不进行下一句预测(NSP)。
- 标记类型ID:该模型不使用标记类型ID。
模型来源
- 开发者:Retrieva公司。
- 模型类型:基于MegatronBERT架构。
- 语言(NLP):主要为日语(可选支持英语)。
- 许可证:Apache 2.0
用途
该模型可作为掩码语言模型(MLM)使用,但主要用于在下游任务上进行微调。根据具体使用场景,可参考以下相应部分。
直接使用
此模型通过掩码语言模型进行预训练,使用的掩码标记为 <MASK|LLM - jp>
。由于RetrievaBERT使用了自定义模型实现,需要将 trust_remote_code
设置为 True
。
💻 使用示例
基础用法
from transformers import AutoModelForMaskedLM, AutoTokenizer, pipeline
model_id = "retrieva-jp/bert-1.3b"
model = AutoModelForMaskedLM.from_pretrained(model_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)
pipe = pipeline("fill-mask", model=model, tokenizer=tokenizer)
text = "こんにちは!私の名前は<MASK|LLM-jp>です!"
print(pipe(text))
高级用法
RetrievaBERT与Hugging Face的AutoModels兼容,若要针对特定任务对其进行微调,可使用相应的AutoModel类,详细配置请参考 config.json
文件。
训练详情
训练数据
RetrievaBERT模型在以下五个数据集的组合上进行预训练:
模型使用上述数据集在1800亿个标记上进行训练。
训练过程
模型在4到32个H100 GPU上进行训练,批量大小为1024。采用了类似于序列长度预热的课程学习方法,按以下序列长度和步数进行训练:
- 序列长度为128:31000步。
- 序列长度为256:219000步。
- 序列长度为512:192000步。
- 序列长度为2048:12000步。
训练超参数
模型使用以下超参数进行训练:
属性 |
详情 |
学习率 |
1.5e - 4 |
学习率衰减方式 |
线性 |
学习率预热比例 |
0.01 |
最小学习率 |
1e - 6 |
浮点表示 |
BF16 |
评估
对以下模型进行微调,并在JGLUE开发集上进行评估。根据JGLUE论文为每个模型和任务调整学习率和训练轮数。
模型 |
MARC - ja/acc |
JSTS/pearson |
JSTS/spearman |
JNLI/acc |
JSQuAD/EM |
JSQuAD/F1 |
JComQA/acc |
tohoku - nlp/bert - base - japanese - v3 |
0.957 |
0.914 |
0.876 |
0.906 |
0.878 |
0.946 |
0.849 |
tohoku - nlp/bert - large - japanese - v2 |
0.959 |
0.916 |
0.877 |
0.901 |
0.884 |
0.951 |
0.867 |
ku - nlp/deberta - v3 - base - japanese |
0.958 |
0.925 |
0.890 |
0.902 |
0.925 |
0.910 |
0.882 |
retrieva - jp/bert - 1.3b |
0.959 |
0.917 |
0.881 |
0.898 |
0.875 |
0.874 |
0.827 |
🔧 技术细节
模型架构
RetrievaBERT模型基于BERT,具有以下超参数:
- 层数:48
- 隐藏层大小:1536
- 前馈网络隐藏层大小:4096
- 注意力头数量:24
- 位置嵌入最大长度:2048
与原始BERT的主要区别在于:
- PreNorm:提高训练过程中的稳定性。
- SwiGLU:增强激活函数,提升性能。
- 分组查询注意力(多查询注意力):高效的注意力机制。
计算基础设施
TSUBAME 4
该模型基于[TSUBAME深度学习迷你营](https://www.t4.gsic.titech.ac.jp/en/minicamp - dl - 202406)的结果。
软件
模型使用[Megatron - LM](https://github.com/NVIDIA/Megatron - LM)进行训练。
更多信息
https://note.com/retrieva/n/n715bea2c2cd1(日语)
模型卡片作者
Satoru Katsumata, Daisuke Kimura, Jiro Nishitoba
模型卡片联系方式
pr@retrieva.jp
📄 许可证
本模型采用Apache 2.0许可证。