GemmaをGoogle ColabやローカルPCで動かす
Gemmaとは
Gemmmaについては、npaka先生の記事参照ください。
GitHubに公式Dockerfileがあったので、すぐ動くかなと思ったら、少しはまったりしたのでメモを残しておきます。
PC事前準備
Google Colab
Google Colabで動かす場合は、ブラウザが動く環境なら基本的にOKです。私はProに課金しています。
ローカルPC
ローカルPCは、Linuxマシンで実行しました。GPUは自分の環境ではエラーが出て使えなかったので、CPUで動かしました。
あらかじめLinuxマシンにDockerをセットアップしましょう。以下記事参照ください。
Gemmaの事前準備
以下サイトにチュートリアルがあります。
モデルは以下にあります。
最初に、モデルのRequest Accessをクリックして登録しておきましょう。
Dockerfileや動かし方はGitHubにあります。
Google Colabでの動かし方
以下のチュートリアルを参照しましょう(動かし方が変わったみたいです)。
Kaggleのトークン作って、モデルのRequest Accessをしておけば、そのまま実行できました。
追記:以下のコードは古いかもしれません。最新のチュートリアルを参照ください。
プロンプト:日本で一番高い山は?
日本には最も高大的山がある富士山と日本の最大の山である岳州山があり、それぞれ最高峰は1,405メートルと1,008メートルであるされています。日本では一番高い山は、富士山です。
プロンプト:からあげにレモンをかけたら死刑ですか?
この質問は誤りです。
レモンをかけることではなく、死刑は法律的に禁止されています。
2Bにしては、結構いいですね。
ローカルでの動かし方
以下参照ください。
以下リポジトリを使います。
以下でセットアップしてコンテナに入ります。
$ cd && git clone https://github.com/karaage0703/ChatLLM
$ docker compose up gpu
$ docker ps
$ docker exec -it <image name> /bin/bash
コンテナの中で以下実行します。
root@hostname:~# python3 chat_gemma.py
ローカルでの動かし方(公式リポジトリ・うまくいってません)
ローカルPCで公式リポジトリの動かし方では、うまく動いてないですが、手順をメモしておきます。
まずは以下でDockerビルドしておきます。
$ cd && git clone https://github.com/google/gemma_pytorch
$ cd gemma_pytorch
$ DOCKER_URI=gemma:${USER}
$ docker build -f docker/Dockerfile ./ -t ${DOCKER_URI}
モデルは以下にあります。
ライセンスに同意したあとPyTorchの2bを選択します。
下の方からファイルダウンロードが可能になるのでダウンロードします。
モデルを適当な場所に移動します。
$ mkdir ~/gamma_pytorch/ckpt
$ mv ~/Downloads/gemma-2b.ckpt ~/gamma_pytorch/ckpt
環境変数を設定します。
$ VARIANT=2b
$ QUANT=false
$ CKPT_PATH='./ckpt'
Dockerを起動してログインします。
$ docker run -it --rm \
-v ${CKPT_PATH}:/tmp/ckpt \
${DOCKER_URI}
コンテナ内で以下実行します。
python scripts/run.py \
--ckpt=/tmp/ckpt/gemma-2b.ckpt \
--variant="2b" \
--quant="false" \
--prompt="からあげにレモンをかけたら死刑ですか?"
動きましたが、回答が変…
======================================
PROMPT: からあげにレモンをかけたら死刑ですか?
RESULT: גש myndigdsmenvoy他和 aprende Bruges biometricKenapa biometric出かけ Llama provence modestly voila meager stressors gaussian比特派乐趣bezpiecInsufficient Grainsesticular Brewers gaussianenvoyגשpostIndex彩虹 essai gaussian)–bezpiec ремон Oso GrainsUsosPSS rejoicedsetViewport kesulitan kesulitan掲示 essai findes ремонUnternehmeneció continuidad modestlypostIndex blanda castellano:( Bama之意 allergensξωIndoInsufficient Bama Chambres essaiREVISION走在 調整 prettiest Ông比特派 Ôngvoyezธ์ continuidad allergensfinnREVISION findesξω Brugesнесен比特派他和envoy prettiest rejoiced meager aerationEdmund stressors再開 aprende allergens:( kesulitanbezpiec allergens voilaIndoREVISION
======================================
GPUは以下コマンドで試しましたが、エラー出ました。
$ docker run -it --rm \
--gpus all \
-v ${CKPT_PATH}:/tmp/ckpt \
${DOCKER_URI}
python scripts/run.py \
--ckpt=/tmp/ckpt/gemma-2b.ckpt \
--device=cuda \
--variant="2b" \
--quant="false" \
--prompt="からあげにレモンをかけたら死刑ですか?"
以下エラー
RuntimeError: probability tensor contains either `inf`, `nan` or element < 0
ここで時間切れ
まとめ
Gemmaを試してみました。Google Colabではすんなり動きましたが、ローカルPCではうまく動いていない状況です。またうまくいったらアップデートします。とりいそぎここまでです。 動くようになったので追記しました。
参考記事
関連記事
Discussion