当前位置: 首页 > news >正文

【AI大模型】Transformers大模型库(八):大模型微调之LoraConfig

 

目录

一、引言 

二、LoraConfig配置参数

2.1 概述

2.2 LoraConfig参数说明

2.3 代码示例

三、总结


一、引言 

 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。

🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。
🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。
🤗 Transformers 支持三个最热门的深度学习库: Jax, PyTorch 以及 TensorFlow — 并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载和推理。

本文重点介绍LoraConfig配置参数

二、LoraConfig配置参数

2.1 概述

LoraConfig是Hugging Face transformers库中用于配置LoRA(Low-Rank Adaptation)的类。LoRA是一种用于微调大型语言模型的轻量级方法,它通过添加低秩矩阵到预训练模型的权重上来实现适应性调整,从而在不显著增加模型大小的情况下提升特定任务的性能。这种方法特别适合于资源有限的环境,因为它减少了存储和计算的需求。

2.2 LoraConfig参数说明

LoraConfig允许用户设置以下关键参数来定制LoRA训练。

  • r: 低秩矩阵的秩,即添加的矩阵的第二维度,控制了LoRA的参数量。
  • alpha: 权重因子,用于在训练后将LoRA适应的权重与原始权重相结合时的缩放。
  • lora_dropout: LoRA层中的dropout率,用于正则化。
  • target_modules: 指定模型中的哪些模块(层)将应用LoRA适应。这允许用户集中资源在对任务最相关的部分进行微调。
  • bias: 是否在偏置项上应用LoRA,通常设置为'none'或'all'。
  • task_type: 指定任务类型,如'CAUSAL_LM',以确保LoRA适应正确应用到模型的相应部分。

2.3 代码示例

这是一段LoraConfig配置Qwen2的代码,指定模型中的"q_proj"、"v_proj"等层应用LoRA,了解具体有哪些层,可以通过print(model)查看。

config = LoraConfig(r=64,lora_alpha=16,target_modules=["q_proj", "v_proj", "v_proj", "o_proj", "gate_proj", "up_proj","down_proj"],lora_dropout=0.05,bias="none",task_type="CAUSAL_LM",
)model = get_peft_model(model, config)
print_trainable_parameters(model)

三、总结

本文简要介绍LoraConfig的配置参数情况,具体的机遇peft对大模型进行微调后面单独开一页详细讲解。

如果您还有时间,可以看看我的其他文章:

《AI—工程篇》

AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效

AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署

AI智能体研发之路-工程篇(三):大模型推理服务框架Ollama一键部署

AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署

AI智能体研发之路-工程篇(五):大模型推理服务框架LocalAI一键部署

《AI—模型篇》

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争

AI智能体研发之路-模型篇(四):一文入门pytorch开发

AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

AI智能体研发之路-模型篇(六):【机器学习】基于tensorflow实现你的第一个DNN网络

AI智能体研发之路-模型篇(七):【机器学习】基于YOLOv10实现你的第一个视觉AI大模型

AI智能体研发之路-模型篇(八):【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战

AI智能体研发之路-模型篇(九):【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战

《AI—Transformers应用》

【AI大模型】Transformers大模型库(一):Tokenizer

【AI大模型】Transformers大模型库(二):AutoModelForCausalLM

【AI大模型】Transformers大模型库(三):特殊标记(special tokens)

【AI大模型】Transformers大模型库(四):AutoTokenizer

【AI大模型】Transformers大模型库(五):AutoModel、Model Head及查看模型结构

http://www.lryc.cn/news/370011.html

相关文章:

  • 8-1RT-Thread消息队列
  • 解除网站IP抓取限制的方法有哪些?
  • “手撕”二叉树的OJ习题
  • Linux Mint 21.3简介
  • C++11 面试题整理
  • 【智能制造-2】焊缝跟踪
  • 优思学院|用ChatGPT快速完成数据分析图表【柏累托图法】
  • [晕事]今天做了件晕事37 extern “C“ 被认为了是外部函数
  • 问题:关于醋酸钠的结构,下列说法错误的是() #媒体#媒体
  • 网络安全(补充)
  • Redis集群(3)
  • 防止Selenium被检测 Google Chrome 125
  • LeetCode 算法:螺旋矩阵c++
  • 【全开源】医护上门系统小程序APP公众号h5源码
  • 结构体<C语言>
  • 点云分割报告整理(未完成版-每天写一点)
  • python基础 002 - 1 基础语法
  • 浅谈Web开发的三大主流框架:Angular、React和Vue.js
  • 使用net.sf.mpxj读取project的.mpp文件
  • ubuntu 22.04 升级到24.04
  • FreeRTOS学习笔记-基于stm32(14)内存管理
  • 关于Lambert W函数
  • 【免杀】C2远控-APC注入-进程镂空
  • 20240611 讯飞JAVA工程师(研发经理岗)面试
  • 【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶
  • go语言接口之http.Handler接口
  • R语言 | 使用最简单方法添加显著性ggpubr包
  • 【Linux】shell脚本变量——系统变量、环境变量和用户自定义变量
  • QWidget 属性——windowTitle·windowIcon·qrc
  • 深入理解rtmp(一)之开发环境搭建