书生浦语训练营第2期-第4节笔记

news2024/11/18 10:36:34

一、为什么要微调?

1. 适应特定任务或领域:虽然预训练的模型通常具有广泛的知识和理解能力,但它们可能不完全适应特定任务的需求。通过在特定的数据集上微调模型,可以使模型更好地理解和处理与特定任务或领域相关的数据。

2. 提高性能:微调可以帮助模型在特定任务上表现得更好,如通过调整模型参数以更精确地对任务特有的特征进行建模,从而提高分类准确率、生成的质量或其他性能指标。

3. 节省资源:微调一个已经训练好的模型通常只需要较少的数据和训练周期。

4. 减少数据需求:微调通常需要的数据量比全新训练模型少得多。这对于数据较少的应用场景特别有用,因为即使是小规模的数据集也可能足以通过微调达到良好的效果。

5. 转移学习:微调是一种有效的转移学习策略,允许模型将在一个任务上学到的知识应用到其他类似任务上。这种策略在多任务学习和跨领域应用中尤其重要。

想象一下,你有一个非常棒的自行车,这辆自行车可以在任何地方骑行——山地、城市、海边。这辆自行车就像一个被广泛训练过的模型,能够处理各种各样的环境。但是,现在你需要参加一场特定的山地自行车比赛,这就需要你的自行车在山地环境中表现得更好。

微调就好比是你对自行车进行一些特别的调整,比如换上更适合山地的轮胎,调整齿轮比让它更适合爬坡,这样你的自行车就能在山地比赛中表现得更加出色。你不需要重新制造一辆新自行车,而是在现有的基础上做一些修改,让它更适应山地的特殊条件。

在机器学习中,我们通常有一个已经在很多数据上训练过的模型,它已经非常智能了。但是如果我们想让它在一个特定的任务上表现得更好,我们可以用一些特定任务的数据来“微调”这个模型。这样,模型就会学习这些特定数据的特点,变得更擅长处理与这些数据相关的任务。这就像是给你的自行车根据山地比赛的需要进行调整一样。

二、两种常用微调范式

2.1 增量预训练

        使用场景:让基座模型学习到一些新知识,比如垂类领域的常识。

        训练数据:文章、书籍、代码等。

2.2 指令跟随

        使用场景:让模型学会对话模板吗,根据人类指令进行对话。

        训练数据:高质量的对话、问答数据。

2.3 两者区别

        有一个新来的学生叫小明,他刚转学到你们学校。小明已经会一些基础的数学和英语,但是他的新老师想让他学得更好,更适应这个学校的教学风格。

        1. 增量预训练:小明的数学老师给他安排了一些额外的数学题目练习,这些题目是根据他已经知道的内容,再稍微难一点的。这样做的目的是让小明在他已有的基础上,逐渐适应更高级的数学思维。这个过程可以看作是在小明原来的学习基础上,增加了一些新的知识点,帮助他更好地融入新环境。

        2. 指令跟随:小明的英语老师给了他一个具体的任务,比如写一篇关于“我最喜欢的动物”的英语作文,并且告诉他要使用五种不同的形容词描述这个动物。这个任务要求小明不仅要运用他已经学过的英语知识,还要按照老师的具体指示来完成作业。这就是一个典型的指令跟随的例子,小明需要明确遵守老师的指令来执行任务。

        增量预训练更多的是在已有的知识或技能基础上逐步扩展和深化,而指令跟随则是按照特定的指示来完成任务。这两种方法都是帮助学生(或者AI模型)学习和适应新环境的有效方式,但它们的重点和方法有所不同。

三、一条数据的一生

        为了让LLM能够区分出System、User、Assistant,不同的模型会有不同的模板。

        为了让LLM知道什么时候开始一段话,什么时候结束一段话,实际训练时需要对数据添加起始符(BOS)和结束符(EOS);大多数模型都是使用<s></s> 。

        数据中会有Input和Output,希望模型学会的是Output,而不是Input。训练时只会对Output部分计算Loss。

四、微调方案:LoRA&QLoRA

