在一篇题为" Machine Learning at the Limit," Canny等。人。报告显着提高word2vec处理速度。
我正在使用本文中使用的BIDMach库,找不到任何解释Word2Vec如何实现的资源或如何在此框架中使用它。
回购中有几个脚本:
我已经尝试过运行它们(在构建引用的tparse2.exe
文件之后)但没有成功。
我已经尝试修改它们以让它们运行但除了错误之外什么也没有。
我通过电子邮件发送了作者,并发布了an issue on the github repo,但没有得到任何回复。我只有其他人有同样的麻烦,谁说他运行但速度比新GPU硬件报告的速度慢得多。
我已经搜遍了所有试图找到使用过此库以达到这些速度而没有运气的人。这个库中有多个引用作为最快的实现,并引用了文章中的数字:
当我搜索一个类似的库(gensim)和运行它所需的import
代码时,I find thousands of results and tutorials但搜索BIDMach代码yields only the BIDMach repo。
这个BIDMach实施肯定是最好的声誉,但是那里的任何人都可以告诉我如何使用它吗?
我想要做的就是运行一个简单的培训流程,将其与我自己硬件上的其他一些实现进行比较。
我可以找到的这个概念的每个其他实现都适用于original shell script test file,provides actual instructions或provides shell scripts of their own到test。
更新: 该库的作者添加了额外的shell脚本以使前面提到的脚本运行,但它们究竟是什么意思或它们如何工作仍然是一个完全谜,我无法理解如何让word2vec训练程序运行我自己的数据。
编辑(赏金)
我会向任何可以解释我如何使用我自己的语料库(text8会很棒),然后训练模型,然后保存输出向量和词汇的任何人给予赏金。 Omar Levy's Hyperwords可以读取的文件。
这正是原始C实现对参数-binary 1 -output vectors.bin -save-vocab vocab.txt
这也是英特尔的实现以及其他CUDA实现等,因此这是一种生成可以轻松与其他版本进行比较的好方法......
更新(赏金已过期而无回答)
John Canny更新了repo中的一些脚本,并添加了一个fmt.txt
文件,从而可以运行repo中包的测试脚本。
但是,我尝试使用 text8 语料库运行此操作会使其高位字测试的准确率接近0%。
在十亿字基准(这就是repo脚本现在所做的)上运行培训过程,也会在高字测试中产生低于平均水平的准确度。
所以,要么图书馆从未在这些测试中产生准确性,要么我仍然在我的设置中遗漏了一些东西。