LLama 3的各种微调:拿我司七月的paper-review数据集微调LLama 3

前言

llama 3出来后,为了通过paper-review的数据集微调3,有以下各种方式

  1. 不用任何框架 工具 技术,直接微调原生的llama 3,毕竟也有8k长度了
    效果不期望有多高,纯作为baseline
  2. 通过PI,把llama 3的8K长度扩展到12k,但需要什么样的机器资源,待查
    apple为主,不染为辅
  3. 阿里云百练大模型服务平台、百度智能云千帆大模型平台对llama 3的支持
    文弱zu
  4. 通过llama factory微调3,但等他们适配3(除非我们改factory),类似
    llama factory + pi
    llama factory + longlora/longqlora 
  5. 我们自行改造longqlora(longlora也行,但所需机器资源更大),以适配3
    类似之前的经典组合:longqlora(PI + s2-Attn + qlora) + flash attention + zero3
  6. 基于xtuner微调llama 3
    三太子则在与70b微调工作不冲突的前提下,试下这个xtuner

第一部分 拿我司的paper-review数据集通过PI微调LLama 3

1.1 使用PI微调llama3-8b

// 待更

1.2 通过百度智能云的千帆大模型平台微调Llama 3

// 待更

第二部分 基于llama factory和paper-review数据集微调LLama3

LLaMA Factory 现已支持 Llama 3 模型,提供了在 Colab 免费 T4 算力上微调 Llama 3 模型的详细实战教程:https://colab.research.google.com/drive/1d5KQtbemerlSDSxZIfAaWXhKr30QypiK?usp=sharing

同时社区已经公开了两款利用本框架微调的中文版 LLaMA3 模型,分别为:

  1. Llama3-8B-Chinese-Chat,首个使用 ORPO 算法微调的中文 Llama3 模型,文章介绍:https://zhuanlan.zhihu.com/p/693905042
  2. Llama3-Chinese,首个使用 DoRA 和 LoRA+ 算法微调的中文 Llama3 模型,仓库地址:https://github.com/seanzhang-zhichen/llama3-chinese

// 待更

第三部分 不用PI和S2-attn,调通Llama-3-8B-Instruct-262k

3.1 基于15K的「情况1晚4数据」微调Llama 3

3.1.1 基于1.5K的「情况1晚4数据」微调Llama 3

24年5.25日,我司审稿项目组的青睐同学,通过我司的paper-review数据集(先只取了此文情况1中晚期paper-4方面review数据中的1.5K的规模,另,本3.1.1节和3.1.2节都统一用的情况1中的晚期paper-4方面review数据),把llama3调通了

至于llama3的版本具体用的Llama-3-8B-Instruct-262k,这个模型不是量化的版本,其他很多版本虽然扩展长度了,但基本都传的量化后的,这个模型的精度是半精的(当然,还有比较重要的一点是这个模型的下载量比较高)

以下是关于本次微调的部分细节,如青睐所说

  1. 一开始用A40 + 1.5K数据微调时,用了可以节省所需显存资源的s2atten(S2-attention + flash attention),且由于用了 26k 长度扩展的那个模型,便不用插值PI了
    但48g的A40在保存模型的时候显存会超过48g(训练过程中不会出现),而zero3模型保存时会报oom,后来经验证发现原因是:per_eval_device_batch size设置太大导致了oom

    总之,用A40 训练时其具有的48g显存是可以训练超过 12k上下文数据的,不一定非得用s2atten(毕竟上面也说了,过程中微调llama3出现oom是因为per_eval_device_batch size设置太大照成的,与训练没啥关系,一个很重要的原因是llama3的词汇表比较大,从32K拓展到了128K,压缩率比较高,导致论文的长度比llama2短,所以A40也放的下)
  2. 后来改成了用A100训练(数据规模还是1.5K),由于用了A100,故关闭了s2atten,直接拿12K的长度开训,且用上了flash atten v2,得到下图这个结果

3.1.2 用5K-15K的「情况1晚4数据」微调Llama-3

再后来用8卡A40对5K或15K数据微调时,便也都没有用S2-attention(关闭了),使用12K长度 + flash attention v2 微调

代码和上面跑1.5K的数据一样,也还是用的「七月大模型线上营那套longqlora代码」,但把单卡设置成多卡

