WindowsにxFormersをインストールする方法【PyTorch高速化】

WindowsにxFormersをインストールする方法【PyTorch高速化】 機械学習

「Stable Diffusionの画像生成を高速化したい」
「WindowsにxFormersをインストールしたい」

このような場合には、この記事の内容が参考になります。
この記事では、WindowsにxFormersをインストールする方法を解説しています。

本記事の内容

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

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

xFormersとは?

xFormersとは、PyTorchベースのライブラリです。
このライブラリは、Metaが開発・公開しています。

GitHub – facebookresearch/xformers
https://github.com/facebookresearch/xformers

GitHub上でのページでは、xFormersを次のように説明しています。

Toolbox to Accelerate Research on Transformers
(Transformersの研究を加速するツールボックス)

この説明通り、xFormersは研究者向けのライブラリです。
主には、画像認識や自然言語処理の研究が対象となります。

そして、xFormersには最先端の技術が採用されているということです。
そこで実績を積めば、将来的にはPyTorchに採用されるかもしれません。

Transformersについては、次の記事で説明しています。

では、そんなxFormersが一般の利用者にどのように関係するのでしょうか?
最も影響するのは、処理の高速化です。

具体的には、Stable Diffusionにおける画像生成の高速化になります。
Stable Diffusionの知名度が増すにつれて、xFormersの注目度がUPしました。

ただし、そこには大きな課題があります。
その課題とは、xFormersのインストールが大変だということです。

そもそも、xFormersは研究者を対象にしています。
だから、インストールが大変というのは仕方がないところがあります。

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

Windows版xFormers

追記 2023年2月10日
PyTorch 1.13.1であれば、次のコマンドでインストールできるようになったようです。
Python 3.9とPython 3.10で実際にインストールできることを確認済み。

現時点(2022年11月末)でのxFormersの最新バージョンは、0.0.13となります。
この最新バージョンは、2022年9月27日にリリースされています。

一部のLinux環境のみ、バイナリが提供されています。

それ以外の環境では、ソースからビルドする必要があります。
そして、Windowsは2022年10月以降からサポート対象になったようです。

その結果として、Windows向けxFormersのバイナリを公開する人が現れています。

Releases · C43H66N12O12S2/stable-diffusion-webui · GitHub
https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases

開発者に感謝して、このバイナリを使わせてもらいましょう。
whlファイルをダウンロードしておきます。

以上、Windows版xFormersを説明しました。
次は、Windows版xFormersのシステム要件を説明します。

Windows版xFormersのシステム要件

Windows版xFormersのシステム要件は、次の2点がポイントになります。

  • Pythonバージョン
  • GPU版PyTorch

それぞれを以下で説明します。

Pythonバージョン

Python 3.10のみが対象となっています。
ただし、ここはwhlファイルを見て判断するしかありません。

すでにPython 3.11がリリースされています。

そのため、今後はPython 3.11に変更されるかもしれません。

GPU版PyTorch

xFormersは、GPU版PyTorchが前提です。
GPU版PyTorchのインストールは、次の記事で解説しています。

PyTorchのバージョンは、1.13系をインストールしましょう。
「torch13」と記載されており、それに合わせるということです。

CUDAのバージョンについては、特に記載はありません。
基本的には、指定されているPyTorchのバージョンに合わせれば問題ないでしょう。

PyTorch 1.13.0の場合であれば、次のCUDAが対応しています。

  • CUDA 11.6
  • CUDA 11.7

以上、Windows版xFormersのシステム要件を説明しました。
次は、Windows版xFormersのインストールを説明します。

Windows版xFormersのインストール

検証は、次のバージョンのPythonで行います。

> python -V   
Python 3.10.4

そして、システム要件としてはGPU版PyTorchをインストール済という状況です。
この状況でのインストール済みパッケージは、以下。

> pip list
Package            Version
------------------ ------------
certifi            2022.9.24
charset-normalizer 2.1.1
idna               3.4
numpy              1.23.5
Pillow             9.3.0
pip                22.3.1
requests           2.28.1
setuptools         65.6.3
torch              1.13.0+cu116
torchaudio         0.13.0+cu116
torchvision        0.14.0+cu116
typing_extensions  4.4.0
urllib3            1.26.13
wheel              0.37.1

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

python -m pip install --upgrade pip setuptools

では、xFormersのインストールです。
ダウンロードしたwhlファイルを対象にインストールするだけです。

pip install xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl

xFormersのインストールは、すぐに終わります。
処理が終了したら、どんなパッケージがインストールされたのかを確認します。

> pip list                                                   
Package            Version 
------------------ ------------ 
certifi            2022.9.24 
charset-normalizer 2.1.1 
idna               3.4 
mypy-extensions    0.4.3 
numpy              1.23.5 
Pillow             9.3.0 
pip                22.3.1 
pyre-extensions    0.0.23 
requests           2.28.1 
setuptools         65.6.3 
torch              1.13.0+cu116 
torchaudio         0.13.0+cu116 
torchvision        0.14.0+cu116 
typing_extensions  4.4.0 
typing-inspect     0.8.0 
urllib3            1.26.13 
wheel              0.37.1 
xformers           0.0.14.dev0

4つほどのパッケージが、インストール前より増えています。

以上、Windows版xFormersのインストールを説明しました。
次は、Windows版xFormersの動作確認を説明します。

Windows版xFormersの動作確認

Windows版xFormersの動作確認は、次のコマンドで実行できます。

python -m xformers.info

上記コマンドを実行すると、xFormersの情報を確認可能です。

> python -m xformers.info
WARNING:root:A matching Triton is not available, some optimizations will not be enabled.
Error caught was: No module named 'triton'
xFormers 0.0.14.dev
memory_efficient_attention.flshatt:      available - requires GPU with compute capability 7.5+
memory_efficient_attention.cutlass:      available
memory_efficient_attention.small_k:      available
is_triton_available:                     False
is_functorch_available:                  False
pytorch.version:                         1.13.0+cu116
pytorch.cuda:                            available
gpu.compute_capability:                  8.6
gpu.name:                                NVIDIA GeForce RTX 3090

とりあえず、警告は無視しましょう。
これは、別にWindows版xFormersだからと言うわけではありません。

「memory_efficient_attention」関連が、「available」であることが確認できます。
これで、xFormersが機能していると言えます。

以上、Windows版xFormersの動作確認を説明しました。

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