TextLMDataBunch 内存问题 语言模型 Fastai

TextLMDataBunch Memory issue Language Model Fastai

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

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

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

我该如何处理这个问题?

当你使用这个函数时,你的Dataframe被加载到内存中。由于您有一个非常大的数据框,这会导致您的内存错误。 Fastai 使用块大小处理标记化,因此您仍然应该能够对文本进行标记化。

以下是您应该尝试的两件事:

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

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