且直接租2台「8卡的A40」,一台5K的数据,一台15K的数据,直接一块跑

以下是15K数据(晚期paper-4方面review)微调后针对YaRN那篇论文得到的推理结果

接下来,青睐先推理下测试集中的晚期paper,输出4方面review

最后,文弱测评一下,让GPT4-1106、情况1的llama2(也是晚期paper-4方面review),都统一跟人工4方面review做下匹配

// 待更

3.2 基于15K的「情况3早4数据」微调Llama 3

上两节用了晚期paper-4方面的review微调llama3,类似于此文开头总结的情况1:用晚期paper-4方面review微调llama2

本节咱们将基于15K的早期paper-4方面review类似于此文开头总结的情况3:用早期paper-4方面review微调llama2

本节微调完之后,自然便可以与以下模型PK(针对哪个情况,则用那个情况的paper,所以评估llama3版本的情况3时,则都统一早期paper)

  1. PK 上两节的llama3版本的情况1,按理得胜,毕竟情况3的数据更强(相当于都是llama3,但数据质量不一样,当然,无论是llama2 还是llama3,按道理情况3就得好过情况1,毕竟情况3 早4,情况1 晚4,情况3-早4的数据质量是更高的)

  2. PK llama2版本的情况3,按理得胜,毕竟llama3更强

  3. PK llama2版本的情况1(以阿荀微调的longqlora 7B做为情况1的基准),按理更得胜,毕竟llama3更强且情况3的数据更强,但目前得到的结果有些奇怪(如下图所示),没达预期,正在找原因中,待后续更新..

// 更多细节暂见我司的:大模型商用项目之审稿微调实战营

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

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

相关文章

EDU学校漏洞sql注入挖掘记录

某搜索框 biaoti参数单引号报错 双引号正常 经过我的不断测试,’||exp(710)||’报错,exp函数就是执行e的多少次方,709不会报错,710会导致这个数太大报错 709正常,这里说明一下,因为这个数是小数所以返回200&#xff0c…

awk脚本监控

