【Python】爆速の分散表現ライブラリpymagnitudeのインストール

【Python】爆速の分散表現ライブラリpymagnitudeのインストール プログラミング

Word2Vec(Gensim)の速度に不満はありませんか?
もし不満があれば、pymagnitudeの利用をおススメします。

ただし、pymagnitudeの公式サイトは不親切です。
それに、pymagnitudeに関する情報もほとんどありません。

それを補う形で、この記事を書いています。
この記事通りにやれば、pymagnitudeが動作するまでにはたどり着きます。

本記事の内容

  • pymagnitudeとは?
  • pymagnitudeのシステム要件
  • pymagnitudeのインストール
  • pymagnitudeの動作確認

それでは、上記に沿って解説していきます。

pymagnitudeとは?

自然言語処理では、単語をプログラムで扱えるようにベクトル化します。
そのように表すことを分散表現(単語埋め込み「Embedding」)と言います。

そして、Embeddingを高速に扱う技術にMagnitudeというものがあります。
このMagnitudeを利用すれば、高速にEmbeddingを扱うことが可能です。

pymagnitudeとは、 MagnitudeをPythonで利用できるようにしたライブラリとなります。
Plasticityという企業が、pymagnitudeを開発しています。

また、pymagnitudeの目的はGensimの高速化だと記載されています。
つまり、Gensimに取って代わろうということでしょうね。

なお、Gensimについては次の記事で解説しています。

以上、pymagnitudeについての説明でした。
次は、pymagnitudeのシステム要件を確認します。

pymagnitudeのシステム要件

現時点(2021年7月)でのpymagnitudeの最新バージョンは、0.1.143となります。
この最新バージョンは、2020年5月25日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

そして、サポート対象となるPythonのバージョンは以下。

  • Python 2.7
  • Python 3.7

明記されているのは、上記の二つだけです。
このようなライブラリは、あまり見たことがありません。

そうは言っても、Python 3.7以降は動くはずです。
Python 3.7で動いて、Python 3.9で動かない道理がありません。

ということで、私は次のPythonで検証します。

>python -V
Python 3.9.6

なお、Python 3.9.6へのアップグレードは以下をもとに行いました。

以上、pymagnitudeのシステム要件の説明でした。
次は、pymagnitudeをインストールしていきます。

pymagnitudeのインストール

最初に、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.1.3
setuptools 57.1.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、pymagnitudeのインストールです。
pymagnitudeのインストールは、以下のコマンドとなります。

pip install pymagnitude

インストールには、少し時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package     Version
----------- -------
annoy       1.17.0
fasteners   0.16.3
h5py        3.3.0
lz4         3.1.3
numpy       1.21.0
pip         21.1.3
pymagnitude 0.1.143
setuptools  57.1.0
six         1.16.0
xxhash      2.0.2

それなりの数のパッケージが、インストールされました。
あまり見かけないパッケージが、何個かありますね。

以上、pymagnitudeのインストールについての説明でした。
最後は、pymagnitudeの動作確認を行います。

pymagnitudeの動作確認

pymagnitudeの動作確認をしていきます。
まずは、次のコードを実行してください。

from pymagnitude import Magnitude

実行して何も表示されないなら、それはそれでOKです。
しかし、普通は次のエラーが出るはずです。

ModuleNotFoundError: No module named 'torch'

これは、実はPyTorchがインストールされていないというエラーになります。
PyTocrhについては、次の記事で説明しています。

つまり、pymagnitudeは単体では動かないということなのです。
PyTorchと協働して初めて、その効果を発揮すると言えます。

したがって、上記の記事を参考にしてPyTorchをインストールしてください。
そうすれば、冒頭のコードでエラーが出なくなります。

エラーが出なくなれば、pymagnitudeの動作確認は完了です。
実際の処理速度を体感するのは、別の記事でまとめます。

追記 2021年7月12日

以上、pymagnitudeの動作確認について説明しました。

タイトルとURLをコピーしました