大模型微调总结

大模型微调经验分享

大模型微调目的

  1. 模型:大模型仍是欠拟合状态。在某些特定任务上无法达到实际业务需求 or 性能差无法直接使用 ==> 改善特定任务下欠拟合程度

  2. 数据:预训练数据分布和特定任务数据分布不一致 ==>将特定任务、场景的语料的内在关系融入大模型参数中,同时和预训练的通用语料建立联通关系。缩小预训练数据和业务数据的差异,增强对业务数据的理解能力。

  3. 提高在特定场景、任务的准确率 && 减少幻觉现象
    大模型的幻觉问题调研

大模型微调方法

请添加图片描述

plug-in

chatgpt插件
plug-in: 第三方api,调用插件可以增强LLM系统的功能,比如:搜索api、科学计算等等
plug-in优化:补充系统能力比如文档解析插件;提升单个插件完成任务的准确度比如提高召回率

原始模型参数微调

全量微调(Full Fine-Tuning,FT)

  1. 微调模型与原始预训练模型大小相同
  2. 所有参数都可以通过梯度回传到更新,理论上限最高,资源消耗最大
  3. 一般会走完预训练的3阶段,也叫Continual pretraining

==> 所需资源、训练时间最大,且当语料不够大时容易过拟

部分层微调(Freeze Tuning)

  1. 只微调与训练模型的某些层来适配新的任务
  2. 一般微调模型最后1~3层,微调参数可以指定微调MLP或QKV

==> 局部更新参数,不高效

逐层微调

从底层开始逐层微调,直至所有层都完成微调
==> 表现不好

参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)

只微调少量或者额外的参数,降低计算、存储成本

LoRA/QLoRA

在这里插入图片描述

LoRA模型微调原理视频
https://blog.csdn.net/weixin_44826203/article/details/129733930

  1. 通过小参数的低秩矩阵来近似模型权重矩阵W的参数更新
  2. 假设:大模型微调过程中权重变化具有较低的内在秩
  3. 推理过程先合并基座模型和LoRA的参数
  4. QLoRA:通过量化技术、分页优化器降低显存

==> 没有额外的推理延时,大致收敛于基座模型

P-Tuning

在这里插入图片描述

  1. 在输入或隐层添加额外可训练的前缀tokens,只训练这些前缀参数
  2. 连续prompt

==>前缀保留部分序列长度会减少下游任务的序列输入长度

Adapter-Tuning

https://zhuanlan.zhihu.com/p/574191259
将较小的神经网络或模块插入与训练模型的每一层,微调时之训练adapter参数

==> 添加适配器引入额外计算导致推理延迟

Prefix Tuning

https://blog.csdn.net/qq_36426650/article/details/120255851

==>难以优化,性能随可训练参数的规模非单调变化

低资源微调

  1. LoRA/QLoRA(减少训练参数)
  2. 混合精度训练(减少显存占用一半,加速训练一倍)
  3. LOMO(大幅减少显存占用,某些场景比lora差)
  4. Activation checkpointing(减少显存占用,额外计算量)
  5. 异构设备训练(减少显存占用)
    混合精度训练
    LOMO github
    Activation checkpointing

模型Prompt工程

https://zhuanlan.zhihu.com/p/618871247

RLHF(人类反馈强化学习)

https://zhuanlan.zhihu.com/p/591474085

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitea--私有git服务器搭建详细教程

一.官方文档 https://docs.gitea.com/zh-cn/说明 gitea 是一个自己托管的Git服务程序。他和GitHub, Gitlab等比较类似。他是从 Gogs 发展而来,gitea的创作团队重新fork了代码,并命名为giteagitea 功能特性多,能够满足我们所有的的代码管理需…

SSM(Spring-Mybatis-SpringMVC)

文章目录 1. 介绍1.1 概念介绍 2 SSM整合框架3. SSM功能模块开发4 测试4.1 业务层接口测试4.2 表现层接口测试 5.优化 -表现层数据封装6.异常处理 1. 介绍 1.1 概念介绍 SSM项目是指基于SpringSpringMVCMyBatis框架搭建的Java Web项目。 Spring是负责管理和组织项目的IOC容器和…

解决deepspeed框架的bug:不保存调度器状态,模型训练重启时学习率从头开始

deepspeed存在一个bug,即在训练时不保存调度器状态,因此如果训练中断后再重新开始训练,调度器还是会从头开始而不是接着上一个checkpoint的调度器状态来训练。这个bug在deepspeed的github中也有其他人提出:https://github.com/mic…

laragon 为 php 安装 Xdebug 扩展

众所周知,php 自带的 var_dump() 输出格式很不直观 而 laragon 作为很好的 windos 下开发环境很受欢迎,本文就介绍如何快速为 laragon 的 php 安装 Xdebug,方便开发调试 一:启动开发环境,在任意可访问 php 页面中输出 …

英码科技受邀亮相2023WAIE物联网与人工智能展,荣获行业优秀创新力产品奖!

8月28日-30日,2023WAIE 物联网与人工智能展在深圳福田会展中心顺利举办。英码科技受邀亮相本届展会,并现场重点展出了面向智慧交通、智慧校园、智慧应急、智慧园区等不同行业的创新AIoT产品、AI技术服务等内容,与生态伙伴积极探讨市场需求和问…

WordPress(6)网站侧边栏倒计时进度小工具

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 效果图在这里插入图片描述一、添加位置二、主题style.css文件中添加美化1.引入库2.添加自定义的HTML模块效果图 提示:以下是本篇文章正文内容,下面案例可供参考 一、添加位置 在主题中 child.js…

【文心一言大模型插件制作初体验】制作面试错题本大模型插件

文心一言插件开发初体验 效果图 注意:目前插件仅支持在本地运行,虽然只能自用,但仍然是一个不错的选择。(什么?你说没有用?这不可能!文心一言app可以支持语音,网页端结合手机端就可…

16字节协议的串口通信

1.协议要求 协议为帧传输,一共16字节。主要是2字节的固定帧头 EB 90,2字节的帧计数(用来计数发出的帧),10字节的数据和2字节的校验位 帧头:2字节,固定值 8’HEB、8’H90 帧计数:2字节,用来说明发出去帧是…

说说Omega架构

分析&回答 Omega架构我们暂且称之为混合数仓。 什么是ECS设计模式 在谈我们的解法的时候,必须要先提ECS的设计模式。 简单的说,Entity、Component、System分别代表了三类模型。 实体(Entity):实体是一个普通的对象。通常&#xff0c…

Linux——进程间信号(超级详解!!)

索引 一.初始信号1.什么是信号2.前后台进程3.信号的种类4.信号的管理 二.信号产生前1.验证键盘是可以产生信号的2.通过系统调用接口发送信号3.由软件条件产生信号4.硬件异常产生信号5.总结6.core dump 信号产生中1.信号在内核中的表示2.信号集操作函数 信号产生后1.了解内核态和…

如何高效的解析Json?

Json介绍 Json是一种数据格式,广泛应用在需要数据交互的场景Json由键值对组成每一个键值对的key是字符串类型每一个键值对的value是值类型(boo1值数字值字符串值)Array类型object类型Json灵活性他可以不断嵌套,数组的每个元素还可以是数组或者键值对键值…

SpringMVC_基本使用

一、JavaWEB 1.回顾 JavaWEB 1.1新建项目结构 新建 javaweb 项目目录结构 1.2导入依赖 依赖 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>…