微调大模型不再难:LoRA方法带你轻松节省99%的训练成本!

我们之前说大模型有四种玩家,其中前三种都是要做模型训练的。而大部分公司或个人,都是在第二种开源大模型的基础上来做训练。

而这种训练方式又分为两种。一种要么就是从头训练,要么就Fine-tuning接着开源模型来训练,在基座模型已经训练好的基础上去做微调。

网上有个很火开源模型,叫羊驼。

其实是这个人Vallejo利用Meta公司开源的LLama 7B的模型微调出来的全新模型,依然是开源的。他仅仅用了52KB大小的数据集,然后把Llama训练出来的能力竟然约等于GPT-3.5,而且它的训练成本很低,不到600美金,他只是在8个80G的H100 GPU上训练3个小时,这个训练费用这个花费其实才不到100美金,更费钱的其实是数据的收集,因为他只是一个研究学者,他没有数据,于是他利用OpenAI的API,相当于调用GPT-3.5一问一答,生成了一批数据,调用API花了500美金。假如他本身就有数据的话,他可能连这500美金都不用花。可见这个微调模型的成本其实是挺低的。

下面这个羊驼就是这个模型的logo,现在羊驼的变体也出了很多,也是基于不同数据训练出来的。其实对我们大部分团队来说,如果要训练一个大模型,从头开始训练的话,得考虑清楚几点,一个是周期很长,第二是数据量会要求很多,第三个也是最重要的一个就是成本很高,这个普通玩家玩不起的,所以这也是为什么更多团队现在都倾向于做这种垂直大模型的微调。

最常用的微调方式就是这种,叫LoRA,名字挺好记的,全称是Low-Rank Adaptation of Large Language Models。当然除了这个是最主流的,还有prompt-tuning, 基于提示词的微调方法,Freeze冻结部分参数的方式来做微调等等。严格上来说,LoRA属于有监督微调(SFT)的一种。

LoRA这种方法为啥这么好呢,就是因为它节省算力资源呀,它的基本原理就是可以冻结预训练模型的全部参数权重,然后只在新增的网络层去做训练,你可以理解为做一些新增的参数训练。通俗来讲,咱们拿到这个开源模型之后,原始的参数不动,只是动新增的部分,这种微调经过LoRA这种技术一处理,除了省资源,居然效果也不错,不亚于其他不能怎么冻结参数的微调方式。而我们微调的一小部分的数据就可以根据你的兴趣来,假如说我们要训练一个治安场景的问答模型,那我就把这个行业收集的大量知识,做一个知识库用LoRA喂给大模型,我只训练这一小部分,成本即低还快。这个就叫大语言模型的低级别适应方法(LoRA)。

今天大概先分享这么多,关于LoRA的更多原理,我只能找浅显得跟大家科普下,再多的就要专业的算法专家来科普了。希望我的分享能够让你知其一二。



喜欢的朋友记得点赞、收藏、关注哦!!!

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

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

相关文章

【CPP】模板(后篇)

目录 13.1 非类型模板参数13.2 函数模板的特化13.3 类模板的特化13.4 模板的分离编译 这里是oldking呐呐,感谢阅读口牙!先赞后看,养成习惯! 个人主页:oldking呐呐 专栏主页:深入CPP语法口牙 13.1 非类型模板参数 顾名思义,非类型模板参数就是一个模板的参数,只不过不是类型,而…

基于深度学习的图像去雾研究进展

🌞欢迎莅临我的个人主页👈🏻这里是我专注于深度学习领域、用心分享知识精粹与智慧火花的独特角落!🍉 🌈如果大家喜欢文章,欢迎:关注🍷点赞👍🏻评论…

个人随想-gpt-o1大模型中推理链的一个落地实现

​首先祝大家中秋节快乐。 最近openai又推出了新的模型openai o1​还有它的mini版。官网的介绍,就是它的推理能力很强,比gpt-4o​有很大的提升。 最近也跟同行在聊这个o1,​看看落地方面有哪些可行性。在我们自己的实验上,把o1用…

JavaScript web API完结篇---多案例

BOM window对象 >包含docment Browser Object Model 定时器–延时函数 之前学的是间歇函数 让代码延迟执行 仅执行一次 setTimeout(回调函数,等待毫秒数) 消除 clearTimeout(timer) > 用于递归时需要进行去除 JS执行机制 单线程 > 一个任务结束&…

【C++笔记】类和对象的深入理解(三)

【C笔记】类和对象的深入理解(三) 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】类和对象的深入理解(三)前言一.日期类的实现1.1声明和定义分离1.2日期类整数1.3日期类整数1.4日期类-整数1.5日期类-日期1.6复用对…

Linux中安装maven

Linux中安装maven 1.下载2.安装3.配置环境变量4.maven相关配置 1.下载 下载地址:https://maven.apache.org/download.cgi 2.安装 指定位置上传压缩包: 解压: tar -zxvf apache-maven-3.9.5-bin.tar.gz修改解压缩后的文件名: mv apac…