两者都旨在提高模型的适应性和效率,但在实现方式上有所不同。QLoRA是LoRA的一个扩展,它在降低模型复杂度和提升计算效率方面更进一步,适合于对运行效率有更高要求的场景。

  • 参数数量和模型大小:QLoRA通过量化进一步减小了模型的大小和运行时内存需求,相比于LoRA可以在更低的硬件要求下运行。
  • 计算效率:QLoRA由于采用了量化技术,通常能提供比LoRA更快的推理速度,这使得QLoRA在需要实时处理的应用中尤为有用。
  • 适用场景:虽然两者都适用于资源有限的环境,QLoRA由于更低的资源需求,更适合于边缘设备和移动设备等计算能力更受限的环境。

 五、多模态LLM原理简介

文本单模态

文本+图像多模态

        想象你在玩一个识别物品的游戏。在没有“电子眼”的情况下,如果你问LLM“这个苹果是什么颜色的?”而没有给出图片,它是无法回答的,因为它看不到苹果。但如果LLM有了“电子眼”,它就能看到苹果的图片,然后告诉你“这个苹果是红色的”。

        多模态LLM在训练时,不仅学习了大量的文本数据,还学习了图片和视频数据。学会了如何从图片中提取信息,比如识别出图片中的物品、颜色、动作等,并且能把这些视觉信息和文字信息结合起来进行理解和回答。

        给LLM装上“电子眼”就是让它通过视觉输入增强理解和交流的能力,使它不仅限于文字,还能理解和分析图片或视频中的内容。这样的技术在很多领域都非常有用,比如帮助自动驾驶车辆理解路况,或者帮助医生分析病人的X光片等。

什么类型的电子眼:LLaVA方案简介

  • 使用GPT-4V对图像数据生成描述,以此构建出大量<question text><image> -- <answer text>的数据对。
  • 利用这些数据对,配合文本单模态LLM,训练出一个Image Projector。
  • 所使用的文本单模型LLM和训练出来的Image Projector,统称为LLaVA模型。

 给LLM增加视觉的过程分为:Pretrain、Finetune。

  • Pretrain阶段:使用大量的图片+简单文本(caption,即图片标题)数据对,使LLM理解图像中的普遍特征。该阶段完成后,模型已经有视觉能力了,但是只会给输入的图像”写标题“
  • Finetune阶段:使用图片+复杂文本数据对,来对Pretrain得到的Image Projector进行进一步训练。

六、Xtuner是什么?

是一个高效、灵活且功能齐全的工具包。xtuner/README_zh-CN.md at main · InternLM/xtuner · GitHubAn efficient, flexible and full-featured toolkit for fine-tuning large models (InternLM, Llama, Baichuan, Qwen, ChatGLM) - xtuner/README_zh-CN.md at main · InternLM/xtunericon-default.png?t=N7T8https://github.com/InternLM/xtuner/blob/main/README_zh-CN.md

高效

  • 支持大语言模型 LLM、多模态图文模型 VLM 的预训练及轻量级微调。XTuner 支持在 8GB 显存下微调 7B 模型,同时也支持多节点跨设备微调更大尺度模型(70B+)。
  • 自动分发高性能算子(如 FlashAttention、Triton kernels 等)以加速训练吞吐。
  • 兼容 DeepSpeed ,轻松应用各种 ZeRO 训练优化策略。

灵活

  • 支持多种大语言模型,包括但不限于 InternLM、Mixtral-8x7B、Llama2、ChatGLM、Qwen、Baichuan。
  • 支持多模态图文模型 LLaVA 的预训练与微调。利用 XTuner 训得模型 LLaVA-InternLM2-20B 表现优异。
  • 精心设计的数据管道,兼容任意数据格式,开源数据或自定义数据皆可快速上手。
  • 支持 QLoRA、LoRA、全量参数微调等多种微调算法,支撑用户根据具体需求作出最优选择。

全能

  • 支持增量预训练、指令微调与 Agent 微调。
  • 预定义众多开源对话模版,支持与开源或训练所得模型进行对话。
  • 训练所得模型可无缝接入部署工具库 LMDeploy、大规模评测工具库 OpenCompass 及 VLMEvalKit。

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

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

