【优质书籍推荐】大模型微调的技巧和方法

news2025/1/19 3:18:18

  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。

  今天给大家带来的文章是大模型微调的技巧和方法,希望能对同学们有所帮助。

文章目录

  • 1. 定义
  • 2. LoRA微调参数
  • 3. 书籍推荐
    • 3.1 《实战AI大模型》
    • 3.2 粉丝福利
    • 3.3 自主购买

1. 定义

  对于大语言模型而言,全量微调的代价是比较高的,需要数百GB的显存来训练具有几B参数的模型。为了解决资源不足的问题,大佬们提出了一种新的方法:低秩适应(Low-Rank Adaptation)。与微调OPT-175B相比,LoRA可以将可训练参数数量减少一万倍,并且GPU显存降低3倍以上。详细内容可参考论文《LoRA: Low-Rank Adaptation of Large Language Models》和HuggingFace PEFT博客文章《Parameter-Efficient Fine-Tuning of Billion-Scale Models on Low-Resource Hardware》。

在这里插入图片描述

  LoRA是一种常用的高效微调的训练方法(PEFT),旨在加快大型语言模型的训练过程,同时减少显存的使用。通过引入更新矩阵对现有权重进行操作,LoRA专注于训练新添加的权重。LoRA方法具有以下的几大优点:

  • 保留预训练权重:LoRA保持先前训练权重的冻结状态,最小化了灾难性遗忘的风险。这确保了模型在适应新数据时保留其现有知识。
  • 已训练权重的可移植性:与原始模型相比,LoRA中使用的秩分解矩阵参数明显较少。这个特点使得经过训练的LoRA权重可以轻松地转移到其他环境中,使它们非常易于移植。
  • 与注意力层集成:通常将LoRA矩阵合并到原始模型的注意力层中。此外,自适应缩放参数允许控制模型对新培训数据调整程度。
  • 显存效率:LoRA改进后具有更高效利用显存资源能力,在不到本机微调所需计算量3倍情况下运行微调任务成为可能。

  对于普通用户来说,依然很难满足1/3的显存需求。幸运的是,大佬们又发明了一种新的LoRA训练方法:量化低秩适应(QLoRA)。它利用bitsandbytes库对语言模型进行即时和近无损量化,并将其应用于LoRA训练过程中。这导致显存需求急剧下降,可以在2个3090卡上微调70B的模型。相比之下,要微调同等规模的模型通常需要超过16个A100-80GB GPU,对应的成本将非常巨大。详细内容可参考论文QLoRA: Efficient Finetuning of Quantized LLMs。

在这里插入图片描述

2. LoRA微调参数

  首先最关键的参数为:低秩矩阵对应的秩(rank)。为了减少显存,对权重矩阵应用了低秩分解。在LoRA论文中,建议rank设置不小于8(r = 8)。请记住,较高的rank会导致更好的结果,但需要更多的显存。数据集的数量和复杂度越高,所需的rank就越高。

  除此之外,另外需要设置的参数即为LoRA微调对应的网络层。最基本的训练对象是查询向量(例如q_proj)和值向量(例如v_proj)投影矩阵。不同模型对应的网络层如下所示:

ModelModel sizeDefault module
Baichuan7B/13BW_packbaichuan
Baichuan227B/13BW_packbaichuan2
BLOOM560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value
BLOOMZ560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value
ChatGLM36Bquery_key_value
Falcon7B/40B/180Bquery_key_value
InternLM7B/20Bq_proj,v_proj
LLaMA7B/13B/33B/65Bq_proj,v_proj
LLaMA-27B/13B/70Bq_proj,v_proj
Mistral7Bq_proj,v_proj
Mixtral8x7Bq_proj,v_proj
Phi1.5/21.3B/2.7BWqkv-Q
Qwen1.8B/7B/14B/72Bc_attn
XVERSE7B/13B/65Bq_proj,v_proj
Yi6B/34Bq_proj,v_proj

3. 书籍推荐

  大模型是深度学习自然语言处理皇冠上的一颗明珠,也是当前AI和NLP研究与产业中最重要的方向之一。《实战AI大模型》系统介绍了大模型的理论和实践方法,非常值得深入学习。

