TextLMDataBunch内存问题语言模型Fastai

时间:2019-02-26 16:54:04

标签: nlp out-of-memory pytorch language-model fast-ai

我有一个包含4500万行数据的数据集。我有三个6gb ram gpu。我正在尝试在数据上训练语言模型。

为此,我正在尝试将数据作为fastai数据束加载。但是这部分总是由于内存问题而失败。

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

如何处理此问题?

1 个答案:

答案 0 :(得分:0)

使用此功能时,您的数据帧将加载到内存中。由于您的数据帧很大,因此会导致内存错误。 Fastai使用块大小处理令牌化,因此您仍然应该能够令牌化文本。

您应该尝试两件事:

  • TextLMDataBunch.from_df中添加一个chunksize参数(默认值为10k),以便令牌化过程需要更少的内存。

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