该软件包包含 GloVe 和 Mittens 的快速 TensorFlow 和 NumPy 实现。
通过矢量化 GloVe 目标函数,我们提供了超过其他 Python 实现的大量速度增益(CPU 上为 10 倍,GPU 上为 60 倍)。 请参阅下面的速度部分。
需要注意的是,我们的实现仅适用于适度的词汇表(最多约 20k tokens 应该没问题),因为共生矩阵必须保存在内存中。
对目标进行矢量化也表明它适用于改进术语,鼓励表示保持接近预训练的嵌入。 这对于需要专门表示但缺乏足够数据从头开始训练的域非常有用。Mittens 从通用预训练表示开始,并将它们调整到专门的域。
Github 链接:
https://github.com/roamanalytics/mittens
依赖
Mittens 只需要 numpy。不过,如果已经安装好了 TensorFlow,那么 Mittens 就会用 TensorFlow 替代 numpy。两者使用同样的优化器和成本函数,唯一的区别是,使用 TensorFlow 时会显示更小的 CPU 速率和更大的 GPU 速率。
用户安装
安装 Mittens 最简单的方式是用 pip:
pip install -U mittens
你也可以通过复制该库并将其添加到 Python 路径来安装它,在这之前请安装numpy。
请注意,这两种方法都不会自动安装 TensorFlow,请参阅其说明:
https://www.tensorflow.org/install/
我们使用大约 90% 稀疏的随机生成的共现矩阵来比较各种词汇每个时期速度(以秒为单位)。正如我们在这里看到的,在 GPU上 运行时,其性能与官方用 C 语言实现的版本(https://github.com/stanfordnlp/GloVe)相比具有竞争力。
对于更密集的共生矩阵,Mittens 将具比官方 C 实现版本更具优势,因为它的速度不依赖于稀疏性。
号外号外~
一个专注于
AI技术发展和AI工程师成长的求知求职社区
诞生啦!
欢迎大家扫码体验
Word2Vec —— 深度学习的一小步,自然语言处理的一大步
▼▼▼