見出し画像

Google Colabで始める。text generation webuiでgemma2との会話

gemma2をtext generation webuiで動作させてみた記録です。内容は、GitHubのoobabooga/text-generation-webuiにあるGoogle Colabのノートブックを参考に試してみました。

ここで試したコードはPythonのオープンソースライブラリ「Gradio」を使用して、AIアプリを開発しています。Gradioは、Pythonで簡単にAIアプリのデモを作成するためのライブラリであり、Hugging Faceとの連携が可能です。

Google Colabは、無償アカウントでもNVIDIA T4 GPUを利用できます。


text-generation-webuiを実行する

次を実行すると、Google Colabの環境が開きます。
https://colab.research.google.com/github/oobabooga/text-generation-webui/blob/main/Colab-TextGen-GPU.ipynb

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

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

2. Launch the web UI

次にLaunch the web UIを実行します。

  • model_url: モデルのダウンロード元URLです。Hugging Face Hub 上の turboderp/gemma-2-9b-it-exl2というリポジトリを指しています。gemma-2 はGoogleが開発した最新の大規模言語モデル(LLM)で、9bはモデルのパラメータサイズ(90億)を意味しています。turboderpはAIおよび機械学習関連のプロジェクトを開発している開発者で、特にExLlamaとExLlamaV2という推論ライブラリで知られています。ExLlamaV2はGPTQ派生の量子化モデルを使用しており、モデルの各レイヤーを動的に調整することで、精度を高めつつVRAMの消費を抑えることが可能です。つまり量子化技術を用いてモデルのサイズを小さくしつつ、計算効率を高めているモデルになります。

  • branch: 使用するモデルのブランチ(バージョン)です。

public URLよりアクセス

「Running on public URL」にアクセスすると、チャットが可能になります。このモデルは日本語にも対応しています。


Characterの変更

ParametersメニューのCharacterタブに移動します。デフォルトでは「Assistant」となっていますが、ここでキャラクターの設定が可能です。

チャットボット設定:
モデルの応答キャラクター(名前、役割、性格など)を自由にカスタマイズできます。

会話の試行:
設定したキャラクターと実際に会話し、応答の内容や表現の自由度を確認します。


モデルの変更

ここでは、Llama-2モデルを使って新しいモデルをダウンロードして適用する手順を説明します。

1. モデルの変更手順

  • Modelメニューに移動します。

  • 右下の「Download model or LoRA」を見つけ、そのすぐ上にある入力欄に「TheBloke/Llama-2-7B-Chat-GGUF」と入力してください。

  • 「Get file list」ボタンをクリックすると、モデルのリストが表示されます。

2. モデルのダウンロード

  • 表示された一覧の中から「llama-2-7b-chat.Q4_K_M.gguf」をコピーし、「file name」と貼り付けます選択します。

  • 「Download」ボタンをクリックして、モデルのダウンロードを開始します。

3. モデルのリロード

  • ダウンロードが完了したら、左上のModelの項目にあるリロードアイコンをクリックして、モデル一覧を更新します。

  • プルダウンメニューから「llama-2-7b-chat.Q4_K_M.gguf」を選択します。

これで、新しいモデルが適用され、設定が完了します。


オープンソース基盤モデルの選び方

まず最初にやるのが「Open LLM Leaderboard」の確認です。特に英語ベースのモデルの性能評価が一覧で見れるため、現時点でどのモデルが注目されているかがすぐにわかります。

1.モデル選択のステップ

モデル選びは迷いがちですが、私は以下の3つのステップで整理しています。

ステップ1:基盤モデルを選択
Open LLM Leaderboardをチェックして、性能が高いモデルをまずリストアップ。候補を絞ることで迷いが少なくなります。

ステップ2:チューニング済みモデルの選択
次に、自分の用途に合ったチューニング済みモデルを探します。特定の分野に特化してチューニングされたモデルがあれば、そのまま使う方が効率的です。

ステップ3:適切なサイズの量子化モデルを選択
最後に、自分の環境(GPUなど)で快適に動作するサイズのモデルを選びます。リソースが限られている場合は、量子化モデルが役立つことが多いです。

2. 日本語特化モデルの現状と課題

日本語モデルの選定には、特徴と課題をよく理解することが重要だと感じています。

日本語モデルのメリット
日本語特化モデルの大きな魅力は、トークン分割が日本語仕様になっているため、より自然な日本語生成が可能な点です。英語ベースのモデルとは違い、日本語独自の言い回しや表現に対応できるので、文章の仕上がりがスムーズです。

日本語モデルのデメリット
しかし、学習データの量が英語モデルほど豊富でないため、専門的な知識が必要な場合など、限界を感じることもあります。そのため、必要に応じて多言語対応モデルを視野に入れることもあります。

多言語対応モデルの利点
多言語対応モデルは日本語以外のデータも学習しているため、言語の垣根を越えた思考力や文章の質が向上し、日本語でも高品質な文章を生成できるケースが多いです。私はこれを活用することで、日本語モデルの弱点を補っています。


まとめ

Googleのgemma-2をtext-generation-webuiで動作させるため、Google Colabのoobaboogaノートブックを使用し、Gradioを活用して簡単なデモを構築しました。モデルはHugging Faceからダウンロードし、量子化技術を備えたExLlamaV2でVRAM効率を高めています。また、キャラクター設定や他のモデル(Llama-2など)への切り替えも簡単に実行できました。Colab環境の無料GPUでの動作確認が可能なため、gemma-2のような大規模モデルを手軽に試せる点が非常に便利です。

いいなと思ったら応援しよう!