语言模型通过run_language_modeling.py进行BERT的微调-减少内存使用量?

时间:2020-07-07 21:29:10

标签: huggingface-transformers

我正在按照此网页(https://github.com/huggingface/transformers/tree/master/examples/language-modeling)上的说明对我自己的语料库上的预训练BERT模型进行微调。我设法使用WikiText-103数据集(https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-v1.zip)运行该示例,该数据集解压缩后大约需要550MB。我设法用48GB内存和K80运行此示例。

然后,我尝试使用自己的语料库(比原来大20倍)来执行此操作。我知道用相同的硬件配置是不可能的,因此我测试了将语料库分块成不同的相等大小,以找出语言模型微调可以在128GB内存+ K80设置上运行的最大语料库大小。

如下面的注释所示,我还使用了以下设置:

  • use_fast =真正使用“更快”的令牌生成器
  • 切换'--line_by_line'

但是使用这些设置,我可以容纳的最大语料库为3.5GB块,用于128GB内存和K80。除此之外,该程序在执行INFO - transformers.data.datasets.language_modeling - Creating features from dataset file时即以OOM停止,即,它甚至还没有开始GPU处理。

我想稍微了解一下语言模型微调代码的工作原理-数据集与内存的比率是多少,以及是否可以对其进行配置,以便它不使用太多内存来处理数据集。

非常感谢

0 个答案:

没有答案