Direct ML・PytorchでPhi-3を動かすMicrosoft製サンプルを試してみました
おおお! Cudaが0%なのにGPUを55%使ってる! 確かにCudaではなくDirectMLでGPUを使って動いているようです。
と、タイトルとこの画像でほとんど説明は済んでしまったのですが、MicrosoftがPytorch2.2をDirectMLで動かすサンプルを公開していたので試してみました。
この記事の通りに動かせば、画像のようにGradioで動くWebUIが立ち上がり、DirectMLでPhi-3-mini-Instructを動かして遊ぶことができます。Llama 2 / 3やMistralもHugging Faceからダウンロードしての実行に対応しているようなので、これらの派生モデルでも試せそうです。
CudaではなくDirectMLで動かす利点は、AMDやIntelのGPUでも動かすことができることのようです。といっても、うちにはNVIDIAのGPUしかないので試すことができず。AMDユーザーの方はぜひ試してみていただきたいです。もしもIntel Arcでも実用的な速度で動くなら、VRAM 16GB搭載なのに安価なArc A770に光が当たる可能性が……!?(無責任発言)(誰か試してみて欲しい)
簡単に動かし方をまとめておきます。
DirectMLのリポジトリをクローンする
git clone https://github.com/microsoft/DirectML.git
クローンしたフォルダの下にある /PyTorch/llm/ に移動する。
cd (**cloneした場所**)/DirectML/PyTorch/llm/
仮想環境を作る。
python -m venv venv
仮想環境をアクティベート。
.\venv\Scripts\activate
必要なパッケージのインストール。
pip install torch-directml
pip install -r requirements.txt
requirements.txtにはtorch-directmlが入っていないので、別にpipを実行する必要があります。
ここまで終われば、あとは実行するだけです。初回はphi-3モデルのダウンロードがあるので時間がかかりますが、二回目からは起動も速いです。
python app.py --model_repo “microsoft/Phi-3-mini-4k-instruct”
詳細はリポジトリにも記載があります。
Microsoftは最近、AzureにAMD製のMI300シリーズを展開したりと、脱CUDAを意識しているような気がします。
この先の展開が楽しみです。
この記事が気に入ったらサポートをしてみませんか?