Netty笔记09-网络协议设计与解析

文章目录 前言一、协议设计1. 数据格式2. 消息长度3. 编码方式4. 错误处理5. 安全性 二、协议解析1. 消息分隔2. 粘包与半包处理3. 校验机制 三、为什么需要协议?四、redis 协议五、HTTP 协议六、自定义协议要素编解码器💡 什么时候可以加 Sharable 前言…

【论文阅读】Act3D: 3D Feature Field Transformers for Multi-Task Robotic Manipulation

Abstract 3d感知表示非常适合机器人操作,因为它们很容易编码遮挡并简化空间推理。许多操作任务在末端执行器姿态预测中需要较高的空间精度,这通常需要高分辨率的3d特征网格,这对于处理来说计算成本很高。因此,大多数操作policies…

基于密码的大模型安全治理的思考

文章目录 前言一、大模型发展现状1.1 大模型技术的发展历程1.2 大模型技术的产业发展二、大模型安全政策与标准现状2.1 国外大模型安全政策与标准2.2 我国大模型安全政策与标准前言 随着大模型技术的迅速发展和广泛应用,其安全性问题日益凸显。密码学作为网络空间安全的核心技…

Unity webgl跨域问题 unity使用nginx设置跨域 ,修改请求头

跨域 什么是跨域 跨域是指浏览器因安全策略限制,阻止一个域下的网页访问另一个域下的资源。 一些常见的跨域情况: 协议不同 从 http://example.com 请求 https://example.com。域名不同 从 http://example.com 请求 http://anotherdomain.com。端口不…

《锐捷AP 胖模式配置示例》

目录 WEB配置方式: 1. 登录 AP 管理界面 2. 配置无线服务 3. 配置射频参数 4. 配置 VLAN (如果需要) 5. 配置 IP 地址 6. 其他高级设置(根据需求) 命令行配置: 1. 进入特权模式 2. 进入全局配置模式 3. 配置管理 IP 地址 4. 创建无线 SSID 5. 配置 SSID 加密…

多线程下的共享变量访问数据竞争的问题

多线程下对共享变量的写存在数据竞问题可导致数据与预期不一致。最近在研究race conditions漏洞,用以下python 代码记录一下,以此论证,如下: from concurrent.futures import ThreadPoolExecutor globalNum 5 def test():global…

【深度分析】OpenAI o1是最强的推理模型,却不是最强模型!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

一般在写SQL时需要注意哪些问题,可以提高查询的效率?

很多人写SQL按照自己喜好,没有规则意识,这对于自主查询影响不大,你爱怎么搞就怎么搞,一旦涉及到提交任务或团队共享,就不能乱写了,会浪费资源影响到开发效率,严重的甚至会服务器瘫痪。 提几个关…

python-在PyCharm中使用PyQt5

文章目录 1. 安装 PyQt5 和QtTools2. QtDesigner 和 PyUIC 的环境配置2.1 在 PyCharm 添加 Create Tools2.2 添加 PyUIC 工具 3. 创建ui界面4. 使用python调用ui界面参考文献 1. 安装 PyQt5 和QtTools QT 是最强大的 GUI 库之一,PyQt5 是 Python 绑定 QT5 应用的框…

idea一个窗口打开多个仓库的代码

一、背景 最近新进了一家外包公司,这个项目由于是微服务的,且每个微服务都独立用一个仓库进行代码管理。看项目的时候,我们不能一个窗口,只打开一个仓库代码,那样看起来会非常麻烦,一开始对项目全貌的了解…

Get包中的根组件

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"Get包简介"相关的内容,本章回中将介绍GetMaterialApp组件.闲话休提,让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经…

多线程篇(Fork/Join)(持续更新迭代)

目录 知识大纲 一、简介 二、工作窃取算法 三、设计思想 步骤一:分割任务 步骤二:执行任务并合并结果 四、使用 五、异常处理 六、Fork/Join框架的实现原理 1. ForkJoinTask的fork方法实现原理 2. ForkJoinTask的join方法实现原理 七、源码剖…

Java-数据结构-二叉树-习题(三)  ̄へ ̄

文本目录: ❄️一、习题一(前序遍历非递归): ▶ 思路: ▶ 代码: ❄️二、习题二(中序遍历非递归): ▶ 思路: ▶ 代码: ❄️三、习题三(后序遍历非递归): ▶ 思路: …

数据结构(7.3_3)——平衡二叉树的删除

平衡二叉树的删除 删除结点后&#xff0c;要保持二叉排序树的特性不变(左<中<右) 若删除结点导致不平衡&#xff0c;则需要调整平衡 平衡二叉树的删除步骤 删除结点(方法同"二叉排序树")一路向北找到最小不平衡子树&#xff0c;若没有找到&#xff0c;则不需…