ローカルでAMDのGPU(direct-ml)を使ってLLMを動作させる(お試し)

この記事は約3分で読めます。
スポンサーリンク

やりたいこと

AMDのGPUを使用してでLLMを動作させてみます。

DirectMLとDirectMLのサンプルコードを使用します。

コードの修正を行います。実行は自己責任でお願いします。

ただし以下の環境でギリギリ動作する(不安定、回答が変)状態です。

CPUAMD Ryzen 7 7735HS
メモリ32GB
ストレージ外付けHDD
(システムディスクはSSD、容量が大きいため外付けで運用)
GPUAMD Radeon 680M
(CPU内臓)
スポンサーリンク

環境構築

作業用のフォルダを作成します。

以下のリポジトリをクローンします。

DirectML/PyTorch/llm at master · microsoft/DirectML
DirectML is a high-performance, hardware-accelerated DirectX 12 library for machine learning. DirectML provides GPU acceleration for common machine learning tas...

venv環境への移動(任意)

必要であればコマンドプロンプトで以下のコマンドを実行して、Venvの環境を作成してアクティブにします。

python -mvenv venv
venv\scripts\activate.bat

作業フォルダへ移動

以下のコマンドを実行してLLMのサンプルコードに移動します。(クローンしたリポジトリはDirectMLのサンプルコードの集まりのため個々のサンプルを使用するには作業フォルダに移動します。)

cd PyTorch\llm

ライブラリのインストール

以下のコマンドを実行して必要なライブラリのインストールを行います。

pip install -r requirements.txt
pip install torch_directml
pip install huggingface_hub

コード修正

以下の行を削除するかコメントアウトします。

from huggingface_hub.utils._errors import RepositoryNotFoundError

以下のように編集するかexceptブロックを削除します。

Before:

    except RepositoryNotFoundError as e:

after:

    except:

huggingface_hubのバージョンアップによりエラーが出るようになっています。

エラーが出る箇所を無効化することで動作させています。

モデルのダウンロードのエラー処理が正しく行えていない可能性がります。

スポンサーリンク

起動

以下のコマンド起動します。(モデルが自動でダウンロードされるため、初回は時間がかかります。)

python app.py

コマンドプロンプトに以下のように表示されたら表示されているURLをブラウザで表示します。

Running on local URL: http://127.0.0.1:7860

以下のような画面が表示されれば成功です。

(画面下にプロンプトを入力すると上側に回答が表示されます。)

スポンサーリンク

結果

AMDのCPU内臓GPUでLLMを動作させることができました。

回答の速度も現実的です。(Gemeiniなどよりも早いかもしれないです。)

ただし2つのモデルを試したのですが以下のようにまともに動作しませんでした。

(全く同じ回答をするわけではないのでモデルかスペックの問題だと思っています。)

  • microsoft/Phi-3-mini-4k-instruct(初期値)
    • 何を聞いても同じような回答しかしない(全く同じではないので動作は指定層)
  • microsoft/phi-2
    • 何度かやり取りするとエラーになる
    • 日本語で文字化け

コメント

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