Direct ML・PytorchでPhi-3を動かすMicrosoft製サンプルを試してみました

おおお! Cudaが0%なのにGPUを55%使ってる! 確かにCudaではなくDirectMLでGPUを使って動いているようです。

phi-3-mini-4k-Instructは日本語も少し化けるけど理解して表示もできました

と、タイトルとこの画像でほとんど説明は済んでしまったのですが、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を意識しているような気がします。

この先の展開が楽しみです。

この記事が気に入ったらサポートをしてみませんか?