🚀 BERT基礎日語模型
本倉庫包含一個基於日語維基百科數據集訓練的BERT基礎模型。該模型可用於日語的掩碼填充任務,為日語自然語言處理提供了強大的支持。
🚀 快速開始
首先,安裝依賴項。
$ pip install torch==1.8.0 transformers==4.8.2 sentencepiece==0.1.95
然後使用 transformers.pipeline
來嘗試掩碼填充任務。
>>> import transformers
>>> pipeline = transformers.pipeline("fill-mask", "colorfulscoop/bert-base-ja", revision="v1.0")
>>> pipeline("専門として[MASK]を専攻しています")
[{'sequence': '専門として工學を専攻しています', 'score': 0.03630176931619644, 'token': 3988, 'token_str': '工學'}, {'sequence': '専門として政治學を専攻しています', 'score': 0.03547220677137375, 'token': 22307, 'token_str': '政治學'}, {'sequence': '専門として教育を専攻しています', 'score': 0.03162326663732529, 'token': 414, 'token_str': '教育'}, {'sequence': '専門として経済學を専攻しています', 'score': 0.026036914438009262, 'token': 6814, 'token_str': '経済學'}, {'sequence': '専門として法學を専攻しています', 'score': 0.02561848610639572, 'token': 10810, 'token_str': '法學'}]
⚠️ 重要提示
指定 revision
選項,通過 transformers.pipeline
或 transformers.AutoModel.from_pretrained
下載模型時,建議指定 revision
選項以確保可重複性。
✨ 主要特性
- 基於維基百科訓練:使用日語維基百科數據集進行訓練,數據豐富且具有廣泛的知識覆蓋。
- 特定的詞彙表大小:詞彙表大小設置為32,000,適應日語的語言特點。
- 穩定的分詞器:使用
transformers.DebertaV2Tokenizer
作為分詞器,確保分詞行為的一致性。
📦 安裝指南
安裝依賴項:
$ pip install torch==1.8.0 transformers==4.8.2 sentencepiece==0.1.95
💻 使用示例
基礎用法
import transformers
pipeline = transformers.pipeline("fill-mask", "colorfulscoop/bert-base-ja", revision="v1.0")
result = pipeline("専門として[MASK]を専攻しています")
print(result)
📚 詳細文檔
模型描述
模型架構與BERT基礎模型相同(隱藏層大小:768,隱藏層數:12,注意力頭數:12,最大位置嵌入:512),但詞彙表大小不同。詞彙表大小設置為32,000,而不是原始的30,522。模型使用 transformers.BertForPreTraining
。
分詞器描述
使用 SentencePiece 分詞器。訓練時,分詞器模型使用從訓練集中提取的1,000,000個樣本進行訓練,詞彙表大小設置為32,000。由於日語單詞之間沒有空格分隔,add_dummy_prefix
選項設置為 True
。訓練後,模型導入到 transformers.DebertaV2Tokenizer
中,因為它支持SentencePiece模型,並且當 use_fast
選項設置為 True
或 False
時,其行為一致。
訓練
訓練細節如下:
- 每256個樣本進行一次梯度更新(批量大小:8,累積梯度批次:32)
- 梯度裁剪範數為1.0
- 學習率從0開始,在前10,000步線性增加到0.0001
- 訓練集包含約2000萬個樣本。由於80k * 256 ~ 20M,1個epoch大約有80k步。
訓練在Ubuntu 18.04.5 LTS上使用一塊RTX 2080 Ti進行。訓練持續到驗證損失變差為止,總共訓練步數約為214k。測試集損失為2.80。訓練代碼可在 GitHub倉庫 中找到。
信息表格
屬性 |
詳情 |
模型類型 |
BERT基礎模型,詞彙表大小為32,000,使用 transformers.BertForPreTraining |
訓練數據 |
2021年6月20日的日語維基百科數據集,根據 知識共享署名 - 相同方式共享3.0 許可發佈 |
🔧 技術細節
本模型在訓練過程中,採用了特定的梯度更新策略和學習率調整方法。梯度每256個樣本更新一次,學習率在前10,000步從0線性增加到0.0001。在選擇分詞器時,考慮到日語的語言特點和分詞行為的一致性,最終選擇了 transformers.DebertaV2Tokenizer
。訓練在特定的硬件和操作系統環境下進行,以確保模型的穩定性和性能。
📄 許可證
版權所有 (c) 2021 Colorful Scoop。本倉庫中包含的所有模型均根據 知識共享署名 - 相同方式共享3.0 許可。
⚠️ 重要提示
該模型可能會生成與訓練數據相似的文本、不真實的文本或有偏差的文本。使用該模型需自行承擔風險。Colorful Scoop不對模型的任何輸出提供保證,也不對因模型輸出而產生的任何問題、損失或損害承擔責任。
本模型使用以下數據作為訓練數據:
- 名稱:ウィキペディア (Wikipedia): フリー百科事典
- 來源:https://ja.wikipedia.org/
- 許可證:知識共享署名 - 相同方式共享3.0
- 鏈接:https://ja.wikipedia.org/