👋
ローカルLLM向けのGUIアプリを作成した 1【導入編】
はじめに
- simple-text-generative-AIという自分のPCで動くローカルLLM(Large Langage Model)向けのGUIアプリを作成しました。
- LLMモデルのロードから、chatbotとしての利用、新規モデルの追加、ファインチューニングなどを誰でも簡単にできることを目指しています。
- この記事は、simple-text-generative-AIの紹介と導入までの内容です。
ローカルLLMとは
- 自身のPCなどローカルな環境で使用できる文章生成を行うAIモデルです。大規模言語モデルとも呼ばれます。
- LLMの代表的なものとしてChatGPTがありますが、こちらは、APIサービスに接続して使用するため、「ローカル」LLMとは異なります。
- 自前で動作環境を構築するため、外部サービスの仕様変更に左右されず、モデルを使えるメリットがあります。
この記事を読んでほしい人
- ローカルLLMに興味がある人・初学者
- ローカルLLMの基本的な使い方を勉強したい人
- 気軽にローカルLLMを試してみたい人
- text-generation-webuiを試してみたが、上手く扱えず挫折した人
simple-text-generative-AIの特徴
概要
-
作成したアプリのGUI画面を以下に示しています。迷わずモデルの設定等ができるUIを目指しました。ナンバリングしてある順番に項目を設定すれば、使える誘導的なUIにしました。
-
デモ動画です。モデルの設定からchatbot機能でLLMと会話するところまでの内容です。
-
事前に登録したモデルを選択して使えます。
-
使用するOSによってGPUのアーキテクチャが異なるなどで使える機能に制限がある場合があります。例えば、macのmps(GPU)では、torch.float16が使えないなどがあります。そういった場合は、使えない機能が選択できないように環境に合わせてUIが自動で設定されます。
-
プログラム自体は、オープンソースであり、githubから自由にダウンロードできます。
作成の経緯
- AITuberの存在を知り、自作してみようということでローカルLLMに興味を持ちました。
- 昨年の夏あたりに多くのモデルが公開されたことに伴い、使用方法やコーディングの方法の記事が発表され、とても参考になりました。
- しかし、記事ごとに多少内容が異なるなど、多くの情報を整理する環境が必要になりました。
- ローカルLLM向けの有名なGUIアプリとしてtext-generation-webuiがあります。試してみましたが、高機能過ぎる+LLMを使うまでの設定すべき項目が多いため、動きはするが、本当に正しく設定できているかわからないという状況でした。
- そこで、世に出ている情報を整理する+初学者でも扱えるようなシンプルなUIを持つアプリを作成することにしました。
AITuberとは
LLMを利用したシステムを用いて応答するAIキャラクターのことです。
コメントに対する応答に人間ではなく、入力されたコメントの内容を元にAIが応答を自動出力します。
必要な基本パッケージ
以下は、事前にインストールしてください。CUDAとmpsについては、なくても動きますが、CPUのみでテキストの生成を行うため、動作が遅くなります。
- Python 3.11.7
- Pyenv
- venv
- CUDA 11.8 (Windowsの場合)
- mps (macの場合)
導入方法
Windows11とmac(Apple silicon)の両方で使用できます。
共通部分
- Githubからコードをダウンロードした後、プロジェクト直下のディレクトリで以下を実行し、Pythonのローカルバージョンを設定します。
pyenv local 3.11.7
- Pythonの仮想環境を構築します。以下を実行すると、envというディレクトリが作成されます。この中にPython環境ができます。
python -m venv env
Windows11の場合
- Pythonの仮想環境を起動します。
.\env\Scripts\activate
- simple-text-generative-AIの利用に必要なPythonのパッケージをインストールします。Pytorchは一括でインストールできないため、別途コマンドからインストールします。
pip install -r requirements_win.txt
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
mac(Apple silicon)の場合
- Pythonの仮想環境を起動します。macの場合は、sourceが必要なようです。
source .\env\Scripts\activate
- simple-text-generative-AIの利用に必要なPythonのパッケージをインストールします。
pip install -r requirements_apple_silicon.txt
補足情報
まとめ
- ローカルLLM初心者向けのGUIアプリの特徴と導入方法をまとめました。
- 使ってみた感想や追加してほしい機能があれば、コメントいただければと思います。
- 今後は、モデル設定からchatbot機能による会話までの詳細な使い方の記事を書く予定です。
Discussion