|
|
--- |
|
|
license: cc-by-nc-sa-4.0 |
|
|
base_model: |
|
|
- llm-jp/llm-jp-3-13b |
|
|
--- |
|
|
|
|
|
## 環境準備 |
|
|
|
|
|
### 必要なライブラリのインストール |
|
|
|
|
|
```bash |
|
|
pip install transformers torch accelerate peft bitsandbytes |
|
|
``` |
|
|
|
|
|
## モデルのロードと推論 |
|
|
|
|
|
### Pythonスクリプト例 |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
from peft import PeftModel |
|
|
import torch |
|
|
|
|
|
# モデルとトークナイザーのロード |
|
|
base_model_id = "llm-jp/llm-jp-3-13b" |
|
|
model_id = "your-huggingface-username/llm-jp-3-13b-finetune" |
|
|
|
|
|
# トークナイザーをロード |
|
|
tokenizer = AutoTokenizer.from_pretrained(base_model_id) |
|
|
|
|
|
# ベースモデルをロード (4bit量子化) |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
base_model_id, |
|
|
load_in_4bit=True, |
|
|
device_map="auto" |
|
|
) |
|
|
|
|
|
# LoRAアダプタをマージ |
|
|
model = PeftModel.from_pretrained(model, model_id) |
|
|
model = model.merge_and_unload() |
|
|
|
|
|
def generate_response(prompt): |
|
|
# プロンプトフォーマット |
|
|
full_prompt = f"""### 指示 |
|
|
{prompt} |
|
|
### 回答 |
|
|
""" |
|
|
|
|
|
# トークン化 |
|
|
inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device) |
|
|
|
|
|
# 推論 |
|
|
outputs = model.generate( |
|
|
input_ids=inputs.input_ids, |
|
|
attention_mask=inputs.attention_mask, |
|
|
max_new_tokens=100, |
|
|
do_sample=False, |
|
|
repetition_penalty=1.2 |
|
|
) |
|
|
|
|
|
# デコード |
|
|
response = tokenizer.decode( |
|
|
outputs[0][inputs.input_ids.size(1):], |
|
|
skip_special_tokens=True |
|
|
) |
|
|
|
|
|
return response |
|
|
|
|
|
# 使用例 |
|
|
prompt = "日本の首都について教えてください。" |
|
|
print(generate_response(prompt)) |
|
|
``` |
|
|
|
|
|
## 注意事項 |
|
|
|
|
|
- このモデルは `CC-BY-NC-SA` ライセンスの下で提供されています |
|
|
- 非営利目的での使用に限定されます |
|
|
- 元のデータセットと同様のライセンス条件が適用されます |
|
|
|
|
|
## 引用情報 |
|
|
|
|
|
モデル元データセット: |
|
|
- 関根聡, 安藤まや, 後藤美知子, 鈴木久美, 河原大輔, 井之上直也, 乾健太郎. |
|
|
- "ichikara-instruction: LLMのための日本語インストラクションデータの構築" |
|
|
- 言語処理学会第30回年次大会 (2024) |
|
|
|
|
|
## トラブルシューティング |
|
|
|
|
|
1. CUDA out of memory エラー |
|
|
- `device_map="auto"` を `device_map="balanced"` に変更 |
|
|
- バッチサイズを減らす |
|
|
- より大きなGPUを使用 |
|
|
|
|
|
2. ライブラリバージョンの不整合 |
|
|
- 推奨バージョン: |
|
|
- transformers: 最新版 |
|
|
- torch: 2.0以降 |
|
|
- accelerate: 最新版 |
|
|
- peft: 最新版 |
|
|
|