当前位置: 首页 > 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及查看模型结构

相关文章:

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

目录 一、引言 二、LoraConfig配置参数 2.1 概述 2.2 LoraConfig参数说明 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。 🤗 Transformers …...

8-1RT-Thread消息队列

8-1RT-Thread消息队列 消息队列又称队列,是一种常用于线程间通信的数据结构。 消息队列控制块里有两个链表,空闲列表用来挂接空的小几块,另一个链表是用来挂接存有消息的消息框。其中消息链表头指向消息队列当中的第一个消息框,而…...

解除网站IP抓取限制的方法有哪些?

在爬取网站数据时,经常会遇到IP被限制,导致返回的数据无法显示或者直接空白的情况。这时候就需要采取一些方法来解除网站对IP的爬取限制。IP代理是帮助用户绕过网站限制,保持稳定连接,实现数据顺畅爬取的重要解决方案。 1、IP代理…...

“手撕”二叉树的OJ习题

故事的开头,我们先来三道不是oj的开胃菜,练练手感,后面9道都是OJ题。 目录 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 第十一题 第一题 二叉树前序非递归遍历实现 。 首先我们需要一个栈来存放二…...

Linux Mint 21.3简介

Linux Mint 21.3是一个更新版本,其中包含了许多新特性和改进。以下是一些主要更新内容: 1. Cinnamon 6.0桌面环境:Linux Mint 21.3采用了最新的Cinnamon 6.0桌面环境,带来了新的功能和改进,例如支持Wayland会话&#…...

C++11 面试题整理

C面试题 1 菱形继承 2 多态 多态实现原理: 静态多态 动态多态 静态多态: 依赖函数重载,编译期确定。 函数重载:允许在同一作用于内声明多个功能类似的同名函数,函数列表不同。注意:不能仅通过返回值类型…...

【智能制造-2】焊缝跟踪

焊缝跟踪? 焊缝跟踪:指在焊接位置前方安装光学传感器进行数据采集,然后传输到焊接机器人,进行自适应的各种模糊控制算法校正焊接机器人或专机的轨迹,实现自适应控制,达到实时的焊缝跟踪。 焊缝跟踪的方法…...

优思学院|用ChatGPT快速完成数据分析图表【柏累托图法】

数据分析是很多行业的人不可少的一部分,尤其是质量工程师更是日常的工作。然而,随着科技的进步,人工智能(AI)将逐渐承担起数据计算的工作,这意味着未来的质量工程师需要具备的不仅仅是计算能力,…...

[晕事]今天做了件晕事37 extern “C“ 被认为了是外部函数

最近看到一个函数声明是 extern “C" void _dump(); 这里的声明是要告诉编译器,这个_dump是C语言的符号,没有经过mangle过的。但是这个关键字可能让人混淆是外部函数。因为这个关键字可以声明外部函数。这也算是一词多用的一个普遍问题。关键的关键…...

问题:关于醋酸钠的结构,下列说法错误的是() #媒体#媒体

问题:关于醋酸钠的结构,下列说法错误的是() A.有极性键 B.有非极性键 C.是极性分子 D.是离子晶体 参考答案如图所示...

网络安全(补充)

同步包风暴(SYN Flood)攻击者假造源网址发送多个同步数据包(SYN Packet)给服务器,服务器因无法收到确认数据包(ACK Packet),使TCP/IP协议三次握手无法顺利完成,因而无法建…...

Redis集群(3)

集群扩容 节点配置和启动 我们要加入两个节点,主节点端口为6903,从节点端口为6933。配置与6900节点类似,不再赘述。启动这两个节点: ./redis-server ../conf/cluster_m_6903.conf ./redis-server ../conf/cluster_s_6933.conf加…...

防止Selenium被检测 Google Chrome 125

背景 最近在使用selenium自动播放学习课程,相信大家也有一些类似的使用场景。 能自动化的事情,绝不自己干。 为防止被检测是机器人做题,刷视频,需要做一些小调整。 先来看作为服务方维护者,是如何检测是Selenium打…...

LeetCode 算法:螺旋矩阵c++

原题链接🔗:螺旋矩阵 难度:中等⭐️⭐️ 题目 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&…...

【全开源】医护上门系统小程序APP公众号h5源码

医护上门系统:健康守护,就在您身边 🚪引言:开启全新的医护模式 在快节奏的现代生活中,健康问题往往成为我们关注的焦点。而“医护上门系统”正是为了满足这一需求,将专业的医疗服务送到您的家中。这一创新…...

结构体<C语言>

导言 结构体是C语言中的一种自定义类型,它的值(成员变量)可以是多个,且这些值可以为不同类型,这也是和数组的主要区别,下面将介绍它的一些基本用法,包括:结构体的创建、结构体变量的…...

点云分割报告整理(未完成版-每天写一点)

体积占用网格表示对点进行体素化,然后使用3d卷积神经网络来学习体素级语义。由于点云的稀疏性,体素化效率低,为避免较高的计算成本而忽略了细节。此外,由于同一体素内的所有点都被赋予了相同的语义标签,因此精度受到限…...

python基础 002 - 1 基础语法

1 标识符(identifier),识别码,表明身份 身份证,ID 定义:在编程语言中标识符就是程序员自己规定的具有特定含义的词,比如类名称、属性名称、变量名等, 在Python 中,pyt…...

浅谈Web开发的三大主流框架:Angular、React和Vue.js

在现代Web开发领域,Angular、React和Vue.js作为三大主流前端框架,各自拥有独特的特点和优势,为开发者提供丰富的选择。让我们更深入地了解这三大框架,并通过一些小型样例来展示它们的特性。 Angular Angular是一个完整的前端框架…...

