我有一个包含4500万行数据的数据集。我有三个6gb ram gpu。我正在尝试在数据上训练语言模型。
为此,我正在尝试将数据作为fastai数据束加载。但是这部分总是由于内存问题而失败。
data_lm = TextLMDataBunch.from_df('./', train_df=df_trn,
valid_df=df_val, bs=10)
如何处理此问题?
答案 0 :(得分:0)
使用此功能时,您的数据帧将加载到内存中。由于您的数据帧很大,因此会导致内存错误。 Fastai使用块大小处理令牌化,因此您仍然应该能够令牌化文本。
您应该尝试两件事:
在TextLMDataBunch.from_df
中添加一个chunksize参数(默认值为10k),以便令牌化过程需要更少的内存。
如果这还不够,我建议不要将整个数据帧加载到内存中。不幸的是,即使您使用TextLMDataBunch.from_folder
,它只是加载完整的DataFrame并将其传递给TextLMDataBunch.from_df
,您可能也必须创建自己的DataBunch构造函数。如果您需要帮助,请随时发表评论。