模型:

alabnii/jmedroberta-base-sentencepiece-vocab50000

英文

alabnii/jmedroberta-base-sentencepiece-vocab50000

模型描述

这是一个基于日本科学技术振兴机构(JST)收集的医学科学学术文章预训练的日语RoBERTa基础模型。

该模型遵循 Creative Commons 4.0 International License (CC BY-NC-SA 4.0) 许可协议发布。

参考文献

Ja:

@InProceedings{sugimoto_nlp2023_jmedroberta,
    author =    "杉本海人 and 壹岐太一 and 知田悠生 and 金沢輝一 and 相澤彰子",
    title =     "J{M}ed{R}o{BERT}a: 日本語の医学論文にもとづいた事前学習済み言語モデルの構築と評価",
    booktitle = "言語処理学会第29回年次大会",
    year =      "2023",
    url =       "https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/P3-1.pdf"
}

En:

@InProceedings{sugimoto_nlp2023_jmedroberta,
    author =    "Sugimoto, Kaito and Iki, Taichi and Chida, Yuki and Kanazawa, Teruhito and Aizawa, Akiko",
    title =     "J{M}ed{R}o{BERT}a: a Japanese Pre-trained Language Model on Academic Articles in Medical Sciences (in Japanese)",
    booktitle = "Proceedings of the 29th Annual Meeting of the Association for Natural Language Processing",
    year =      "2023",
    url =       "https://www.anlp.jp/proceedings/annual_meeting/2023/pdf_dir/P3-1.pdf"
}

用于预训练的数据集

  • 摘要(训练集:1.6GB(10M句子),验证集:0.2GB(1.3M句子))
  • 摘要和正文(训练集:0.2GB(1.4M句子))

如何使用

输入文本必须提前转换为全角字符(全角)。

您可以按照以下方式使用此模型进行遮蔽语言建模:

from transformers import AutoModelForMaskedLM, AutoTokenizer

model = AutoModelForMaskedLM.from_pretrained("alabnii/jmedroberta-base-sentencepiece-vocab50000")
model.eval()
tokenizer = AutoTokenizer.from_pretrained("alabnii/jmedroberta-base-sentencepiece-vocab50000")

texts = ['この患者は[MASK]と診断された。']
inputs = tokenizer.batch_encode_plus(texts, return_tensors='pt')
outputs = model(**inputs)
tokenizer.convert_ids_to_tokens(outputs.logits[0][1:-1].argmax(axis=-1))
# ['▁この', '患者は', 'SLE', '▁', 'と診断された', '。']

或者,您可以使用 Fill-mask pipeline

from transformers import pipeline
fill = pipeline("fill-mask", model="alabnii/jmedroberta-base-sentencepiece-vocab50000", top_k=10)
fill("この患者は[MASK]と診断された。")
#[{'score': 0.021247705444693565,
#  'token': 3592,
#  'token_str': 'SLE',
#  'sequence': 'この患者はSLE と診断された。'},
# {'score': 0.012531018815934658,
#  'token': 16813,
#  'token_str': 'MSA',
#  'sequence': 'この患者はMSA と診断された。'},
# {'score': 0.01097362581640482,
#  'token': 41130,
#  'token_str': 'MELAS',
#  'sequence': 'この患者はMELAS と診断された。'},
# ...

您可以在下游任务中对此模型进行微调。

另请参阅示例 Colab 笔记本: https://colab.research.google.com/drive/1D-FNO01XX82pL3So5GWfi2gVo338aAMo?usp=sharing

分词

每个句子都会通过 SentencePiece (Unigram) 进行分词。

词汇表

词汇表由 SentencePiece (Unigram) 引导生成,包含50000个标记。

训练过程

在预训练过程中使用了以下超参数:

  • 学习率:0.0001
  • 训练批次大小:32
  • 评估批次大小:32
  • 种子:42
  • 分布式类型:多GPU
  • 设备数量:8
  • 总训练批次大小:256
  • 总评估批次大小:256
  • 优化器:Adam(betas=(0.9,0.999),epsilon=1e-08)
  • lr_scheduler_type:linear
  • lr_scheduler_warmup_steps:20000
  • 训练步骤:2000000
  • 混合精度训练:Native AMP

注意:为什么我们将模型称为RoBERTa而不是BERT?

如配置文件所示,我们的模型基于HuggingFace的BertForMaskedLM类。然而,我们之所以将模型称为RoBERTa,是出于以下原因:

  • 我们仅使用最大序列长度(=512)的标记进行训练。
  • 我们移除了下一句预测(NSP)的训练目标。
  • 我们引入了动态遮蔽(在每次训练迭代中更改遮蔽模式)。

致谢

本工作得到了日本国家科学技术振兴机构(JST)AIP三边人工智能研究(Grant Number: JPMJCR20G9)以及Joint Usage/Research Center for Interdisciplinary Large-scale Information Infrastructures (JHPCN)(项目ID:jh221004)的支持。在此研究中,我们使用了“ mdx: a platform for the data-driven future ”。