相关文章

氮气柜是如何进行温度、湿度和氧含量控制的?

氮气柜的温湿度控制标准并不统一&#xff0c;具体设定值主要取决于所存储物料的特性与存储要求。 氮气柜的温度一般不直接控制&#xff0c;而是显示并反映柜内当前的环境温度&#xff0c;因为氮气柜的设计重点在于除湿而非降温。在某些高端应用场合&#xff0c;尤其是精密电子元…

软件杯 深度学习实现语义分割算法系统 - 机器视觉

文章目录 1 前言2 概念介绍2.1 什么是图像语义分割 3 条件随机场的深度学习模型3\. 1 多尺度特征融合 4 语义分割开发过程4.1 建立4.2 下载CamVid数据集4.3 加载CamVid图像4.4 加载CamVid像素标签图像 5 PyTorch 实现语义分割5.1 数据集准备5.2 训练基准模型5.3 损失函数5.4 归…

Spring Boot中JUnit 4与JUnit 5的如何共存

文章目录 前言一、先上答案二、稍微深入了解2.1 maven-surefire-plugin是什么2.2 JUnit4和JUnit5有什么区别2.2.1 不同的注解2.2.2 架构 前言 在maven项目中&#xff0c;生成单测时是否有这样的疑问&#xff1a;该选JUnit4还是JUnit5&#xff1f;在执行 mvn test 命令时有没有…

NetFlow 监控工具

NetFlow 是流量数据统计使用最广泛的标准&#xff0c;它是由思科公司开发&#xff0c;用于监控和记录传入或传出接口的所有流量&#xff0c;NetFlow 分析其收集的流量数据&#xff0c;以提供流量和流量的可见性&#xff0c;并跟踪流量的来源、去向以及随时产生的流量。记录的信…

使用selenium时出现element click intercepted报错的解决办法

win10&#xff0c;python3.8.10。 selenium版本如下&#xff08;用pip38 show selenium查看&#xff09;&#xff1a; 在定位中&#xff0c;定位了一个按钮&#xff08;特点&#xff1a;button下还有span然后才是文本&#xff09;&#xff0c;代码如下&#xff1a; from sele…

Scala 03 —— Scala OOP Extension

Scala 2.1 —— Scala OOP Extension 一、正则 文章目录 Scala 2.1 —— Scala OOP Extension一、正则1.1 Java正则和Scala正则的区别1.2 Java正则和Scala正则的的基本知识点Java正则Scala正则 1.3 练习练习一&#xff1a;使用正则表达式解析日志方法一&#xff1a;使用findAl…

Oracle交换分区测试

