metadata
license: cc-by-nc-sa-4.0
datasets:
- kinokokoro/ichikara-instruction-003
language:
- ja
base_model:
- llm-jp/llm-jp-3-13b
pipeline_tag: text-generation
library_name: transformers
llm-jp-3-13b-finetune 使用方法ガイド
モデル概要
このモデルは、llm-jp/llm-jp-3-13bをベースにLoRA (Parameter-Efficient Fine-Tuning)で学習された公開モデルです。
必要な環境
- Python 3.10以上
- CUDA対応GPU(推奨)
- 必要なライブラリ:
- transformers
- bitsandbytes
- accelerate
- torch
- peft
インストール手順
# 必要なライブラリのインストール
pip install -U pip
pip install -U transformers
pip install -U bitsandbytes
pip install -U accelerate
pip install -U peft
pip install -U torch
基本的な使用方法
1. シンプルな使用方法
from transformers import pipeline
# パイプラインの作成
generator = pipeline(
"text-generation",
model="harataku/llm-jp-3-13b-finetune",
device=0 # GPU使用
)
# テキスト生成
prompt = """### 指示
好きな食べ物について教えてください
### 回答
"""
response = generator(prompt, max_length=200, num_return_sequences=1)
print(response[0]['generated_text'])
2. 詳細な設定による使用方法
from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
BitsAndBytesConfig
)
import torch
# モデルの設定
model_id = "harataku/llm-jp-3-13b-finetune"
# 量子化の設定
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
# モデルとトークナイザーの読み込み
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=bnb_config,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
# 推論用の関数
def generate_response(input_text):
prompt = f"""### 指示
{input_text}
### 回答
"""
tokenized_input = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)
attention_mask = torch.ones_like(tokenized_input)
with torch.no_grad():
outputs = model.generate(
tokenized_input,
attention_mask=attention_mask,
max_new_tokens=100,
do_sample=False,
repetition_penalty=1.2,
pad_token_id=tokenizer.eos_token_id
)[0]
response = tokenizer.decode(outputs[tokenized_input.size(1):], skip_special_tokens=True)
return response
# 使用例
input_text = "好きな食べ物について教えてください"
response = generate_response(input_text)
print(response)
パラメータの説明
モデル生成時のパラメータ
max_new_tokens
: 生成する最大トークン数(デフォルト: 100)do_sample
: サンプリングを行うかどうか(デフォルト: False)repetition_penalty
: 繰り返しを抑制するためのペナルティ(デフォルト: 1.2)
入力フォーマット
入力は以下の形式で行います:
### 指示
[入力テキスト]
### 回答
トラブルシューティング
- メモリエラーが発生する場合:
# より少ないメモリ使用量の設定
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16 # bfloat16からfloat16に変更
)
- GPUが利用できない場合:
# CPUでの実行設定
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cpu",
low_cpu_mem_usage=True
)
注意事項
- 4bit量子化を使用しているため、メモリ使用量は効率的ですが、推論速度とのトレードオフがあります
- GPU環境での実行を推奨します
- 長い入力テキストの場合は、
max_new_tokens
の値を適宜調整してください
ライセンス
本モデルはベースモデル(llm-jp/llm-jp-3-13b)のライセンスを継承しています。また、学習データとして使用したichikara-instructionデータセットのライセンス(CC-BY-NC-SA)も適用されます。
引用
学習データについて:
関根聡, 安藤まや, 後藤美知子, 鈴木久美, 河原大輔, 井之上直也, 乾健太郎.
ichikara-instruction: LLMのための日本語インストラクションデータの構築.
言語処理学会第30回年次大会(2024)
更新履歴
- 2024/03/XX: モデルをpublic設定に変更
- 2024/03/XX: READMEを更新し、より簡単な使用方法を追加