|
|
--- |
|
|
license: apache-2.0 |
|
|
datasets: |
|
|
- Chottokun/databricks-dolly-15k-ja-gal |
|
|
language: |
|
|
- ja |
|
|
tags: |
|
|
- unsloth |
|
|
- peft |
|
|
- lora |
|
|
- sft |
|
|
- trl |
|
|
- torch |
|
|
- datasets |
|
|
- bitsandbytes |
|
|
- 4bit |
|
|
- gguf |
|
|
- q8_0 |
|
|
- colab |
|
|
- chat-template |
|
|
- fastlanguagemodel |
|
|
base_model: |
|
|
- unsloth/gpt-oss-20b-GGUF |
|
|
--- |
|
|
|
|
|
## モデルの詳細 (Model Details) |
|
|
|
|
|
### モデルの説明 (Model Description) |
|
|
- 開発者: YU SANOGAWA |
|
|
- モデルタイプ: LLM |
|
|
- 対応言語 (NLP): 日本語, 英語(学習データに依存) |
|
|
- ファインチューニング元のモデル : unslotgh/gpt-oss-20b |
|
|
|
|
|
--- |
|
|
|
|
|
## 利用方法 (Uses) |
|
|
|
|
|
### 直接利用 (Direct Use) |
|
|
- テキスト生成 |
|
|
- チャットボット |
|
|
- 指示応答(Instruction Following) |
|
|
|
|
|
### 下流での利用 (Downstream Use) |
|
|
- 専門ドメインへの追加チューニング |
|
|
- アプリケーションへの統合(例: Q&A システム, サポートチャット) |
|
|
|
|
|
### 利用対象外 (Out-of-Scope Use) |
|
|
- 有害コンテンツの生成(差別, 偽情報, 違法行為に関する利用) |
|
|
- 医療・法律など人命や重大な決定に関わる用途 |
|
|
|
|
|
--- |
|
|
|
|
|
## バイアス・リスク・制約 (Bias, Risks, and Limitations) |
|
|
|
|
|
- 学習データに依存したバイアスが含まれる可能性がある |
|
|
- 応答に誤情報や不正確な知識を含む可能性がある |
|
|
- 英語以外の性能はデータ量に依存する |
|
|
|
|
|
--- |
|
|
|
|
|
## 推奨事項 (Recommendations) |
|
|
|
|
|
- 出力はそのまま利用せず、人間のレビューを行うこと |
|
|
- 下流利用者には、バイアス・リスクの存在を明示すること |
|
|
|
|
|
--- |
|
|
|
|
|
## モデルの利用開始方法 (How to Get Started with the Model) |
|
|
|
|
|
```python |
|
|
from transformers import AutoTokenizer |
|
|
from trl import SFTTrainer |
|
|
from peft import PeftModel |
|
|
|
|
|
# モデルとトークナイザの読み込み |
|
|
tokenizer = AutoTokenizer.from_pretrained("モデル名") |
|
|
model = PeftModel.from_pretrained("ベースモデル", "LoRA重み") |
|
|
|
|
|
# Trainer の設定 |
|
|
trainer = SFTTrainer( |
|
|
model=model, # 場合によっては model.base_model を渡す |
|
|
tokenizer=tokenizer, |
|
|
train_dataset=train_dataset, |
|
|
eval_dataset=eval_dataset, |
|
|
) |
|
|
``` |
|
|
⚠️ 注意: `AttributeError: 'PeftModel' object has no attribute '_flag_for_generation'` が出る場合は、 |
|
|
|
|
|
- `transformers`, `peft`, `trl` を最新版にアップデート |
|
|
- または `model=model.base_model` を渡す |
|
|
|
|
|
で解決可能です。 |
|
|
|
|
|
--- |
|
|
|
|
|
## 学習の詳細 (Training Details) |
|
|
|
|
|
### 学習データ (Training Data) |
|
|
- Datasetを参照 |
|
|
|
|
|
### 学習手順 (Training Procedure) |
|
|
- LoRA を用いたパラメータ効率的なファインチューニング |
|
|
- `trl.SFTTrainer` を利用 |
|
|
|
|
|
### 学習ハイパーパラメータ (Training Hyperparameters) |
|
|
- 学習スキーム: SFT (Supervised Fine-Tuning) |
|
|
- 学習率: **2e-4** |
|
|
- バッチサイズ(デバイスあたり): **2** (`per_device_train_batch_size=2`) |
|
|
- 勾配累積: **4** (`gradient_accumulation_steps=4`) |
|
|
- 有効バッチサイズ(参考): `2 × 4 × #GPU` 例)単一GPUなら **8** |
|
|
- エポック数: **未固定(`max_steps=60` を指定)** |
|
|
- 早期検証用に **総ステップ数 60** で打ち切り |
|
|
- ウォームアップ: **5 steps** (`warmup_steps=5`) |
|
|
- 最適化手法: **AdamW 8-bit**(`optim="adamw_8bit"`) |
|
|
- Weight Decay: **0.01** |
|
|
- スケジューラ: **linear**(`lr_scheduler_type="linear"`) |
|
|
|
|
|
--- |
|
|
|
|
|
## 技術仕様 [任意] (Technical Specifications) |
|
|
- **モデルアーキテクチャと目的**: Transformer, Causal LM |
|
|
- **計算インフラ**: GPU クラスタ |
|
|
- **GPU SPEC**: A100 by google colabolatory |