|
--- |
|
library_name: transformers |
|
tags: |
|
- unsloth |
|
- japanese |
|
- llm-jp |
|
- lora |
|
datasets: |
|
- GENIAC-Team-Ozaki/Hachi-Alpaca_newans |
|
- llm-jp/magpie-sft-v1.0 |
|
language: |
|
- ja |
|
base_model: |
|
- llm-jp/llm-jp-3-13b |
|
license: apache-2.0 |
|
--- |
|
|
|
# llm-jp-3-13b-SFT-LoRA モデルカード |
|
|
|
llm-jp-3-13bをベースに、QLoRAとUnslothを用いてファインチューニングを行った日本語言語モデルです。 |
|
|
|
## モデルの詳細 |
|
|
|
### モデルの説明 |
|
|
|
- **開発者:** shakebenn |
|
- **共有者:** shakebenn |
|
- **モデルタイプ:** 言語モデル(デコーダーのみ) |
|
- **言語:** 日本語 |
|
- **ライセンス:** ベースモデルに準拠 |
|
- **ベースモデル:** llm-jp/llm-jp-3-13b |
|
|
|
### モデルソース |
|
|
|
- **リポジトリ:** https://huggingface.co/llm-jp/llm-jp-3-13b |
|
|
|
## 推論コードの使用方法 |
|
1. ファイルのダウンロード、準備 |
|
- [Kota-Ohno/LLM_saisyukadai](https://github.com/Kota-Ohno/LLM_saisyukadai)から「Model_Inference_v5.ipynb」と「tokenizer.model」、「elyza-tasks-100-TV_0.jsonl」をダウンロードします。 |
|
- 「tokenizer.model」に関しては、[llm-jp/llm-jp-tokenizer](https://github.com/llm-jp/llm-jp-tokenizer)から「llm-jp-tokenizer-100k.ver3.0b1.model」をダウンロードして、「tokenizer.model」という名前でリネームしても構いません。 |
|
- google colabで「Model_Inference_v5.ipynb」を開き、ランタイムをL4に設定します。 |
|
|
|
2. 必要なライブラリのインストール |
|
- terminalを開き、以下のコードを順番に実行します。 |
|
```bash |
|
apt-get install git-lfs |
|
git lfs install |
|
``` |
|
```bash |
|
git clone https://github.com/ggerganov/llama.cpp |
|
``` |
|
```bash |
|
pip install -r ./llama.cpp/requirements.txt |
|
``` |
|
|
|
3. モデルのダウンロード |
|
```bash |
|
git clone https://huggingface.co/llm-jp/llm-jp-3-13b |
|
``` |
|
- 「tokenizer.model」ファイルを「llm-jp-3-13b」ディレクトリに配置します |
|
|
|
4. モデルの変換 |
|
- 以下のコードを順番に実行します。 |
|
```bash |
|
python ./llama.cpp/convert_hf_to_gguf.py --outfile llm-jp-3-13b.gguf llm-jp-3-13b |
|
``` |
|
```bash |
|
cd llama.cpp |
|
mkdir build |
|
cd build |
|
cmake .. |
|
cmake --build . |
|
cd ../ |
|
cd ../ |
|
``` |
|
```bash |
|
./llama.cpp/build/bin/llama-quantize ./llm-jp-3-13b.gguf ./llm-jp-3-13b-q8_0.gguf q8_0 |
|
``` |
|
```bash |
|
git clone https://huggingface.co/shakebenn/llm-jp-3-13b-SFT-LoRA |
|
python ./llama.cpp/convert_lora_to_gguf.py --base llm-jp-3-13b --outfile ./llm-jp-3-13b-SFT-LoRA.gguf llm-jp-3-13b-SFT-LoRA |
|
``` |
|
|
|
4. 推論の実行 |
|
- 「elyza-tasks-100-TV_0.jsonl」を推論コードと同階層にコピーする |
|
- 推論コード(Model_Inference_v5.ipynb)のすべてのセルを実行する |
|
|
|
### 直接利用 |
|
|
|
このモデルは以下のような用途に適しています: |
|
- 質問応答 |
|
- テキスト生成 |
|
- 文章要約 |
|
- その他の自然言語処理タスク |
|
|
|
### 対象外の使用 |
|
|
|
以下の用途での使用は推奨されません: |
|
- 商用利用 |
|
- 重要な意思決定 |
|
- 医療・法律アドバイス |
|
- 有害なコンテンツの生成 |
|
|
|
## バイアス、リスク、制限事項 |
|
|
|
- 学習データに起因するバイアスが存在する可能性があります |
|
- 事実と異なる情報を生成する可能性があります |
|
- 有害なコンテンツを生成する可能性があります |
|
|
|
### 推奨事項 |
|
|
|
- 出力内容の検証を必ず行ってください |
|
- センシティブな用途での使用は避けてください |
|
- 生成された内容の責任は使用者が負うものとします |
|
|
|
## モデルの使用開始方法 |
|
|
|
## 学習の詳細 |
|
|
|
### 学習データ |
|
|
|
以下のデータセットを使用: |
|
- GENIAC-Team-Ozaki/Hachi-Alpaca_newans |
|
- llm-jp/magpie-sft-v1.0 |
|
|
|
### 学習手順 |
|
|
|
#### 前処理 |
|
- 指示文と回答のペアにフォーマット |
|
- コンテキスト長を512トークンに制限 |
|
|
|
#### 学習ハイパーパラメータ |
|
|
|
- **学習手法:** QLoRA with Unsloth |
|
- **量子化:** 4-bit |
|
- **LoRA設定:** |
|
- rank (r): 32 |
|
- alpha: 32 |
|
- dropout: 0.05 |
|
- target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"] |
|
- **トレーニング設定:** |
|
- バッチサイズ: 2 |
|
- 勾配累積: 4 |
|
- エポック数: 1 |
|
- 学習率: 2e-4 |
|
- シーケンス長: 512 |