1、用exchange分区表减少初始化过程中对业务中断的影响 2、创建分区表 create table t_p (id number,name varchar2(30),addr varchar2(50)) partition by range(id) (partition p1 values less than(10), partition p2 values less than(20), partition p3 values less …

冯唐成事心法笔记

文章目录 卷首语 管理是一生的日常&#xff0c;成事是一生的修行PART 1 知己 用好自己的天赋如何管理自我用好你的天赋成大事无捷径如何平衡工作和生活做一个真猛人做自己熟悉的行业掌控情绪如何对待妒忌和贪婪如何战胜自己&#xff0c;战胜逆境真正的高手都有破局思维有时候…

【支付宝】对接手机网站支付踩坑点记录

前言 简单记录一下对接Wap支付的问题&#xff0c;alipay和wxpay认证过程差不多&#xff0c;有个体商户或企业即可&#xff0c;前者文档不易懂后者还好&#xff0c;但是wxpay门槛高&#xff0c;个人认为pc网站支付(native支付)就是为了收300认证费&#xff01; 应用公私钥 第一…

《剑指 Offer》专项突破版 - 面试题 112 : 最长递增路径(C++ 实现)

题目链接&#xff1a;最长递增路径 题目&#xff1a; 输入一个整数矩阵&#xff0c;请求最长递增路径的长度。矩阵中的路径沿着上、下、左、右 4 个方向前行。例如&#xff0c;下图中矩阵的最长递增路径的长度为 4&#xff0c;其中一条最长的递增路径为 3->4->5->8&…

护眼落地灯哪个牌子好?落地灯十大知名品牌

一款优异的落地灯不只有照明的作用&#xff0c;更有装修作用。只不过&#xff0c;市面上的落地灯产品很多&#xff0c;质量良莠不齐&#xff0c;很多人不知道怎么挑选是好。小编的主张是从品牌下手&#xff0c;挑选口碑上佳的品牌落地灯产品。若问护眼落地灯哪个牌子好&#xf…

Flask-SQLAlchemy 中使用显式主主数据库设置

1、问题背景 在一个 Flask-SQLAlchemy 项目中&#xff0c;用户想要使用显式主主数据库设置。具体而言&#xff0c;他想要能够从默认数据库中读取数据&#xff0c;并将数据持久化到两个主数据库中。他希望知道是否可以使用 Flask-SQLAlchemy 和 binds 来实现这一目标。 2、解决…

【MySQL篇】mysqlpump和mysqldump参数区别总汇(第三篇,总共四篇)

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&am…

Windows 的常用命令(不分大小写)

Net user &#xff08;查看当前系统所有的账户&#xff09; net user yourname password /add 添加新用户 net localgroup administrators yourname /add 添加管理员权限 net user yourname /delete 删除用户 net user 命令 [colorred]说明&#xff1a;以下命令仅限持管理员…

[创业之路-106] :经济学十大陷阱与核心思想:系统论、社会进化论、周期论、阴阳互转论

目录 前言&#xff1a; 一、流动性陷阱。 二、中等收入陷阱。 三、修昔底德陷阱。 四、塔西佗陷阱。 五、金德尔伯格陷阱。 六、卢梭陷阱。 七、拉美陷阱。 八、阿喀琉斯之踵。 九、布拉德伯里悖论。 十、李约瑟之谜 结论&#xff1a;上述陷阱的…

负载均衡集群——Nginx

目录 1.Nginx反向代理实战 2.Nginx 反向代理和负载均衡实践 实验操作步骤 步骤 1 Nginx1 和 Nginx2 配置 步骤2 测试资源是否可用 步骤 3 安装和配置 Nginx 代理 步骤 4 代理服务器配置检测 步骤 5 在 Nginx1 和 Nginx2 配置虚拟主机 步骤 6 将虚拟主机添加入后端主机组…

Linux--基础IO(上)

目录 1. 文件的边角知识 1.1 文件是什么&#xff1f; 1.2 文件是怎么打开的&#xff1f; 1.3 进程与文件 进程与文件的关系 2. 重温c语言文件接口 2.1 打开文件的方式 2.2 读写文件接口的重温 2.2.1 写文件 2.2.2 读文件 3. 系统文件I/O 3.1 系统接口 3.2 系…

零信任网络安全技术雷达图3.0正式发布

伴随零信任理念的发展和实施&#xff0c;零信任技术体系的演进变革也日趋完善。易安联力图通过持续更新并优化零信任雷达图&#xff0c;以反映零信任技术在应对新型网络安全挑战中的创新和发展&#xff0c;为企业和组织提供前瞻性的技术建议&#xff0c;助力其构建更为强大和灵…

前端JS必用工具【js-tool-big-box】,日期时间相关工具二

上一节我们说到了工具中关于日期的详细转换&#xff0c;还有获取年月日时分秒的详细转换方法使用&#xff0c;同时可以灵活添加自己需要的单位&#xff0c;很便捷。这一节我们继续学习几个相关的方法 目录 1 安装和引入 2 某个时间距离现在的显示 3 获取某一年是是平年还是…

dataguard环境破坏后采用rman备份集重新部署

dataguard环境破坏后采用rman备份集重新部署 1. 环境 主库: 192.168.1.118 备库: 192.168.1.85 OS: Centos7 DB: 11.2.0.4 前提条件:dataguard之前已经搭建好,从库的spfile和密码文件不需要创建,主库的数据文件目录在从库必须存在&#xff0c;这里的场景是主库…