微信扫码
添加专属顾问
我要投稿
LoRA fine-tuning,冻结模型参数,引入低阶矩阵,更新一小部分权重来适应特定任务。通过减少训练参数的数量,降低了计算成本和内存需求,同时,保留了预训练模型的知识和泛化能力。
LoRA的实现中,原始的模型权重保持不变,而是通过在前向传播过程中引入W_A和W_B的乘积来模拟权重的更新。这个过程可以表示为:
h = x @ (W_A @ W_B) * α
其中,h是模型的输出,x是输入,W_A和W_B是LoRA权重,α是缩放因子。通过这种方式,α直接影响了LoRA权重更新,对模型输出的贡献程度。如果α设置得较大,那么W_A和W_B的乘积对输出的影响就会更大,从而在fine-tuning过程中更强烈地调整模型以适应特定任务。相反,如果α设置得较小,那么权重更新的影响就会减弱,模型的变化就会更保守。
# step1 安装依赖!pip install trl transformers accelerate datasets bitsandbytes einops torch huggingface-hub git+https://github.com/huggingface/peft.gitfrom datasets import load_datasetfrom random import randrangeimport torchfrom transformers import AutoTokenizer, AutoModelForSeq2SeqLM,TrainingArguments,pipelinefrom peft import LoraConfig, prepare_model_for_kbit_training, get_peft_model, AutoPeftModelForCausalLMfrom trl import SFTTrainer# 训练数据使用:https://huggingface.co/datasets/samsumdataset = load_dataset("samsum")model_name = "google/flan-t5-small"model = AutoModelForSeq2SeqLM.from_pretrained(model_name)#Makes training faster but a little less accuratemodel.config.pretraining_tp = 1tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)#setting padding instructions for tokenizertokenizer.pad_token = tokenizer.eos_tokentokenizer.padding_side = "right"def prompt_instruction_format(sample):# 格式化promptreturn f"""### Instruction:Use the Task below and the Input given to write the Response:### Task:Summarize the Input### Input:{sample['dialogue']}### Response:{sample['summary']}"""# Create the trainertrainingArgs = TrainingArguments(output_dir='output',num_train_epochs=1,per_device_train_batch_size=4,save_strategy="epoch",learning_rate=2e-4)peft_config = LoraConfig(lora_alpha=16,lora_dropout=0.1,r=64,bias="none",task_type="CAUSAL_LM",)trainer = SFTTrainer(model=model,train_dataset=dataset['train'],eval_dataset = dataset['test'],peft_config=peft_config,tokenizer=tokenizer,packing=True,formatting_func=prompt_instruction_format,args=trainingArgs,)trainer.train()
训练过程建议使用google colab,加载数据集等操作,速度飞快。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-21
2025-08-20
2025-09-07
2025-08-21
2025-08-19
2025-08-05
2025-09-16
2025-08-20
2025-09-08
2025-10-02
2025-10-28
2025-10-28
2025-10-28
2025-10-27
2025-10-27
2025-10-26
2025-10-25
2025-10-24