Skip to content

hrnk420/AiV2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MPT-7B-Instruct ファインチューニング プロジェクト

このプロジェクトは、MosaicML社が開発したmosaicml/mpt-7b-instructモデルをベースに、独自のデータセットでファインチューニングを行い、対話形式の推論を実行するためのリポジトリです。

特徴

  • データ生成: Gemini APIを利用して、質問リストから独自のQ&Aデータセットを生成します。
  • ファインチューニング: PEFT(LoRA)を用いて、効率的にモデルの追加学習を行います。
  • CPU実行対応: GPUがない環境でも、CPUオフロードを利用してモデルの学習と推論が可能です。(※非常に時間がかかります)

1. 環境構築

1.1. リポジトリのクローン

git clone https://github.com/hrnk420/AiV2.git
cd AiV2

1.2. ベースモデルのダウンロード

ファインチューニングの土台となるmpt-7b-instructモデル(約14GB)をダウンロードします。

# Git LFSがインストールされている必要があります
git clone https://huggingface.co/mosaicml/mpt-7b-instruct ./mpt-7b-instruct

1.3. 仮想環境の構築とライブラリのインストール

Python 3.9環境での動作を確認しています。

# 仮想環境の作成
python -m venv venv

# 仮想環境のアクティベート (Windowsの場合)
.\venv\Scripts\Activate.ps1

# 必要なライブラリをインストール
pip install -r requirements.txt

2. 使い方

ステップ1: 学習データの生成 (datacreate.py)

  1. questions.txtファイルに、学習させたいQ&Aの「質問」を1行ずつ記述します。

  2. datacreate.pyを実行する環境で、GEMINI_API_KEYという名前の環境変数を設定します。

  3. 以下のコマンドを実行すると、Gemini APIが各質問に対する回答を生成し、data.jsonというファイルに保存します。

    python datacreate.py

ステップ2: ファインチューニング (finetuning.py)

data.jsonを使って、ベースモデルの追加学習を行います。学習が完了すると、モデルの差分データがlora_outputフォルダに保存されます。

python finetuning.py

注意: CPUでの実行には、数時間単位の非常に長い時間がかかります。

ステップ3: 推論 (inference.py)

ファインチューニングしたモデルと対話します。

python inference.py

スクリプトが起動し、「入力してください:」と表示されたら、質問を入力してモデルの応答を確認できます。CPUでの応答生成には数分かかることがあります。


##謝辞

このプロジェクトは、以下の素晴らしい技術を利用しています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages