Skip to content

hibiki333155555/Clone-your-personality

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

参考

  1. 既存の日本語 llm をダウンロード。
  2. 会話のデータセットを用意
  3. LoRA で学習 (low rank adaptation 学習が早くなる。技術詳細は知らん。計算の近似らしい)
  4. 重みを保存
  5. linebot などで 推論コードを呼び出す。(generate.py など)

とりあえず、36 億パラメータの rinna で試す

スケジュール

10/7 開始 10/13 train_v2 学習 ok

予定 10/15 bot 化

学習用データの整形

andy-mori.txt を dictionary の配列にして generate_prompt に渡す。
メッセージは A さん B さん A さん B さんのように交互ではなくて
A A A B B A B のように不規則に繰り返される。
とりあえず  what_did_you_reply_to に文章を保存して学習対象が発言したら(今回は Andy が発言したら)
reply の対象を instruction に reply を output にした。
andy が連続で発言している場合  instruction output  ともに andy  になっている。
もっといいアイデアを募集

conversation_list = []

what_did_you_reply_to = ""

with open('./data/andy_mori.txt', 'r', encoding='utf-8') as file:

    for line in file:
        parts = line.strip().split(':')
        if len(parts) == 2:
            instruction, output = parts

            if instruction.strip() == 'Andy':
                conversation_dict = {"instruction": what_did_you_reply_to, "output": output.strip()}
                conversation_list.append(conversation_dict)

            what_did_you_reply_to = output.strip()

with open('output.json', 'w', encoding='utf-8') as json_file:
    json.dump(conversation_list, json_file, ensure_ascii=False, indent=4)

環境構築

requirment

pip install -Uqq  git+https://github.com/huggingface/peft.git
pip install -Uqq transformers datasets accelerate
pip install -i https://test.pypi.org/simple/ bitsandbytes
pip install sentencepiece

docker??

仮想環境作成  python3 -m venv name_of_your_env
仮想環境起動  source name_of_your_env/bin/activate
仮想環境の無効化  deactivate

jupyter notebook を使いたい場合
pip install ipykernel
ipython kernel install --user --name=name_of_your_env

pip install notebook
jupyter notebook

kernel -> name_of_your_env

AWS の環境について

やったこと

ローカルで作成したモデルをいれた dokcer 環境を AWS ECR を利用して lambda 関数としてしようできるようにした(lambda のメモリが 3GB しか使えなくて 10GB ほど使う本プロジェクトでは現状動いていない状況)

step 1: aws-cli のインストールと docker image の作成

まず aws-cli のインストールから -> https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html こちらからインストールしてください。

次に docker image を作成します。 マシンに docker(docker-compose)が入っていることを確認してdocker --version、function 配下に requirements.txt を作成して次の単語を改行して入れる。

transformers
torch
peft

次に

dockerfile の FUNCTION_DIR を自分の環境のパスに変更する

そして

sudo docker build --platform linux/amd64 -t makgpt:test1 .

をプロジェクトの root ディレクトリで実行

docker images でビルドした image を確認できる

step 2: AWS ECR の紐づけと ECR への docker image の push

ECR の紐づけ -> https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/getting-started-cli.html  のステップ2を参考に

ECR への image の push

docker tag (image-name):(tag) (aws_account_id).dkr.ecr.(region).amazonaws.com/(repo-name)

でリポジトリに push する image にタグをつけた後に

docker push (aws_account_id).dkr.ecr.(region).amazonaws.com/(repo-name)

で image を push することができる

ECR からの image の pull
docker pull (aws_account_id).dkr.ecr.(region).amazonaws.com/(repo-name):(repo-tag)

step 3: lambda 関数の作成

aws の lambda 関数のコンソールに行き、 関数の作成 -> コンテナイメージ -> 関数名の入力と ECR イメージの選択 -> 関数の作成

作成した関数のコンソールに飛び、設定からメモリを 10GB,タイムアウトを 10 分に設定してください。 また同じく設定から 関数 URL の作成をしてその関数 URL を使用する

step 4: テスト

curl "(関数 url)" -d '{"body":"{\"action\":\"こんにちは\"}"}'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published