textlmdatabunch记忆问题语言模型fastai



我有一个数据集,其中有4500万行数据。我有三个6GB RAM GPU。我正在尝试在数据上训练语言模型。

为此,我试图将数据加载为Fastai数据堆。但是由于内存问题,这部分总是失败。

data_lm = TextLMDataBunch.from_df('./', train_df=df_trn, 
valid_df=df_val, bs=10)

我如何处理这个问题?

使用此功能时,将数据框加载到内存中。由于您的数据框架非常大,因此会导致您的内存错误。Fastai用大块处理令牌化,因此您仍然应该能够将文本归为象征。

这是您应该尝试的两件事:

  • 向您的 TextLMDataBunch.from_df添加一个块的参数(默认值为10k),因此令牌化过程需要更少的内存。

  • 如果这还不够,我建议不要将整个数据框加载到内存中。不幸的是,即使您使用TextLMDataBunch.from_folder,它也只会加载完整的数据帧并将其传递给TextLMDataBunch.from_df,也可能必须创建自己的数据构建构建器。如果您需要帮助,请随时发表评论。

最新更新