🚀 LoftQ初始化
LoftQ(LoRA微調感知量化)在給定全精度預訓練權重W的情況下,提供量化後的主幹網絡Q以及LoRA適配器A和B。本項目旨在解決大語言模型在量化過程中與LoRA微調不兼容的問題,通過提供特定的量化主幹和適配器,提升模型在微調時的性能和效率。
| 論文 | 代碼 | PEFT示例 |
本模型Llama-2-7b-hf-4bit-64rank
源自 LLAMA-2-7b。主幹網絡存儲於LoftQ/Llama-2-7b-hf-4bit-64rank
,LoRA適配器存儲於subfolder='loftq_init'
。
✨ 主要特性
- 量化支持:提供量化後的主幹網絡和LoRA適配器,減少模型存儲和計算資源需求。
- LoRA微調感知:專門為LoRA微調設計的量化方法,提高微調效率。
📦 安裝指南
文檔未提供具體安裝步驟,暫不展示。
💻 使用示例
基礎用法
以下是加載此模型並準備進行LoRA微調的示例:
import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
from peft import PeftModel
MODEL_ID = "LoftQ/Llama-2-7b-hf-4bit-64rank"
base_model = AutoModelForCausalLM.from_pretrained(MODEL_ID)
peft_model = PeftModel.from_pretrained(
base_model,
MODEL_ID,
subfolder="loftq_init",
is_trainable=True,
)
高級用法
以下是模型在 GSM8K 上微調後進行推理的示例代碼:
import torch
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
from peft import PeftModel
MODEL_ID = "LoftQ/Llama-2-7b-hf-4bit-64rank"
base_model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
torch_dtype=torch.bfloat16,
quantization_config=BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=False,
bnb_4bit_quant_type='nf4',
),
)
peft_model = PeftModel.from_pretrained(
base_model,
MODEL_ID,
subfolder="gsm8k",
is_trainable=True,
)
完整代碼請見我們的 Github倉庫
📚 詳細文檔
模型信息
主幹網絡
屬性 |
詳情 |
存儲格式 |
bitsandbytes nf4 |
大小 |
~ 4.2 GiB |
加載格式 |
bitsandbytes nf4 |
GPU加載大小 |
~ 4.2 GiB |
LoRA適配器
屬性 |
詳情 |
秩 |
64 |
lora_alpha |
16 |
目標模塊 |
["down_proj", "up_proj", "q_proj", "k_proj", "v_proj", "o_proj", "gate_proj"] |
實驗結果
我們在 GSM8K 和 WikiText-2 的監督微調任務上進行了實驗。
模型 |
比特數 |
秩 |
LoRA初始化 |
GSM8K |
WikiText-2 |
LLAMA-2-7b |
16 |
64 |
高斯分佈 + 0 |
36.9 |
5.08 |
LLAMA-2-7b |
4 |
64 |
高斯分佈 + 0 (QLoRA) |
35.1 |
5.70 |
LLAMA-2-7b |
4 |
64 |
LoftQ |
35.0 |
5.24 |
🔧 技術細節
文檔未提供具體技術細節內容,暫不展示。
📄 許可證
本項目採用MIT許可證。
📖 引用
@article{li2023loftq,
title={Loftq: Lora-fine-tuning-aware quantization for large language models},
author={Li, Yixiao and Yu, Yifan and Liang, Chen and He, Pengcheng and Karampatziakis, Nikos and Chen, Weizhu and Zhao, Tuo},
journal={arXiv preprint arXiv:2310.08659},
year={2023}
}