使用net.sf.mpxj读取project的.mpp文件

1、导入.mpp文件 public void importMppFile(String updateType, MultipartFile multipartFile) {try (InputStream inputStream multipartFile.getInputStream()) {// 读取文件的组件MPPReader mppReader new MPPReader();// 注意,如果在这一步出现了读取异常&a…...

ubuntu 22.04 升级到24.04

step1. sudo apt update sudo apt upgrade sudo apt dist-upgrade step2. sudo apt autoremove step3. sudo apt install update-manager-core step4. sudo vim /etc/update-manager/release-upgrades 将 Prompt 设置为 lts: Promptlts 保存并退出 step5. sudo do-r…...

FreeRTOS学习笔记-基于stm32(14)内存管理

一、FreeRTOS 内存管理简介 FreeRTOS有两种方法来创建任务,队列,信号量等,一种动态一种静态。静态方法需要手动定义任务堆栈。使用动态内存管理的时候 FreeRTOS 内核在创建任务、队列、信号量的时候会动态的申请 RAM。 我们在移植FreeRTOS时可…...

关于Lambert W函数

来源:R. M. Corless, G. H. Gonnet, D. E. G. Hare, D. J. Jeffrey, and D. E. Knuth, “On Lambert’s W function,” Adv. Comput. Math., vol. 5, pp. 329–359, May 1996, doi: 10.1007/BF02124750. 摘要 Lambert W函数被定义为函数 w ↦ w e w w \mapsto we^…...

【免杀】C2远控-APC注入-进程镂空

目录 进程镂空&傀儡进程(主要过内存扫描)代码 傀儡进程演示如何上线上线演示 APC注入&进程欺骗(主要过内存扫描)同步调用与异步调用代码演示 进程镂空&傀儡进程(主要过内存扫描) 进程镂空(Pro…...

20240611 讯飞JAVA工程师(研发经理岗)面试

1.线程安全的集合类 在Java中,一些线程安全的集合类有Stack、Vector、Properties、Hashtable等 2.线程池中execute和submit的区别 1)参数及返回值不同 excute只能提交Runnable,无返回值 submit既可以提交Runnable,返回值为null&am…...

【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶

文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中,需要开…...

go语言接口之http.Handler接口

package httptype Handler interface {ServeHTTP(w ResponseWriter, r *Request) }func ListenAndServe(address string, h Handler) error ListenAndServe函数需要一个例如“localhost:8000”的服务器地址,和一个所有请求都可以分 派的Handler接口实例。它会一直运…...

R语言 | 使用最简单方法添加显著性ggpubr包

本期教程原文:使用最简单方法添加显著性ggsignif包 本期教程 获得本期教程代码和数据,在后台回复关键词:20240605 小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程、转录组上游分析、转录组下游…...

【Linux】shell脚本变量——系统变量、环境变量和用户自定义变量

系统变量 系统变量是由系统预设的,它们通常在系统启动时被加载,并对所有用户和所有shell实例都有效。这些变量通常控制着系统的行为和配置,例如PATH(命令搜索路径)、HOME(用户主目录)等。系统变…...

QWidget 属性——windowTitle·windowIcon·qrc

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、windowTitle二、windowIcon三、qrc 一、windowTitle windowTitle 是一个通常用于表示窗口标题…...

网站建设需要的服务器/腾讯3大外包公司

一二三四五六七八九十百千万亿兆吉太拍艾分厘毫微零壹贰叁肆伍陆柒捌玖拾佰仟『』〖〗【】{}≈≡≠=≤≥<>≮≯∷+-/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥∥∠⌒⊙≌∽√′″$&a…...

wordpress相册打造的视频弹出/如何制作个人网站

首款骁龙870平板官宣:联想小新平板 5月25日 见预热了许久的联想小新平板,终于揭开了神秘的面纱,联想小新官博昨天发布官宣消息:真香价 5月25日 19:30分 平板发布会见。根据联想小新官博预热来看,此次发布会…...

宁夏水利厅建设管理处网站/seo搜索如何优化

MinHash首先它是一种基于JaccardIndex相似度的算法,也是一种LSH的降维的方法,应用于大数据集的相似度检索、推荐系统。下边按我的理解介绍下MinHash。举例A,B两个集合:A{s1,s3,s6,s8,s9}B{s3,s4,s7,s8,s10}根据JaccardIndex公式&a…...

广告制作公司开票范围/百度seo排名优化如何

安装说明 下载Pixymon和pixy对应markone的固件,在这里。 固件必须是firmware_IRLOCKpixy_1.0.1.hex irlock markone 然后固件里 irlock pixy 给Pixy刷固件的方法 打开PixyMon,将Pixy连接到电脑,然后长按Pixy上的按钮,进入烧…...

如何提高网站的安全性/uc推广登录入口

DBSCAN-SWA:一行命令识别并注释溶源噬菌体DBSCAN-SWA: an integrated tool for rapid prophage detection and annotation介绍DBSCAN-SWA是一个结合了具有噪音的密度聚类算法(density-based spatial clustering of applications with noise, DBSCAN-SWA)和滑动窗口算…...

一级a做爰片免费网站录像/关键词优化需要从哪些方面开展

题目传送门 1 /*2 二分搜索&#xff1a;式子两边取对数&#xff0c;将x提出来&#xff0c;那么另一边就是一个常数了&#xff0c;函数是&#xff1a;lnx/x。二分搜索x&#xff0c;注意要两次 3 */4 #include <cstdio>5 #include <algorithm>6 #include <cma…...