最先进的希伯来语语言模型。 基于 Google 的 BERT 架构 (Devlin et al. 2018)。
from openmind import pipeline, AutoTokenizer, is_torch_npu_available
from openmind_hub import snapshot_download
import torch.nn.functional as F
from torch import Tensor
import openmind
import torch
import argparse
import time
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_name_or_path",
type=str,
help="Path to model",
default="jeffding/alephbert-base-openmind",
)
args = parser.parse_args()
return args
def main():
args = parse_args()
model_path = args.model_name_or_path
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
start_time = time.time()
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=True)
pipe = pipeline('fill-mask', model=model_path, torch_dtype=torch.bfloat16, device_map=device)
MASK_TOKEN = tokenizer.mask_token
result = pipe("Hello I'm a {} model.".format(MASK_TOKEN))
print(result)
end_time = time.time()
print(f"硬件环境:{device},推理执行时间:{end_time - start_time}秒")
if __name__ == "__main__":
main()from transformers import BertModel, BertTokenizerFast
alephbert_tokenizer = BertTokenizerFast.from_pretrained('onlplab/alephbert-base')
alephbert = BertModel.from_pretrained('onlplab/alephbert-base')
# if not finetuning - disable dropout
alephbert.eval()在 DGX 机器(8 块 V100 GPU)上使用标准的 Hugging Face 训练流程进行训练。
由于我们的大部分训练数据基于推文,因此决定首先仅使用掩码语言模型(Masked Language Model)损失进行优化。
为了优化训练时间,我们根据最大 token 数量将数据分为 4 个部分:
每个部分首先以初始学习率 1e-4 训练 5 个 epoch。然后,每个部分再以初始学习率 1e-5 训练 5 个 epoch,总训练轮次为 10 个 epoch。
总训练时间为 8 天。