Paddle 关于embeding查表耗时问题

mspsb9vt  于 2022-12-31  发布在  其他
关注(0)|答案(5)|浏览(144)

请提出你的问题 Please ask your question

请问像fluid.layers.embedding这样的embedding查表操作,内部是否会经过hash之类的操作;耗时是否和embedding表的规模线性相关?即是否词典越大,会导致embedding查表操作增加?

rjee0c15

rjee0c151#

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看 官网API文档常见问题历史IssueAI社区 来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

ippsafx7

ippsafx72#

paddle的embedding没有hash操作,输入的id=x就直接查询2维embeeding表的第x行,
所以单机情况当embedding表过大确实会比较慢。
如果词表范围过大,可以把行数设置成一个相对比较小的值N,自己把id hash到[0,N)之间再查询embedding表

另外 fluid.layers.embedding这个api已经废弃了,
可以尝试paddle.nn.Embedding

uqjltbpv

uqjltbpv3#

@seemingwang 你好,没太理解【单机情况当embedding表过大确实会比较慢】这句话的含义。如果【输入的id=x就直接查询2维embeeding表的第x行】,时间复杂度应该是O(1)的操作?那么为什么耗时会和emb表规模有关?

t1qtbnec

t1qtbnec4#

不仅仅是复杂度问题,N太大的话,embedding表也会特别大,那么存储空间不足的时候,就会引入cache命中率低的问题导致性能不足

kfgdxczn

kfgdxczn5#

@seemingwang 也就是说查embedding表涉及cache查找的操作吗?这里的【N太大的话】有具体参考范围吗?像几十w这样的规模算【太大】吗

相关问题