brew install portaudio
brew install mecab
brew install mecab-ipadic
pip install -r requirements.txt
A2AI
/app
/deeplearning : ディープラーニング系のプログラムを格納
/docgen : 報告書(等)作成ツール
/srcgen : プログラム自動生成系の機能を格納
/utils : いろんなツール群
/definition : spqa_framework.pyが参照するプログラム自動生成定義ファイルを配置
/youtube_audio : youtube_audio.pyが利用する動画格納ディレクトリ
export OPENAI_API_KEY=自分のキー
SQPAの概念の元、プログラムを自動生成するフレームワークです。
cd app/srcgen
python spqa_framework.py
| コマンド | 説明 |
|---|---|
| 引数なし | definitionに従ってソース生成。すでに出力先にソースがある場合はスキップ |
| -f | 出力先にソースがあっても強制的に自動生成 |
| -r | 生成対象をフィルタ。ディレクトリ名や生成するファイル名の一部を記載 |
| -i | 再帰生成モード。継続して残りのコードを生成し続けるかを問い合わせるモードとして起動 |
ソースコードを自動でリファクタリングするフレームワークです。
cd app/srcgen
python refactor_framework.py
報告書(等)作成ツール
cd app/docgen
python report_generator.py
YouTubeの動画を要約するアプリです。
cd app/utils
python youtube_audio.py
| コマンド | 説明 |
|---|---|
| 引数なし | YouTubeをダウンロードし、ChatGPTに要約を依頼。全自動。その後のチャットは不可 |
| -e | YouTube動画をダウンロードし、そのデータをエンベッド |
| -ec | エンベッドした内容に対してチャット |
ディレクトリ構成例:
A2AI
whisper.cpp
whisper.cppのインストール方法は以下のサイトを参考にしてください。 https://zenn.dev/shu223/articles/whisper-coreml?fbclid=IwAR20EpbYK1bbP12hiNHiVMUdhAcKzbhbYg473IdQo0cVdmO9TgrQoY_Qw28
エンベッド技術を用いて、GPTモデルに対して手持ちのデータを学習させた後にチャットするサンプルです。
cd app/deeplearning/embedding
python embed_chat.py
| コマンド | 説明 |
|---|---|
| 引数なし | エンベッド済みのデータに対してチャットを実施 |
| -c | 指定したディレクトリ内のデータをエンベッド |
| -rc | 指定したディレクトリディレクトリ配下の全てのディレクトリに格納されているデータをエンベッド |
OpenAIのエンべディング関数を直接利用するサンプル
cd app/deeplearning/embedding
python primitive_embedding.py
| コマンド | 説明 |
|---|---|
| 引数なし | エンベッドしたデータから最も近い文字列をサーチする処理のサンプルを動かす |
| -c | data_sets内のデータをエンベッド |
# 英語のみ読み取れる機能を試す場合
cd app/deeplearning/ocr
python ocr_reader.py
# 日本語読み取り機能対応版を試す場合
cd app/deeplearning/ocr
python japanese_ocr_reader.py
# 日本語読み取り機能対応版で利用しているModel(pytorch_model.bin)をファインチューニングするサンプル
cd app/deeplearning/ocr
python finetune_japanese_ocr_reader.py
cd app/deeplearning/llm
python finetune.py 引数
| コマンド | 説明 |
|---|---|
| -t | トレーニングを実施 |
| -r | モデルを起動 |
| -f | ファインチューニングオプション |
| -l | LoRAオプション |
| -m | マージオプション |
| -g | ggmlオプション |
python finetune.py -t
python finetune.py -t -l
python finetune.py -m
※ Automatic1111に、[ベースのモデル名]-merged.safetensorsというファイルを配置してから実行
python finetune.py -r
python finetune.py -r -f
python finetune.py -r -l
python finetune.py -r -m
python finetune.py -g
python finetune.py -r -g
python finetune.py -r -g -f
LoRAする上で、AppleSillicon(M1/M2)を使わせるためには、device_mapでautoを指定するのは厳禁。
(RuntimeError: Placeholder storage has not been allocated on MPS device! エラーが起きる)
# 8bit量子化してModelを取得する方法のMac版は以下の通り。
model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL,
llm_int8_enable_fp32_cpu_offload=True,
)
# ネットでよく見つかるcuda版は以下の通り。
model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL,
load_in_8bit=True, # Macだとこれ無理
device_map="auto" # device_map指定するとMacだと落ちる
)
cd app/deeplearning/llm
python utils_for_tuning.py -引数
| コマンド | 説明 |
|---|---|
| -ss | モデルを.safetensors形式に変換します。ファイルはsafetensorsディレクトリに格納されます |
| -ls | .savetensors形式のモデルを元のモデル(.bin, .h5)に戻します |
# 起動コマンド
tensorboard --logdir ./log
http://localhost:6006/
cd app/deeplearning/llm
python finetune_llm.py -r
| コマンド | 説明 |
|---|---|
| -t | data_sets配下のデータを利用してトレーニング |
| -r | トレーニングしたModelに対してChat |
A2AIと同列に、transformersのプログラム群が必要です。
ディレクトリ構成例:
A2AI
transformers
transformersのインストールコマンドは以下。
git clone https://github.com/tak6uch1/cuda-tensorflow.git
動かす場合は、同ディレクトリに格納してある「環境設定コマンド.txt」内記載のインストールを実施してください。
おそらく、mac(且つ、M1/M2チップ搭載機)じゃないと動かないかも?
「環境設定コマンド.txt」にも記載していますが、以下の環境変数設定も必要です。
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
ちなみに、finetune.pyにパイソンのコード版でのトレーニングを記載したので、後ほど差し替えて、transformersのgit-cloneは不要にする予定。
brew install portaudio
brew install mecab
brew install mecab-ipadic
pip install -r requirements.txt
A2AI
/app
/deeplearning : ディープラーニング系のプログラムを格納
/docgen : 報告書(等)作成ツール
/srcgen : プログラム自動生成系の機能を格納
/utils : いろんなツール群
/definition : spqa_framework.pyが参照するプログラム自動生成定義ファイルを配置
/youtube_audio : youtube_audio.pyが利用する動画格納ディレクトリ
export OPENAI_API_KEY=自分のキー
SQPAの概念の元、プログラムを自動生成するフレームワークです。
cd app/srcgen
python spqa_framework.py
| コマンド | 説明 |
|---|---|
| 引数なし | definitionに従ってソース生成。すでに出力先にソースがある場合はスキップ |
| -f | 出力先にソースがあっても強制的に自動生成 |
| -r | 生成対象をフィルタ。ディレクトリ名や生成するファイル名の一部を記載 |
| -i | 再帰生成モード。継続して残りのコードを生成し続けるかを問い合わせるモードとして起動 |
ソースコードを自動でリファクタリングするフレームワークです。
cd app/srcgen
python refactor_framework.py
報告書(等)作成ツール
cd app/docgen
python report_generator.py
YouTubeの動画を要約するアプリです。
cd app/utils
python youtube_audio.py
| コマンド | 説明 |
|---|---|
| 引数なし | YouTubeをダウンロードし、ChatGPTに要約を依頼。全自動。その後のチャットは不可 |
| -e | YouTube動画をダウンロードし、そのデータをエンベッド |
| -ec | エンベッドした内容に対してチャット |
ディレクトリ構成例:
A2AI
whisper.cpp
whisper.cppのインストール方法は以下のサイトを参考にしてください。 https://zenn.dev/shu223/articles/whisper-coreml?fbclid=IwAR20EpbYK1bbP12hiNHiVMUdhAcKzbhbYg473IdQo0cVdmO9TgrQoY_Qw28
エンベッド技術を用いて、GPTモデルに対して手持ちのデータを学習させた後にチャットするサンプルです。
cd app/deeplearning/embedding
python embed_chat.py
| コマンド | 説明 |
|---|---|
| 引数なし | エンベッド済みのデータに対してチャットを実施 |
| -c | 指定したディレクトリ内のデータをエンベッド |
| -rc | 指定したディレクトリディレクトリ配下の全てのディレクトリに格納されているデータをエンベッド |
OpenAIのエンべディング関数を直接利用するサンプル
cd app/deeplearning/embedding
python primitive_embedding.py
| コマンド | 説明 |
|---|---|
| 引数なし | エンベッドしたデータから最も近い文字列をサーチする処理のサンプルを動かす |
| -c | data_sets内のデータをエンベッド |
# 英語のみ読み取れる機能を試す場合
cd app/deeplearning/ocr
python ocr_reader.py
# 日本語読み取り機能対応版を試す場合
cd app/deeplearning/ocr
python japanese_ocr_reader.py
# 日本語読み取り機能対応版で利用しているModel(pytorch_model.bin)をファインチューニングするサンプル
cd app/deeplearning/ocr
python finetune_japanese_ocr_reader.py
cd app/deeplearning/llm
python finetune.py 引数
| コマンド | 説明 |
|---|---|
| -t | トレーニングを実施 |
| -r | モデルを起動 |
| -f | ファインチューニングオプション |
| -l | LoRAオプション |
| -m | マージオプション |
| -g | ggmlオプション |
python finetune.py -t
python finetune.py -t -l
python finetune.py -m
※ Automatic1111に、[ベースのモデル名]-merged.safetensorsというファイルを配置してから実行
python finetune.py -r
python finetune.py -r -f
python finetune.py -r -l
python finetune.py -r -m
python finetune.py -g
python finetune.py -r -g
python finetune.py -r -g -f
LoRAする上で、AppleSillicon(M1/M2)を使わせるためには、device_mapでautoを指定するのは厳禁。
(RuntimeError: Placeholder storage has not been allocated on MPS device! エラーが起きる)
# 8bit量子化してModelを取得する方法のMac版は以下の通り。
model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL,
llm_int8_enable_fp32_cpu_offload=True,
)
# ネットでよく見つかるcuda版は以下の通り。
model = AutoModelForCausalLM.from_pretrained(
BASE_MODEL,
load_in_8bit=True, # Macだとこれ無理
device_map="auto" # device_map指定するとMacだと落ちる
)
cd app/deeplearning/llm
python utils_for_tuning.py -引数
| コマンド | 説明 |
|---|---|
| -ss | モデルを.safetensors形式に変換します。ファイルはsafetensorsディレクトリに格納されます |
| -ls | .savetensors形式のモデルを元のモデル(.bin, .h5)に戻します |
# 起動コマンド
tensorboard --logdir ./log
http://localhost:6006/
cd app/deeplearning/llm
python finetune_llm.py -r
| コマンド | 説明 |
|---|---|
| -t | data_sets配下のデータを利用してトレーニング |
| -r | トレーニングしたModelに対してChat |
A2AIと同列に、transformersのプログラム群が必要です。
ディレクトリ構成例:
A2AI
transformers
transformersのインストールコマンドは以下。
git clone https://github.com/tak6uch1/cuda-tensorflow.git
動かす場合は、同ディレクトリに格納してある「環境設定コマンド.txt」内記載のインストールを実施してください。
おそらく、mac(且つ、M1/M2チップ搭載機)じゃないと動かないかも?
「環境設定コマンド.txt」にも記載していますが、以下の環境変数設定も必要です。
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
ちなみに、finetune.pyにパイソンのコード版でのトレーニングを記載したので、後ほど差し替えて、transformersのgit-cloneは不要にする予定。