3.1 《实战AI大模型》

  本书涉及内容包含基本概念和实践技巧,全方位解读AI大模型填补人工智能领域(特别是AI大模型)) 理论与实践之间鸿沟的实用手册。

  本书是由人工智能领域资深专家尤洋老师倾力打造,获得了李开复、周鸿祎、颜水成三位大咖鼎力推荐,一经上市就登上了京东“计算机与互联网”图书排行榜Top1的宝座。
在这里插入图片描述
  本书涉及模型众多,具体包括Transformer、BERT、ALBERT、InstructGPT、GPT系列、ChatGPT、GPT 4和PaLM视觉模型等经典和最新的大模型。
在这里插入图片描述

3.2 粉丝福利

  • 本次送书两本
  • 活动时间:截止到2024-1-8 9:00
  • 参与方式:关注博主、并在此文章下面点赞、收藏并任意评论。

3.3 自主购买

  小伙伴也可以访问链接进行自主购买哦~

  直达京东购买链接🔗:《实战AI大模型》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1357821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL报错1054 - Unknown column ‘24023A00000‘ in ‘field list‘

MySQL 向表中插入数据时报错: 1054 - Unknown column 24023A00000 in field list 表的设计是: 执行插入数据sql语句后报错: 解决方法: 我设计表时是有id字段的,怎么报错显示字段不在表中??查找了很多资料…

threejs在透视相机模式下,绘制像素大小固定的元素

要求:在透视相机模式下绘制一个图标,图标大小始终为32*32px。图标如下: 实现思路: 使用THREE.Sprite。因为 SpriteMaterial 支持配置 sizeAttenuation 使Sprite大小不随相机的深度而衰减。所以我们只要保证sprite的初始的大小合适…

pycharm远程开发调试(remote development)踩坑记录2

在一次我清理了服务器上一些老的pycharm版本之后 打算重新装3.2版本,就全部给清理了。结果坏了事了,新版的装不上了。 试了公司和中科院的服务器都出现这样的问题,100%复现。md。 一直在这一步循环: Downloading the IDE Backen…

Midas NFX 各版本安装指南

Midas NFX下载链接 https://pan.baidu.com/s/1cOifluBBobRgJZHZxuODvw?pwd0531 1.鼠标右击【Midas NFX 2023(64bit)】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 Midas NFX 2023(64bit)】。 2.打开解压后的文件夹,双击打开…

武汉灰京文化:手游市场进入新时代 多元化与智能化并行发展

随着5G技术深入普及,以及智能AI技术在游戏领域的广泛运用,手游市场正在步入全新阶段。这一转变有望提升游戏品质,吸引更多玩家加入到这个多元化且智能化的游戏新纪元中。武汉灰京文化对此持有积极态度,武汉灰京文化认为这代表了手…

QT_02 窗口属性、信号槽机制

QT - 窗口属性、信号槽机制 1. 设置窗口属性 窗口设置 1,标题 2,大小 3,固定大小 4,设置图标在 widget.cpp 文件中: //设置窗口大小,此时窗口是可以拉大拉小的 //1参:宽度 //2参:高度 this->resize(800, 600); //设置窗口标题 this->setWindowTitle("…

BMS开发之面向对象思想(adbms1818)

借鉴adbms1818的底层驱动代码 前言:adbms1818的主要用途就是不同种类的寄存器里面存储不同的数据,程序员需要通过特定的协议往寄存器里面写入或者读出数据 (1)定义一个结构体 里面存储了adbms1818的所有寄存器的信息。然后我们看…

MYSQL 索引使用规则

索引失效 最左前缀法则 where之后写的顺序不重要&#xff0c;存在就可以 范围查询后面的索引查询失效&#xff08;比如>&#xff09;,但是>或者<是不会失效的 不要在索引列上进行运算操作&#xff0c;否则索引失效。 字符串类型字段不加引号索引会失效 尾部模糊匹配…

实战-centos7升级内核(yum方式)-2023.1.5(测试成功)

目录 前言 注意&#xff1a;内核升级可能涉及系统稳定性和兼容性的风险&#xff1b;在进行内核升级之前&#xff0c;请确保了解这些风险并备份重要的数据。 kernel-ml&#xff1a;kernel-ml 中的ml是英文【 mainline stable 】的缩写&#xff0c;elrepo-kernel中罗列出来的是最…

