XTuner 微调介绍

server/2024/12/22 3:00:32/

本文主要简单介绍微调地基础知识,以及开源微调框架 XTuner的使用。

一. 微调简介

1. Finetune范式

        当我们想要在别人地预训练模型上得到我们想要地能力时,通常我们有两种微调方式:

                1. 增量预训练微调

                2. 指令跟随微调

2. 一条数据地一生

        我们需要地微调的原始数据首先需要转换成工具或模型支持的标准格式数据,然后再转换成为Tokenized数据,添加上标签,最后输入给模型进行训练。

        不同的模型,数据格式可能不同,如下图中,LLama2和InterLM 的对话模板的开始,结束符不同。

3. LoRA & QLoRA

        LoRA通过在原本的Liner曾旁边,新增一个支路,包含两个利阿努的小Linear,新增的支路通常叫做Adapter,也就是我们需要训练的参数。这个Adapter一般参数较小,使得我们可以在较小资源下进行模型的微调训练。

        QLoRA 对比LoRA是进一步将模型的参数类型转换为了4bit 的数据,进一步降低了内存的消耗。

二. XTuner

1. Xtuner简介        

        XTuner 提供一整套的训练框架,从数据的处理,到内存优化,训练加速等。而且操作简单,0基础的非专业人员也能一键开始微调。同时对内存也做了大量优化,微调7B参数两的LLM,最小仅需要8GB显存即可。

        XTuner也支持非常多硬件,软件生态,主流大模型都提供支持,可以一键开启训练。

        Flash Attention和DeepSpeed ZeRO 是XTuner最重要的两个优化技巧。

        Flash Attention将Atention计算并行化,避免计算过程中大量的显存占用;ZeRO通过状态切片,可进行多机多卡的训练,同时也能节省内存占用。

 2. XTuner快速上手

3. 多模态微调

        多模态微调对比文本单模态微调,新加入了将图像转换为图像向量输入给大模型,完成训练,即可得到图像分析的能力。


http://www.ppmy.cn/server/3804.html

相关文章

14.JavaWeb深入理解Tomcat和Servlet

目录 导语: 一、Tomcat概述 1.下载 2.安装 3.卸载 4.启动 5.关闭 6.配置 二、Servlet概念 快速入门: 执行原理: 三、Tomcat和Servlet内容 四、案例:使用Tomcat和Servlet创建一个简单的Web应用程序 1.创建Servlet&am…

mysql面试题五(事务)

目录 1.mysql有哪些锁及作用 1. 行锁(Row Locks) 2. 间隙锁(Gap Locks) 3. Next-Key Locks 4. 意向锁(Intention Locks) 5. 表锁(Table Locks) 6. 元数据锁(Metad…

海外媒体如何发布软文通稿

大舍传媒-带您了解海外发布新潮流 随着全球化的不断深入,越来越多的中国企业开始关注海外市场。为了在国际舞台上树立品牌形象,企业纷纷寻求与海外媒体合作,通过发布软文通稿的方式,传递正面信息,提升品牌知名度。作为…

chromedriver最新版下载地址

地址1.百度网盘 链接(提取码:2vo3):百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com…

运动想象 (MI) 分类学习系列 (9) :FBCNet

运动想象分类学习系列:FBCNet 0. 引言1. 主要贡献2. 提出的方法2.1 滤波器组卷积网络2.2 方差层结构介绍 3. 实验结果3.1 基线方法比较3.2 方差层对结果的影响3.3 脑卒中患者在相关模型中观察到更大的受试间变异性 4. 总结欢迎来稿 论文地址:https://arxiv.org/abs/…

会议室预约小程序开源版开发

会议室预约小程序开源版开发 支持设置免费预约和付费预约、积分兑换商城、积分签到等 会议室类目,提供多种类型和设施的会议室选择,满足不同会议需求。 预约日历,展示会议室预约情况,方便用户选择空闲时段。 预约记录&#xff0…

使用undetected-chromedriver遇到的问题及解决方法,以及它使用SOCKS代理的问题

环境:python3.8.10 uc的安装方法: pip38 install undetected-chromedriver 上测试代码: import undetected_chromedriver as uc driver uc.Chrome() driver.get(https://www.baidu.com) driver.save_screenshot(baidu.png)报错&#xff…

C语言进阶课程学习记录-函数指针的阅读

C语言进阶课程学习记录-函数指针的阅读 5个标识符含义解析技巧 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录 5个标识符含义解析 int (*p1) (int* , int (*f) ( int* ) );定义了指针p1,指向函数&#…