gpt4 book ai didi

nlp - 段落向量或 Doc2vec 模型大小

转载 作者:行者123 更新时间:2023-12-04 18:20:04 25 4
gpt4 key购买 nike

我正在使用 deeplearning4j java 库构建维度为 100 的段落向量模型 (doc2vec)。我正​​在使用文本文件。它有大约 1700 万行,文件大小为 330 MB。我可以训练模型并计算段落向量,这会给出相当不错的结果。

问题是,当我尝试使用 WordVectorSerializer.writeParagraphVectors(dl4j 方法)保存模型(通过写入磁盘)时,它需要大约 20 GB 的空间。当我使用 native java 序列化程序时大约 30GB。

我想可能是模型的尺寸对于那么多数据来说太大了。对于 300 MB 的文本数据,模型大小 20GB 是否合理?

也欢迎在其他库/语言中使用过 doc2vec/段落向量的人发表评论。

谢谢!

最佳答案

我不熟悉 dl4j 实现,但模型大小主要取决于唯一词向量/文档向量的数量,以及所选的向量大小。

(330MB/1700 万)意味着您的每个文档平均只有 20 个字节——对于 Doc2Vec 来说非常小!

但是,例如,如果您正在为每个文档训练一个 300 维的文档向量,并且每个维度(通常)是一个 4 字节 float ,那么 (1700 万 * 300 维 * 4 字节/维) = 20.4GB。然后会有更多空间用于词向量和模型内部权重/词汇等,因此您报告的存储大小并非难以置信。

对于您所描述的大小,也存在过度拟合的巨大风险 - 如果使用 300 维,您会将 <20 字节源 Material 的文档建模为 (300*4=) 1200 字节文档向量.

在某种程度上,这使得模型倾向于一个巨大的、内存输入的查找表,因此不太可能捕获有助于理解训练文档或新文档的可概括模式。有效的学习通常看起来有点像压缩:将源 Material 建模为更小但更突出的东西。

关于nlp - 段落向量或 Doc2vec 模型大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50945820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com