Closed Alan000 closed 4 years ago
你是不是更改了ngram的值,这个值由默认值1改为其他值的时候会导致模型大接近1000倍
MAX_VOCAB_SIZE这个和你内存溢出没有直接关系,@rxy1212可能是对的。 每个fasttext模型消息内存的大小和模型文件有关,你导入多个可能导致溢出, 如果是测试环境,你可以把c语言的模型转换为fasttext4j自由的java格式,然后通过内存映射的方式读入模型,只是查询速度会慢
ngram值为1,没有动。加载一个或少量模型的时候是不会报错,我这边出错的场景是顺序一次性加载多个(有100多个)已经训练好的fasttext bin模型文件。加载完一部分后就会内存溢出错误,定位错误的位置是在MAX_VOCAB_SIZE这个地方。 单个模型都很小,总模型文件加起来32MB。 kotlin语言不太了解,我的意思是:是不是因为每个模型都申请这么大的内存空间,导致多个模型加载会内存溢出。
MAX_VOCAB_SIZE这个不可以设置小,因为他是一个hash桶。 另外你这个fasttext模型是用来分类的吗?如果是分类模型,那么你可以使用乘积量化来压缩模型看看。 你这个场景真的很特别,100多个模型?
我也发现了这个问题 当应用中需要同时加载多个模型时 会占用很多内存 我的应用也需要加载19个分类器 每个分类器模型文件很小 但是全部加载就报内存溢出 而且load出来的model不能序列化 想缓存到硬盘都不行
发自我的 iPhone
在 2019年3月7日,22:31,jimi notifications@github.com 写道:
MAX_VOCAB_SIZE这个不可以设置小,因为他是一个hash桶。 另外你这个fasttext模型是用来分类的吗?如果是分类模型,那么你可以使用乘积量化来压缩模型看看。 你这个场景真的很特别,100多个模型?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
模型是java版本的么,还是c语言版本。我考虑是不是能共用其中的词典部分,来减少内存占用
java版的有这个问题
发自我的 iPhone
在 2019年3月9日,07:39,jimi notifications@github.com 写道:
模型是java版本的么,还是c语言版本。我考虑是不是能共用其中的词典部分,来减少内存占用
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
<dependency>
<groupId>com.mayabot.mynlp</groupId>
<artifactId>fastText4j</artifactId>
<version>3.1.0</version>
</dependency>
已经修复这个问题,还可以指定这个参数
你好,代码中的MAX_VOCAB_SIZE = 30000000默认值是否设置过大,当我导入多个fasttext模型的时候就会导致内存溢出(预估了下这个参数大小已经远超物理机内存,而实际模型中的词语数量远达不到这个大小)。有没有什么解决办法,或开放配置参数。