Google Colabでtext generation webuiを起動しLlama 2と会話してみた

# はじめに

Llama 2をtext generation webuiで動作させてみた記録です。内容は
[github.com/oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui)にあるGoogle Colab notebookを参考に試してみました。

Google Colabでは、無償アカウントであっても[NVIDIA T4](https://www.nvidia.com/ja-jp/data-center/tesla-t4/)のGPUが使えるマシンが使えるサービスです。共有利用のようなので、スペック詳細は公開されていないようです。

# 利用したモデル

Google Colab 無償アカウントで利用可能なT4マシン

# セットアップや準備

特にありません。[github.com/oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui)の最下部あたりに説明にあるGoogle Colab notebookのリンクをクリックするとGoogle Colabに移動します。更新されることがありそうなので、ここにはリンクを張るのはやめておきます。

# text-generation-webuiを実行する

Google Colabをオープンするとこの画面が表示されます。

![GoogleColab_LLM_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/56271993-476f-39f9-426f-1830d7818127.png)

## 1. Keep this tab alive to prevent Colab from disconnecting you

実行(Run cell)をクリックすると、しばらくすると音楽プレイヤーが表示されます。プレイヤーを再生状態にしておけば、Google Colabの接続が途切れることはない、ということかと思います。

本当にこの対応が必要なのか、よく考えてご利用頂く方が良さそうですね。。

## 2. Launch the web UI

次にLaunch the web UIを実行します。しばらく処理に時間がかかりますが、下記のように結果が表示されたら準備完了です。下記のリンクは公開時には無効にしてあります。

```sh
2023-11-12 13:25:39 INFO:Loading the extension "gallery"...
Running on local URL: http://127.0.0.1:7860
Running on public URL: https://a5a5b0eb94b2343ca1.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)
```

## ブラウザよりアクセス

ブラウザを開き、先に示した`Running on public URL:`にアクセスします。デフォルト設定で起動するとHugging Faceの`turboderp/Mistral-7B-instruct-exl2`がロードされた状態で起動します。

![GoogleColab_LLM_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/0adc8403-eec6-50e1-e78b-89b8a9def2bb.png)

## モデルの変更

デフォルト設定のまま起動した場合は、[turboderp/Mistral-7B-instruct-exl2/4.0bpw](https://huggingface.co/turboderp/Mistral-7B-instruct-exl2/tree/4.0bpw)が利用されています。

![GoogleColab_LLM_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/2517c403-4598-bc7e-2600-33ec4424eb5b.png)

起動後でもモデルを変更することができます。

Modelメニューに移動し、右下の`Download model or LoRA`の上の方の`TheBloke/Llama-2-7B-Chat-GGUF`と入力し、Get file listボタンをクリックすると、一覧が表示されます。ここでは、`llama-2-7b-chat.Q4_K_M.gguf`を選択してDownloadボタンをクリックしました。

次に左上にあるModelの項目のリロードアイコンボタンをクリックします。ボタンの左にあるModel選択のプルダウンメニューから`llama-2-7b-chat.Q4_K_M.gguf`を選択します。しばらくするとModel loaderが自動で選択されます。

![GoogleColab_LLM_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/485cfe53-e8b9-b8ab-737e-434d3207f190.png)


同じようにrinna株式会社が提供しているLlama 2の日本語継続事前学習モデルYouri 7Bも試してみました。こちらもサクッと起動します。

![GoogleColab_LLM_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/bfac2d96-877e-1143-811c-900d81180347.png)


## Characterの変更

ParametersメニューにあるCharacterタブに移動します。デフォルトではAssistantになっていますが、Exampleに変更すると、Chiharu Yamadaというキャラクターに変更になります。なぜ日本人の名前なのかはわかりません。。

![GoogleColab_LLM_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/c703522c-bdc9-8531-c775-6aac981e3a85.png)

　キャラクターを変更したので、もちろんChat画面も変化します。

![GoogleColab_LLM_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1557529/13e83ced-2518-95e0-f19f-09bce9f9b580.png)


# 所感

Google Colab 無償版でもNVIDA T4 GPUを使えるので、様々なモデルの起動を試すことができました。Jetson Orin Nanoで対応しようとするとそれなりに苦労するので、様々なモデルを動かしてみたい、という意図であれば、こちらの方が断然効率的かと思います。

# 参考

- [github.com/oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui/)
- [turboderp/Mistral-7B-instruct-exl2/4.0bpw](https://huggingface.co/turboderp/Mistral-7B-instruct-exl2/tree/4.0bpw)
- [TheBloke/Llama-2-7B-Chat-GGUF](https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/tree/main)
- [rinna、Llama 2の日本語継続事前学習モデル「Youri 7B」を公開](https://rinna.co.jp/news/2023/10/20231031.html)