测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A22630. 参数高效微调低秩适配方法LoRA(Low-Rank Adaptation)是一种参数高效微调方法,通过只训练部分低秩矩阵插入至原始模型的关键层,实现大语言模型的高效定制。与传统微调相比,LoRA显著减少了训练参数量和显存需求,适用于资源受限场景下的大模型下游训练。一个典型训练场景如下:- 模型:Qwen-2.5-7B-Instruct;LoRA仅插入注意力机制中关键的两个投影层。- 资源:单卡1…

单选题 中等
知识点

题目描述

参数高效微调

低秩适配方法LoRA(Low-Rank Adaptation)是一种参数高效微调方法,通过只训练部分低秩矩阵插入至原始模型的关键层,实现大语言模型的高效定制。与传统微调相比,LoRA显著减少了训练参数量和显存需求,适用于资源受限场景下的大模型下游训练。一个典型训练场景如下:

- 模型:Qwen-2.5-7B-Instruct;LoRA仅插入注意力机制中关键的两个投影层。

- 资源:单卡16GB显存;输入序列长度上限2048。

- 训练策略:需将全局batch size控制在8左右,在显存足够的情况下尽量快的进行训练。

- 精度:启用半精度训练以降低显存占用。

- 产出:训练完成后,仅保存LoRA adapter权重,供下游推理使用。

请阅读以下训练代码,并根据需求完成空缺部分。

python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer
from peft import LoraConfig, get_peft_model

model_name = "Qwen/Qwen2.5-7B-Instruct"

# 1) 加载分词器
tokenizer = ____[26]____

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map="auto",
    torch_dtype=torch.float16,
    trust_remote_code=True
)

# 2) 配置LoRA
lora_config = LoraConfig(
    ____[27]____
    target_modules=____[28]____
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM"
)

model = get_peft_model(model, lora_config)

# 3) 定义Trainer(假设train_dataset已经准备好)
training_args = TrainingArguments(
    output_dir="./lora-qwen2.5-7b",
    num_train_epochs=3,
    ____[29]____
    learning_rate=2e-4,
    ____[30]____
    logging_steps=10,
    save_strategy="epoch"
)

trainer = Trainer(
    model=model,
    args=training_args,
    tokenizer=tokenizer,
    train_dataset=train_dataset,
)

trainer.train(    )

# 4) 保存LoRA权重
model.save_pretrained("./lora-qwen2.5-7b-lora")

Qwen2.5可能包含自定义分词器/处理逻辑,要求与模型端一致的remote code。请选择一种能正确加载该模型分词器的方式:(    )

选项(单选)

上一题 下一题