🚀 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許可證。