使用大于 RAM 的数据集训练 Spacy 模型

Posted

技术标签:

【中文标题】使用大于 RAM 的数据集训练 Spacy 模型【英文标题】:Train Spacy model with larger-than-RAM dataset 【发布时间】:2022-01-21 14:09:46 【问题描述】:

我要求this question 更好地了解使用序列化到磁盘的DocBins 训练Spacy 模型与通过自定义数据加载功能加载Example 实例之间的一些细微差别。目标是训练一个 Spacy NER 模型,其中包含更多可以放入 RAM 的数据(或至少以某种方式避免将整个文件加载到 RAM 中)。尽管自定义数据加载器似乎是完成此任务的一种特定方式,但我写这个问题是为了更笼统地问:

如何在训练期间不加载整个训练数据集文件的情况下训练 Spacy 模型?

【问题讨论】:

【参考方案1】:

您唯一的选择是使用自定义数据加载器或设置max_epochs = -1。见the docs。

【讨论】:

谢谢,@polm23。文档说:-1 means stream train corpus [] rather than loading in memory with no shuffling within the training loop. 会设置设置max_epochs = -1 并使用.spacy 文件(或许多.spacy 文件)在没有自定义数据加载器的情况下流式传输训练数据吗? 是的,它将流式传输数据。

以上是关于使用大于 RAM 的数据集训练 Spacy 模型的主要内容,如果未能解决你的问题,请参考以下文章

为 SpaCy NER 格式化训练数据集

使用自定义数据集训练 SpaCy NER

使用 Spacy 对新闻文章进行文本分类

大数据集导致 CNN 训练超出 RAM

将 NER 训练数据转换为 Spacy 训练数据格式

Spacy 从训练模型中提取命名实体关系