Slide 12
Slide 12 text
AI 12
QLoRAとはLLMを効率的にFine Tuningする手法
- モデルパラメータは量子化(Quantization)して固定
- ハイパーパラメータである r/lora_alphaが重要[15]
左はBitsAndBytesによる4bit量子化の例だが
AutoAWQやintel/auto-roundも利用されていた
Retrieverのfine tuning① QLoRA
from transformers import AutoTokenizer, AutoModel,BitsAndBytesConfig
from peft import LoraConfig, get_peft_model,
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
config = LoraConfig(
r=64,
lora_alpha=128,
target_modules=[
"q_proj",
"k_proj",
"v_proj",
"o_proj",
"gate_proj",
"up_proj",
"down_proj",
],
bias="none",
lora_dropout=0.05, # Conventional
task_type="CAUSAL_LM",
)
model = AutoModel.from_pretrained(model_path,
quantization_config=bnb_config,device_map=device)
model = get_peft_model(model, config)
[15]のコードより抜粋