【问题标题】:Training a BERT model and using the BERT embeddings训练 BERT 模型并使用 BERT 嵌入
【发布时间】:2020-12-08 02:46:28
【问题描述】:

我一直在阅读有关 BERT 的信息,并将 BERT 嵌入用于分类任务。我已经阅读了很多文章,但我对它的理解仍然不是 100%(我自学了 NLP,所以我对资源的访问可能会受到一些限制)。首先,我将描述我的任务。

我计划使用 BERT 嵌入进行分类,因为它封装了含义和语言。不幸的是,我的语言(爱尔兰语)没有 BERT 模型,所以我考虑训练自己的模型。我知道 BERT 基本上是 Transformer Encoder 的“扩展”。

这是我的问题/疑问:

  • 我认为这很明显,但要检查一下,预训练的 BERT 嵌入不能应用于不同的语言(标准嵌入模型是在英语的 wiki 数据集上训练的,我认为它可能不适用于其他语言明显的原因)?

  • 我的数据集包含大约 850k 的爱尔兰语句子(大约 2200 万字)。这足以训练一个像样的 BERT 模型吗?我可以找到更多数据,但要在爱尔兰语中获得更多数据会非常困难。

  • 是否会建议在 PyTorch 或 TensorFlow 中“从头开始”制作 BERT 模型,或者 Fairseq 和 OpenNMT 之类的模型好用吗?

对于这样一个不连贯的问题,我深表歉意,但总而言之,我到处都在试图完全理解 BERT,特别是训练过程和仅针对嵌入进行调整。如果这一切都错了,或者只是有建议,我将不胜感激。

【问题讨论】:

  • 通常不建议从头开始训练 Bert,因为它需要一些相当大的资源,除非你想等待数年才能结束训练。您是否研究过多语言模型?
  • @N.Kiefer 是的,正如我发布的那样,我直接从 BERT github repo 中遇到了这样的模型。我将尝试使用这些并四处寻找其他人。只是问一下,你知道其他多语言模型吗?
  • 鉴于您使用 python,您知道transformers 包吗?它还有社区训练的模型here

标签: python tensorflow nlp pytorch bert-language-model


【解决方案1】:

我和你一样,是 NLP 的自知老师。由于您还没有开始(您将拥有如此安静的旅程,不是吗?),我建议您在 tensorflow 库中查看此项目,因为它来自 Google,您将可以更好地访问它的所有内容权力(只是我的看法):

首先,您需要一个词汇文件来进行标记:它是一个文件 (txt),其中包含固定大小的字符串,每行一个。 BERT 使用大约 30.000,因此也要考虑您的数字(数字越大并不意味着精度越高)。 This tutorial of tokenization will help you

如果您对变压器的工作原理有浓厚的兴趣,then check out this one in addition

在从头训练一个新的BERT 模型方面,看看这个问题: Can you train a BERT model from scratch with task specific architecture?

您需要一台功能非常强大的计算机才能执行此操作。如果没有,你会有很多内存问题。另一方面,Tensorflow 允许你训练它的hub 模型(预处理和编码器),所以我认为没有必要重新发明轮子。为此,请使用tensorflow_hub(也安装tensorflow_text,因为我认为您会遇到依赖错误)。我让你在这里the link for tfdev hub of each preprocessing and encoder models of BERT(如果你下载一个,在资产文件夹中你会找到词汇文件)。

850K 句子和 22M 单词可能比原始 BERT 中使用的数据少。如果您的项目只是出于好奇,那么它就足够大了。

希望我对你有所帮助!祝你好运

PD:我也开始使用BERT。你的问题是从去年八月开始的,所以我认为你已经取得了一些进展。我会很感激并有兴趣阅读它!

【讨论】:

    【解决方案2】:

    虽然不在问题的标题中,但您的问题似乎是如何获得爱尔兰语的 BERT 模型。现在提供三种单语爱尔兰语 BERT 模型:

    • 自 2020 年 5 月起,wikibert-ga 接受了爱尔兰维基百科的培训(约 70 万句)。
    • 自2020年8月起,有BERTreach。模型卡说它接受了 4700 万个标记(210 万个句子)的训练,包括爱尔兰语的 PARSEME 口头多词表达语料库,大概使用了未注释的原始部分。此外,他们使用Corpus Crawler 和一个小型语料库,大概来自https://wortschatz.uni-leipzig.de/en/download/Irish(模型卡中的链接不起作用)。
    • 自 2021 年 7 月以来,gaBERT 接受了 790 万个句子的训练,包括不可免费获得的语料库。 (数据源之间存在一些重叠。仅计算明显不相交的源,至少有 470 万句。)

    此外,您可能会对多语言 LaBSE 模型感兴趣,因为它经过专门训练可以对句子的含义进行编码。

    免责声明:我是 gaBERT 论文的合著者。

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 2021-10-22
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多