许可证:Apache-2.0
流水线标签:填充掩码
标签:
小部件示例:
bert-base-kor-v1
- 基于Bert架构的韩语基础模型(从头训练)
- 使用AI Hub网络语料库的韩语文本数据(约5200万文本)进行NSP(下一句预测)和MLM(掩码语言建模)训练
- 词汇表:10,022个词条(BertTokenizer)
使用方法(HuggingFace Transformers)
掩码预测示例
from transformers import AutoTokenizer, AutoModel, BertForMaskedLM
import torch
import torch.nn.functional as F
tokenizer = AutoTokenizer.from_pretrained('bongsoo/bert-small-kor-v1', do_lower_case=False)
model = BertForMaskedLM.from_pretrained('bongsoo/bert-small-kor-v1')
texts = [
'韩国首都是[MASK]',
'法国首都是[MASK]',
'忠武公李舜臣是[MASK]时代最杰出的将领'
]
tokenized_input = tokenizer(texts, max_length=128, truncation=True, padding='max_length', return_tensors='pt')
outputs = model(**tokenized_input)
logits = outputs.logits
mask_indices = [tokens.tolist().index(tokenizer.mask_token_id) for tokens in tokenized_input['input_ids']]
for idx, mask_pos in enumerate(mask_indices):
predicted_token_id = torch.argmax(F.softmax(logits[idx], dim=1)[mask_pos]).item()
predicted_token = tokenizer.convert_ids_to_tokens(predicted_token_id)
print(f"\n*输入: {texts[idx]}")
print(f"*预测结果: {predicted_token} (ID: {predicted_token_id})")
示例输出:
*输入: 韩国首都是[MASK]
*预测结果: 日本 (ID: 2128)
*输入: 法国首都是[MASK]
*预测结果: ' (ID: 10)
*输入: 忠武公李舜臣是[MASK]时代最杰出的将领
*预测结果: ' (ID: 10)
训练细节
掩码语言建模训练
- 模型架构: Bert-base
- 训练数据: AI Hub网络韩语语料库
- 超参数:
- 学习率: 1e-4
- 权重衰减: 0.0
- 批大小: 256
- 最大标记长度: 160
- 训练轮次: 8
- 大小写转换: 开启
- 词汇量: 10,022词条
- 硬件消耗: 单GPU训练171小时(显存占用18.5GB/24GB)
- 训练代码: GitHub链接
模型配置
{
"架构类型": ["BertForPreTraining"],
"注意力概率丢弃率": 0.1,
"分类器丢弃率": null,
"隐藏层激活函数": "gelu",
"隐藏层丢弃率": 0.1,
"隐藏层维度": 512,
"初始化范围": 0.02,
"中间层维度": 2048,
"层归一化epsilon值": 1e-12,
"最大位置编码长度": 512,
"模型类型": "bert",
"注意力头数量": 8,
"隐藏层层数": 4,
"填充标记ID": 0,
"位置嵌入类型": "绝对位置",
"PyTorch数据类型": "float32",
"Transformers版本": "4.21.2",
"类型词汇表大小": 2,
"使用缓存": true,
"词汇表大小": 10022
}
引用与作者
开发者: bongsoo