基于卷积神经网络的回归分析

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络的回归分析 完整代码:卷积神经网络的回归分析(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/…

前端跨域问题的解决思路

目录 前言 跨域问题的解决思路 一般跨域的解决方案 前言 做了一个简单页面&#xff0c;做了一些数据埋点&#xff0c;想通过企业微信机器人来推送数据&#xff0c;遇到了一些问题&#xff0c;顺便记录下。 跨域问题的解决思路 由于是项目比较简单&#xff0c;直接使用了aj…

日常工作 经验总结

1,在使用vue2开发项目时,快捷有效的组件化component 若有参数传递时,可以通过这样传递 在component中: 2,上拉加载,下拉刷新 若是使用局部进行上拉加载 下拉刷新 且需要用到scroll-view时 那么需要切记scroll-view在内被mescroll-uni包裹。若场景有限 对于无数据显示…

Linux第2步_创建虚拟机

VMware软件安装好后&#xff0c;就可以创建虚拟机了。 一、虚拟机对CPU的要求较高 i7 处理器&#xff1a;CPU&#xff1a;Intel(R) Core(TM) i7-8700 CPU 3.20GHz 3.19 GHz 内核数&#xff1a;6 线程数&#xff1a; 12 最大睿频频率&#xff1a; 4.60 GHz 英特尔 睿…

新手可理解的PyTorch线性层解析:神经网络的构建基石

目录 torch.nn子模块Linear Layers详解 nn.Identity Identity 类描述 Identity 类的功能和作用 Identity 类的参数 形状 示例代码 nn.Linear Linear 类描述 Linear 类的功能和作用 Linear 类的参数 形状 变量 示例代码 nn.Bilinear Bilinear 类的功能和作用 B…

勒索事件急剧增长,亚信安全发布《勒索家族和勒索事件监控报告》

近期(12.15-12.21)态势快速感知 近期全球共发生了247起攻击和勒索事件&#xff0c;勒索事件数量急剧增长。 近期需要重点关注的除了仍然流行的勒索家族lockbit3以外&#xff0c;还有本周top1勒索组织toufan。toufan是一个新兴勒索组织&#xff0c;本周共发起了108起勒索攻击&a…

【Bootstrap5学习 day10】

Flex布局 弹性盒子是CSS3的一种新的布局模式&#xff0c;更适合响应式的设计 创建一个弹性盒子容器 使用d-flex类&#xff0c;创建flexbox容器并将直接子项转换为flex项 <div class"d-flex p-3 bg-info text-white"><div class"p-2 bg-secondary"…

客服系统接入FastGPT

接入FastGPT 点击【应用】【外部使用】【API访问】【新建】新建一个KEY&#xff0c;同时也可以看到我们的API根地址 这个根地址和Key可以填入任何支持OpenAI接口的应用里&#xff0c;这个接口是兼容OpenAI格式。 在客服系统【知识库AI配置】里填上接口地址和接口密钥。这样我…

国家信息安全水平等级考试NISP二级题目卷⑥(包含答案)

国家信息安全水平等级考试NISP二级题目卷&#xff08;六&#xff09; 国家信息安全水平等级考试NISP二级题目卷&#xff08;六&#xff09;需要报考咨询可以私信博主&#xff01; 前言&#xff1a; 国家信息安全水平考试(NISP)二级&#xff0c;被称为校园版”CISP”,由中国信息…

接口自动化--断言

目标&#xff1a; 1、学习常见的自动化断言方法 2、把自动化断言分装和应用于接口测试 具体内容&#xff1a; 1、学习常见的自动化断言方法 第一类&#xff1a;比较大小和是否相等 而assert可以使用直接使用“”、“!”、“<”、“>”、“>”、"<"…

在 Windows 中安装 SQLite 数据库

在 Windows 上安装 SQLite 步骤1 请访问 SQLite 下载页面&#xff0c;从 Windows 区下载预编译的二进制文件 ​ 步骤2 您需要下载 sqlite-dll-win-x64-3440200.zip 和 sqlite-tools-win-x64-3440200.zip 压缩文件 步骤3 创建文件夹 C:\Program Files\SQLite&#xff0c;并在…