softjapan/jaquad-sft
Viewer • Updated • 35.7k • 38
How to use softjapan/qwen2-jaquad-lora with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-1.5B-Instruct")
model = PeftModel.from_pretrained(base_model, "softjapan/qwen2-jaquad-lora")このリポジトリは LoRA アダプタのみを含みます。推論時はベースモデルQwen/Qwen2-1.5B-Instruct を読み込み、本アダプタを適用してください。
日本語の指示追従・QA・要約を中心に、softjapan/jaquad-sft を用いた SFT で性能の底上げを狙っています。
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
base_id = "Qwen/Qwen2-1.5B-Instruct"
adapter_id = "softjapan/qwen2-jaquad-lora"
tok = AutoTokenizer.from_pretrained(base_id, use_fast=True)
if tok.pad_token is None:
tok.pad_token = tok.eos_token
base = AutoModelForCausalLM.from_pretrained(base_id, device_map="auto", dtype="auto")
model = PeftModel.from_pretrained(base, adapter_id)
model.eval()
prompt = """### 指示
次の文章を要約してください。
### 入力
日本の首都は東京で...
### 応答
"""
inputs = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256)
print(tok.decode(out[0], skip_special_tokens=True))
プロンプト形式は学習時に合わせて「
### 指示 / ### 入力 / ### 応答」です。
統合して配布する場合は、ベースモデルのライセンスに従ってください。
from transformers import AutoModelForCausalLM
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained(base_id, device_map="auto", dtype="auto")
model = PeftModel.from_pretrained(base, adapter_id)
merged = model.merge_and_unload()
merged.save_pretrained("./qwen2-jaquad-lora-merged")
Qwen/Qwen2-1.5B-Instruct(Instruct 指向の Qwen2 系)Qwen/Qwen2-1.5B-Instructsoftjapan/jaquad-sft推奨事項
上の「すぐ使う」コードを実行してください。 Gradio デモ用の Spaces テンプレも簡単に用意できます(UI から指示・入力・出力を試験)。
softjapan/jaquad-sft(日本語 QA/指示追従用 SFT データ)
学習時のプロンプト整形
### 指示
{instruction}
### 入力
{input}
### 応答
{output}
use_fast=Truepad_token = eos_tokenmax_length = 1024padding = "max_length"r=8, alpha=16, dropout=0.05, target=["q_proj","k_proj","v_proj","o_proj"], bias="none"lr=2e-4, warmup_ratio=0.03, weight_decay=0.0per_device_train_batch_size=2, gradient_accumulation_steps=8bf16=True(対応 GPU)gradient_checkpointing=True, use_cache=False(GC との両立のため)TrainerDataCollatorForLanguageModeling(mlm=False)(Pad を -100 にマスク)dtype="auto", device_map="auto"eval_loss(必要に応じて PPL = exp(eval_loss) を試算)概算は使用 GPU/時間/電力係数に依存します。MLCO2 Calculator 等で見積もり可能です。 (例)A10/T4 クラスで数時間〜十数時間の SFT。省電力のため学習時は勾配チェックポイント・bf16 を利用。
@software{qwen2_1_5b_instruct_lora_jaquad_sft_2025,
title = {Qwen2-1.5B Instruct LoRA (JAQUAD SFT)},
author = {softjapan},
year = {2025},
url = {https://huggingface.co/softjapan/qwen2-jaquad-lora}
}
Base model
Qwen/Qwen2-1.5B-Instruct