GPT言語モデル「japanese-gpt-neox-3.6b」を用いることで、 ローカル環境のCLI上でAIとチャットを出来るようにしたPythonスクリプトです。
Python
0
1 commits
updated Jun 12, 2023
rinna株式会社が公開しているGPT言語モデル「rinna3.6B」を用いることで、
ローカル環境のCLI上でAIとチャットを出来るようにしたプログラムです。
以下はA.I.VOICE 紲星あかりでの読み上げ例。
https://github.com/AlgosErgo/rinna_dialog/assets/122419883/7776b07e-fe16-41fd-b428-f819ce704257
### 最小動作環境
・CPU : 指定なし
・GPU : VRAM 8GB以下では、3発話程度で強制終了。
・RAM : 16GB以下では読み込み時にスワップが発生。
・ディスク : 15GB以上の空き容量。
("model:8GB"+"venv:6GB")
### "cuda"指定時のVRAM使用率推移
- RTX3080Ti, VRAM12GB, float16指定, max_length=256設定
アイドル時 : 0 GB
実行時 : 8.4 GB
5発話でmax_lengthがフロー : 8.8 GB
レスポンスタイム : 2 ~ 5秒 (体感)
備考 : SATA SSDで実行。実行時の読み込みに60秒くらい掛かる模様
- TESLA P40, VRAM24GB, max_length=256設定
アイドル時 : 0 GB
実行時 : 15.7 GB
5発話でmax_lengthがフロー : 16.3 GB
レスポンスタイム : 5 ~ 8秒 (体感)
備考 : ebayで中古3万円、お得!
- RTX4090, VRAM24GB, max_length=256設定
アイドル時 : 2.4 GB
実行時 : 17.6 GB
5発話でmax_lengthがフロー : 18.1 GB
レスポンスタイム : 1 ~ 5秒 (体感)
### "cpu"指定時のRAM使用率推移
- 5950x, RAM64GB, max_length=256設定
アイドル時 : 8.0 GB
実行時 : 28.3 GB(ピーク) ~ 21.6 GB(安定)
5発話でmax_lengthがフロー : 21.7 GB
レスポンスタイム : 10 ~ 13秒 (体感)
- git
- python==3.10.6
- cuda 11.7
- torch==1.13.1+cu117
- transformers==4.29.2
- peft==0.2.0
- PyAudio==0.2.13
- SpeechRecognition==3.10
前提パッケージ
git_for_windows
Python3.10.6
CUDA Toolkit 11.7 Downloads
<< Windows環境 >> (V3.7より一部変更。)
コマンドプロンプトを管理者権限で実行し、rinna_dialogを保存するディレクトリへ移動。
リポジトリをクローン。
git clone https://github.com/AlgosErgo/rinna_dialogクローンしたリポジトリのフォルダ内へ移動。
cd rinna_dialogPython仮想環境、rinna_venvを作成。
py -3.10 -m venv rinna_venvrinna_venvを有効化。
.\rinna_venv\Scripts\activate.batpipをアップデート。
python.exe -m pip install --upgrade pipPyTorchをインストール。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117Pythonパッケージを一括インストール。
pip install -r requirements.txtdialog.pyを起動。
python dialog.pyFloat16での読み込みとなっています。その影響で環境によっては起動に60秒以上かかることが予想されます。
F16_modeより変更可。C:\\Users\\{ユーザー名}\\.cache\\huggingface\\hub\\とする。D:\ > cd rinna_dialog
D:\rinna_dialog> .\rinna_venv\Scripts\activate.bat
(rinna_venv) D:\rinna_dialog> python dialog.py
python dialog.pyだけで動きます。
1. コード側に以下の2行を追記
V3.4より実装した[ss2]オプションにより、dialog.pyを書き換えずに設定が可能になりました。
1, AssistantSeikaSetup.msiを実行してインストール。
2, Voiceroidなどの音声合成ソフトを起動して、最小化はしない。
3, AssistantSeikaを実行し、実行している音声合成ソフトの名前にチェックを入れて「製品スキャン」を実行。
4, スキャンが完了すると自動的にタブが切り替わり、待機状態へ。
k896951様より情報提供頂いたvoxsayを使用できます。 同様にsubprocessから渡します。
Q : なんかエラーが出た!
A : [Get Started!]を参考に再構築してみましょう。
その際にrinna_venvフォルダはそのまま削除しても問題ありません。
Q : 実行すると、`t = torch.tensor([], (略)`と出て固まる!
A : cudaを使用している場合でもモデルは一度RAMへ読み込まれてからVRAMに展開されます。
タスクマネージャーを開いてRAMが使われていくのを眺めながら気長に待ちましょう。
VRAMへの展開が終わっているのに動かない場合はEnterキーを押下すると強制的に先へ進めます。
Q : ほかのモデルも使える?
A : モデル名を変更すればHuggingFaceからダウンロードされてキャッシュとして読み込まれますが、
正常に動作するかはわかりません。
Q : モデルのダウンロードが途中で止まってしまう!
A : モデル名に絶対パスを指定するとローカルモデルを読み込ませることができます。
Q : Linux環境でも動く?
A : Ubuntu22.04での正常動作は確認できていますが、ほかの環境での動作はわかりません。
Q : このエラーは大丈夫? `UserWarning: You have modified the pretrained model configuration to control generation. `
A : そのままでも動作に問題はありませんが、エラーメッセージに従い次の部分をコメントアウトすることで消すことができます。
.\rinna_venv\lib\site-packages\transformers\generation\utils.py
1255行目~1260行目
#warnings.warn(
# "You have modified the pretrained model configuration to control generation. This is a"
# " deprecated strategy to control generation and will be removed soon, in a future version."
# " Please use a generation configuration file (see"
# " https://huggingface.co/docs/transformers/main_classes/text_generation)"
#)
Q : モデルがVRAMに移動されない!
A : 当該現象はPyTorchのインストールよりも先に、peftをインストールすると発生するようです。
V3.7よりpeft_LoRAの読込み機能を追加した都合で、初回起動の順序を一部変更しましたので、そちらをご参照ください。
AssistantSeika製作者様
k896951様
なんJLLM部の方々 /liveuranus/1678930450/l50
This project is licensed under the MIT License, see the LICENSE.txt file for details
GPT言語モデル「japanese-gpt-neox-3.6b」を用いることで、 ローカル環境のCLI上でAIとチャットを出来るようにしたPythonスクリプトです。
Python
0
1 commits
updated Jun 12, 2023
rinna株式会社が公開しているGPT言語モデル「rinna3.6B」を用いることで、
ローカル環境のCLI上でAIとチャットを出来るようにしたプログラムです。
以下はA.I.VOICE 紲星あかりでの読み上げ例。
https://github.com/AlgosErgo/rinna_dialog/assets/122419883/7776b07e-fe16-41fd-b428-f819ce704257
### 最小動作環境
・CPU : 指定なし
・GPU : VRAM 8GB以下では、3発話程度で強制終了。
・RAM : 16GB以下では読み込み時にスワップが発生。
・ディスク : 15GB以上の空き容量。
("model:8GB"+"venv:6GB")
### "cuda"指定時のVRAM使用率推移
- RTX3080Ti, VRAM12GB, float16指定, max_length=256設定
アイドル時 : 0 GB
実行時 : 8.4 GB
5発話でmax_lengthがフロー : 8.8 GB
レスポンスタイム : 2 ~ 5秒 (体感)
備考 : SATA SSDで実行。実行時の読み込みに60秒くらい掛かる模様
- TESLA P40, VRAM24GB, max_length=256設定
アイドル時 : 0 GB
実行時 : 15.7 GB
5発話でmax_lengthがフロー : 16.3 GB
レスポンスタイム : 5 ~ 8秒 (体感)
備考 : ebayで中古3万円、お得!
- RTX4090, VRAM24GB, max_length=256設定
アイドル時 : 2.4 GB
実行時 : 17.6 GB
5発話でmax_lengthがフロー : 18.1 GB
レスポンスタイム : 1 ~ 5秒 (体感)
### "cpu"指定時のRAM使用率推移
- 5950x, RAM64GB, max_length=256設定
アイドル時 : 8.0 GB
実行時 : 28.3 GB(ピーク) ~ 21.6 GB(安定)
5発話でmax_lengthがフロー : 21.7 GB
レスポンスタイム : 10 ~ 13秒 (体感)
- git
- python==3.10.6
- cuda 11.7
- torch==1.13.1+cu117
- transformers==4.29.2
- peft==0.2.0
- PyAudio==0.2.13
- SpeechRecognition==3.10
前提パッケージ
git_for_windows
Python3.10.6
CUDA Toolkit 11.7 Downloads
<< Windows環境 >> (V3.7より一部変更。)
コマンドプロンプトを管理者権限で実行し、rinna_dialogを保存するディレクトリへ移動。
リポジトリをクローン。
git clone https://github.com/AlgosErgo/rinna_dialogクローンしたリポジトリのフォルダ内へ移動。
cd rinna_dialogPython仮想環境、rinna_venvを作成。
py -3.10 -m venv rinna_venvrinna_venvを有効化。
.\rinna_venv\Scripts\activate.batpipをアップデート。
python.exe -m pip install --upgrade pipPyTorchをインストール。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117Pythonパッケージを一括インストール。
pip install -r requirements.txtdialog.pyを起動。
python dialog.pyFloat16での読み込みとなっています。その影響で環境によっては起動に60秒以上かかることが予想されます。
F16_modeより変更可。C:\\Users\\{ユーザー名}\\.cache\\huggingface\\hub\\とする。D:\ > cd rinna_dialog
D:\rinna_dialog> .\rinna_venv\Scripts\activate.bat
(rinna_venv) D:\rinna_dialog> python dialog.py
python dialog.pyだけで動きます。
1. コード側に以下の2行を追記
V3.4より実装した[ss2]オプションにより、dialog.pyを書き換えずに設定が可能になりました。
1, AssistantSeikaSetup.msiを実行してインストール。
2, Voiceroidなどの音声合成ソフトを起動して、最小化はしない。
3, AssistantSeikaを実行し、実行している音声合成ソフトの名前にチェックを入れて「製品スキャン」を実行。
4, スキャンが完了すると自動的にタブが切り替わり、待機状態へ。
k896951様より情報提供頂いたvoxsayを使用できます。 同様にsubprocessから渡します。
Q : なんかエラーが出た!
A : [Get Started!]を参考に再構築してみましょう。
その際にrinna_venvフォルダはそのまま削除しても問題ありません。
Q : 実行すると、`t = torch.tensor([], (略)`と出て固まる!
A : cudaを使用している場合でもモデルは一度RAMへ読み込まれてからVRAMに展開されます。
タスクマネージャーを開いてRAMが使われていくのを眺めながら気長に待ちましょう。
VRAMへの展開が終わっているのに動かない場合はEnterキーを押下すると強制的に先へ進めます。
Q : ほかのモデルも使える?
A : モデル名を変更すればHuggingFaceからダウンロードされてキャッシュとして読み込まれますが、
正常に動作するかはわかりません。
Q : モデルのダウンロードが途中で止まってしまう!
A : モデル名に絶対パスを指定するとローカルモデルを読み込ませることができます。
Q : Linux環境でも動く?
A : Ubuntu22.04での正常動作は確認できていますが、ほかの環境での動作はわかりません。
Q : このエラーは大丈夫? `UserWarning: You have modified the pretrained model configuration to control generation. `
A : そのままでも動作に問題はありませんが、エラーメッセージに従い次の部分をコメントアウトすることで消すことができます。
.\rinna_venv\lib\site-packages\transformers\generation\utils.py
1255行目~1260行目
#warnings.warn(
# "You have modified the pretrained model configuration to control generation. This is a"
# " deprecated strategy to control generation and will be removed soon, in a future version."
# " Please use a generation configuration file (see"
# " https://huggingface.co/docs/transformers/main_classes/text_generation)"
#)
Q : モデルがVRAMに移動されない!
A : 当該現象はPyTorchのインストールよりも先に、peftをインストールすると発生するようです。
V3.7よりpeft_LoRAの読込み機能を追加した都合で、初回起動の順序を一部変更しましたので、そちらをご参照ください。
AssistantSeika製作者様
k896951様
なんJLLM部の方々 /liveuranus/1678930450/l50
This project is licensed under the MIT License, see the LICENSE.txt file for details