awk脚本监控 使用脚本监控内存,cpu和硬盘的根目录,超过80%提示用户,写成函数库的行,每天早上 的8.50分,执行一次脚本 现在脚本中写需要的内容 cpuu () {aa$(top -b -n 1 |awk NR3 {printf "%.F",$2$4})if …

Spring容器启动流程——refresh()单个方法分析

文章目录 Spring启动过程this()方法refresh()prepareRefresh()obtainFreshBeanFactory()prepareBeanFactory()postProcessBeanFactory()invokeBeanFactoryPostProcessorsregisterBeanPostProcessorsinitMessageSource()initApplicationEventMulticaster()onRefresh()registerLi…

Pycharm利用Anaconda环境

创建环境 conda create --name d2l python3.11 -y 激活环境 conda activate d2l 配置环境 以torch环境为例 我们可以按如下⽅式安装PyTorch的CPU或GPU版本: pip install torch pip install torchvision 我们的下⼀步是安装d2l包,以⽅便调取本书中经…

WPF 数据分组显示

WPF 数据分组显示 效果展示: Student类: public class Student {public string Name { get; set; }public string Class { get; set; }public int Age { get; set; } }MainWindow.xaml.cs public partial class MainWindow : Window {private Observ…

【调试笔记-20240620-Windows- Tauri + Vue 中实现部分区域滚动】

调试笔记-系列文章目录 调试笔记-20240620-Windows- Tauri Vue 中实现部分区域滚动 文章目录 调试笔记-系列文章目录调试笔记-20240620-Windows- Tauri Vue 中实现部分区域滚动 前言一、调试环境操作系统:Windows 10 专业版调试环境调试目标 二、调试步骤搜索相似…

如何在Java中处理InterruptedException异常?

如何在Java中处理InterruptedException异常? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java编程中,多线程是一个常见的应用场景…

专业140+总分400+武汉理工大学855信号与系统考研经验电子信息与通信工程,真题,大纲,参考书

专业855信号与系统140,总分400,今年顺利上岸武汉理工大学,总结一下自己的复习经历,希望对报考武理工的同学有所帮助。专业课:855信号与系统 首先教材: 《信号与系统》高等教育出版社 作者:刘泉…

第一百二十三节 Java面向对象的设计 - Java接口继承

Java面向对象的设计 - Java接口继承 接口可以从另一个接口继承。与类不同,接口可以从多个接口继承。 interface Singer {void sing();void setRate(double rate);double getRate(); } interface Writer {void write();void setRate(double rate);double getRate();…

人间烟火气视频素材去哪里找?人间生活气息视频素材网站分享

在数字化时代迅猛发展的今天,短视频已经成为人们表达情感、记录生活的流行方式。无论是在抖音、快手还是B站,一种特别的元素——人间烟火气,为短视频增添了无尽魅力。许多创作者常常困惑,这种生活气息浓厚的视频素材应当如何寻找&…

使用 Swift 6 语言模式构建 Swift 包

文章目录 前言下载 Swift 6 工具链Swiftenv - macOSSwiftly - Linux在 SPM 中启用语言模式命令行包清单文件输出结论前言 我最近了解到,Swift 6 的一些重大变更(如完整的数据隔离和数据竞争安全检查)将成为 Swift 6 语言模式的一部分,该模式将在 Swift 6 编译器中作为可选…

Python 类对象

Python 类对象 经典迭代器 可迭代对象的定义: 使用内置的iter可以获取迭代器的对象。如果对象实现了能返回迭代器的__iter__方法,那么对象就是可迭代的。序列都可以迭代。实现了__getitem__方法,而且接受从0开始的索引,这种对象也…

EfficientNet-V1论文阅读笔记

目录 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks摘要Introduction—简介Compound Model Scaling—混合模型缩放Problem Formulation—范式化问题(理论基础)Scaling Dimensions—维度缩放Compound Scaling—混合缩放 Eff…

【网络协议】精讲ARP协议工作原理!图解超赞超详细!!!

亲爱的用户,打开微信,搜索公众号:“风云说通信”,即可免费阅读该文章~~ 目录 前言 1. ARP协议介绍 1.1 ARP协议功能 1.2 ARP请求报文 1.3 ARP工作原理 2. ARP 缓存超时 2.1 RARP 3. ARP 攻击 3.1 ARP 攻击分类 前言 首先…

前后端分离后的后端多语言开发:构建统一认证和授权中心

随着前后端分离架构的普及,后端开发逐渐迈向多语言、多平台并存的局面。这种变化带来了灵活性和高效性,但同时也引出了新的挑战,特别是在构建统一认证中心和授权中心方面。本文将探讨如何在前后端分离的架构下,通过合理设计和技术…

中断响应与事件响应

中断响应和事件响应是计算机系统和编程中的两种重要机制,它们用于处理不同情况下的外部或内部发生的事情。尽管它们的目的相似,即对某些特定情况做出反应,但它们在实现、使用场景及设计哲学方面存在一些关键区别。 中断响应 中断响应是指计算…

理解人体手臂七个自由度对应的运动

写本篇的目的在于,我发现很多人理不清人体手臂运动时内收/外展、屈曲/伸展等动作描述的关系,包括我自己也是! 我每次要用到的时候都要去查,记不下来,比较麻烦,于是归纳本篇,包含了我本人的理解 …

Hightec编译器系列之高级调试技巧精华总结

Hightec编译器系列之高级调试技巧精华总结 小T为了便于大家理解,本文的思维导图大纲如下: 之前可能很多小伙伴没有使用过Hightec编译器,大家可以参考小T之前的文章《Hightec编译器系列之白嫖就是爽》可以下载一年试用版本。 小T使用过适配英…

Qt Signals and Slots:多次连接的影响与处理

在Qt中,信号(signals)与槽(slots)是实现对象之间通信的核心机制。本文探讨了一个技术问题:若同一个信号和槽被连接了两次会发生什么?以及Qt如何处理这种情况。 问与答 Q: 如果同一个信号和槽被…

Python技术进阶:从基础到数据分析实战

Python技术进阶:从基础到数据分析实战 作为一名四十多岁的中年技术员,我见证了编程语言的兴衰更迭,而Python无疑是近年来最耀眼的明星之一。它以其简洁的语法、丰富的库和框架、以及强大的社区支持,赢得了无数开发者的青睐。今天…