Japanese Stable CLIP を試してみた

Stable Vicuna を SageMaker Studio Lab で動かしてみる (ngrok によるリバースプロキシ)

前回は 8560w で動作させようとしてうまくいきませんでしたが、無料で GPU が使える SageMaker Studio Lab で実行できるかやってみます。
GPU インスタンスが必要で、10GB 近くのストレージが必要になります。SageMaker Studio Lab は 25GB が上限なので、注意が必要です。



環境構築

Notebook に記載していきます。その関係上、フルパスで記載しているのと、コマンドの前に記号を付けて実行させています。

まず、text-generation-webui のリポジトリをクローンします。
!git clone https://github.com/oobabooga/text-generation-webui

pip コマンドで必要なライブラリをインストールします。
%cd ~/sagemaker-studiolab-notebooks/repo/text-generation-webui/
!pip install -r requirements.txt

続けて SageMaker Studio Lab 環境でも実行できるように、「GPTQ-for-LLaMa」をダウンロードします。気を付けるのは、text-generation-webui のリポジトリをクローンしたディレクトリに「repositories」という名前でディレクトリを作り、その中で GPTQ-for-LLaMa をクローンすること。
ディレクトリ構成が違うと、認識されないようです。
%mkdir ~/sagemaker-studiolab-notebooks/repo/text-generation-webui/repositories
%cd ~/sagemaker-studiolab-notebooks/repo/text-generation-webui/repositories
!git clone https://github.com/oobabooga/GPTQ-for-LLaMa.git -b cuda
%cd ~/sagemaker-studiolab-notebooks/repo/text-generation-webui/repositories/GPTQ-for-LLaMa
!python setup_cuda.py install

最後にモデルをダウンロードします。
%cd ~/sagemaker-studiolab-notebooks/repo/text-generation-webui/
!python download-model.py TheBloke/stable-vicuna-13B-GPTQ

実行

環境ができたので、サーバを実行します。

%cd ~/sagemaker-studiolab-notebooks/repo/text-generation-webui/
!python server.py --model TheBloke_stable-vicuna-13B-GPTQ --wbits 4 --groupsize 128 --share --chat

すると、こんな出力があるはずです。最後に「Running on local URL:」が表示されるまで、特に初回は少し時間がかかりますが (モデルの読み込みに 62 秒程度かかったと表示されていますね)、しばらく待ちます。
/home/studio-lab-user/sagemaker-studiolab-notebooks/repo/text-generation-webui
WARNING:The gradio "share link" feature downloads a proprietary and unaudited blob to create a reverse tunnel. This is potentially dangerous.
bin /home/studio-lab-user/.conda/envs/default/lib/python3.9/site-packages/bitsandbytes/libbitsandbytes_cuda112.so
INFO:Loading TheBloke_stable-vicuna-13B-GPTQ...
INFO:Found the following quantized model: models/TheBloke_stable-vicuna-13B-GPTQ/stable-vicuna-13B-GPTQ-4bit.compat.no-act-order.safetensors
INFO:Loaded the model in 62.08 seconds.

INFO:Loading the extension "gallery"...
Running on local URL:  http://127.0.0.1:7860

これで WebUI から AI とチャットできる・・・と思いきや、示された URL はローカルアドレスです。どうやって SageMaker Studio Lab のローカルアドレスに接続するのか・・・というところで登場するのがリバースプロキシです。

ngrok

まず、サイトを開き ngrok のアカウントを作成します。作成したアカウントでログインしたら、メニューから「Your Authtoken」を選択します。ここで表示される Authtoken をコピーしておきます。

さらにクライアントアプリケーションをダウンロードします。環境としては Linux なので、Linux の ZIP ファイルダウンロードを選択すると、インストール手順が表示されるので、基本的にこれに沿う形です。なお、その手順は SageMaker Studio Lab の Terminal から実施する形になります。
※ここでインストール手順に示されているコマンドに、Authtoken が自動で埋め込まれるので、あえて手動でコピーする必要はないですが・・・

上図の最後に記載がある「Start a tunnel」のコマンドだと、text-generation-webui とはポートが違うので対応できません。ここは
$ ./ngrok http 7860
と実行します。すると、こんな表示になるはずです。
「Forwaring」の欄に記載のある URL をクリックすると、いったん ngrok の確認画面が表示されるので、「Visit Site」をクリックします。
すると、WebUI が開くと思います。

日本語で入力して、日本語で回答されます。

GPU インスタンスさえ使えれば、問題なく SageMaker Studio Lab でも実行できました。一度構築できてしまえば、次回以降はサーバの起動と、ngrok の起動のみで使用できるようになるはずです。

コメント