当前位置: 首页 > news >正文

微调LLama 3.1——七月论文审稿GPT第5.5版:拿早期paper-review数据集微调LLama 3.1

前言

对于llama3,我们之前已经做了针对llama3 早7数据微调后的测评

  • 去pk llama2的早7数据微调后,推理测试集中的早期paper:出来7方面review
  • 去pk gpt4推理测试集中的早期paper:7方面review
  • ground truth是早期paper的7方面人工review

后来,llama3.1出来后,考虑到性能高于llama3,所以项目组同事青睐、文弱上周做了llama3.1通过早7数据微调后的测评

  • 去pk llama3的早7数据微调后,推理测试集中的早期paper,出来7方面review
  • 去pk gpt4推理测试集中的早期paper:7方面review
  • ground truth是早期paper的7方面人工review

随后,青睐、文弱又分别做了

  • llama3 早4测评
    去pk llama2的早4数据微调后,推理测试集中的早期paper,出来4方面review
    去pk gpt4推理测试集中的早期paper:4方面review
    ground truth是测试集早期paper的4方面人工review
  • llama3.1 早4测评
    去pk llama3的早4数据微调后,推理测试集中的早期paper,出来4方面review
    去pk gpt4推理测试集中的早期paper:4方面review
    ground truth是早期paper的4方面人工review

最终,早7数据下,超gpt4 超的不容易;但早4数据下,超gpt4 则很轻松..

个人心得是,首先,llama3.1确实是比llama3 更强悍,其次,现在微调一下超过GPT4,已经不是啥新闻了..

第一部分 通过早期paper-7方面review微调llama3.1以超GPT4

基本前提

  1. llama3.1使用Qlora + flash atten v2微调情况4 15k样本(长度中位数9k,最长不超过12k)
  2. llama3.1与旧版的llama3模型结构基本一致,只是新增了更多语言支持、更大预训练数据、新提示模版、函数调用、更长上下文(新的RoPE扩展方式)等功能或性能上的优化(具体,详见此文:一文速览Llama 3.1——对其92页paper的全面细致解读:涵盖语言、视觉、语音的架构、原理)
    因此微调的代码与旧版llama3基本一致

1.1 llama3.1微调环境配置

1.1.1 事先准备

  • Linux系统
  • 支持cuda12.1
  • 单张/多张 48G显卡
  • 可访问HuggingFace/Python官方源的网络代理
  • 微调数据集:早期paper-7方面review——其中7方面review是基于GPT做多聚一摘要出来的,详见此文《提升大模型数据质量的三大要素:找到早期paper且基于GPT摘要出来7方面review——七月论文审稿GPT第4.5/4.6/4.8版》的1.2.5节——通过7要点摘要prompt第4版重新摘要整理7方面review数据

1.1.2 模型下载

# 安装 git-lfs
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install# 下载模型
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct
cd Meta-Llama-3.1-8B-Instruct
git lfs pull --include="*.safetensors"
# 可以再检查一下文件夹里的文件大小是否与Huggingface文件大小一致,重点检查超过1M的文件,如果存在某些文件文件不一致需要重新使用 git lfs pull 拉取一下该文件,将 --include= 改成该文件
cd ..

1.1.3 环境安装

要想使用llama3.1模型,transformers的版本需要 >= 4.43.3

accelerate
peft
trl==0.8.6
transformers==4.43.3
# flash-attn 单独安装
# pip install flash-attn==2.6.3 --no-build-isolation    # 需要等待一段时间,最好有代理
deepspeed==0.14.0
torch==2.3.1
ray
numpy==1.26.4
PyGithub
huggingface-hub
evaluate
datasets
bitsandbytes
einops
wandb
tensorboard
tiktoken
pandas
scipy
matplotlib
sentencepiece
nltk
xformers
hf_transfer
loguru
tqdm
transformers_stream_generator
openpyxl
httpx
joblib
scikit_learn

1.1.4 代码地址

微调代码,详见七月官网首页的:大模型项目开发线上营 第二期

1.2 微调过程

llama3.1 使用Qlora + flash attention v2 微调显存的占用与llama3 微调差不多,使用12k以下的文本长度用单张或多张A40/A6000(48G)即可,具体占用情况见下文

1.2.1 微调参数(主要参数)

为了保证与llama3情况4更公平的性能对比,选择与前者相同的迭代次数,情况4推理选择的checkpoint迭代次数为1800,大约1.95个epoch

参数

说明

batch size=16

梯度累计总batch size=16

lr=1e-4

学习率的大小

max_prompt_length=11138

paper 最长的大小,超过将被截取

max_response_length=1150

review 最长的大小,超过将被截取

save_steps=100

迭代100次保存一次模型

num_train_epoch=3

迭代3个epoch

1.2.2 微调system prompt

llama3.1 微调的system prompt与llama3情况4的prompt一致

SYSTEM_PROMPT = """Below is an "Instruction" that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
Instruction:
You are a professional machine learning conference reviewer who reviews a given paper and considers 7 criteria: 
** How to evaluate the idea of the paper **
** Compared to previous similar works, what are the essential differences, such as any fundamental differences, improvements, innovations **
** How to evaluate the experimental results in the paper **
** Potential reasons for acceptance **
** Potential reasons for rejection **
** Other suggestions for further improving the quality of the paper **
** Other important review comments **
The given paper is as follows."""

1.2.3 模型迭代过程

  • 显存占用
    显存占用与微调llama3 相差不多

  • loss 迭代

最终,由于微调参数与llama3相差无几,故均选择与llama3迭代次数相同的1800为最终的checkpoint

1.2.3 微调过程中遇到的问题

  • llama3.1 模版冗余后缀
    描述:截止2024年7月26日,llama3.1 tokenizer的模版生成输入时 add_generation_prompt= False无效,会生成一个<|start_header_id|>assistant<|end_header_id|>的冗余后缀,详情见:
    BUG Chat template doesn't respect `add_generation_prompt`flag from transformers tokenizer
    解决方式:微调时使用llama3旧模版替换即可
    后来,Huggingface 现已经修复此问题
  • 存在一些后三项为空项的推理结果
    描述:llama3.1 推理时存在一些空项聚集出现的情况,即当“拒绝理由”为空时,“建议”与“其他提升”的大项不小的概率也为空
    试图用人的角度去思考:如果论文没有“拒绝的理由”,那也就不需要“建议”和“其他的提升”了 ...
    解决方式:推理时加入序列抑制适当降低“空项”出现的概率,详情见下文
  • 模型推理格式问题
    描述:论文推理未严格遵循7大项的格式 (仅特定的论文, 出现概率极低)

    猜测:llama3.1 可能在论文审稿场景有专门的sft微调,summary weak strengths suggestion 等是顶级期刊reviewer常用的review格式,可能是本次微调数据较少,没有完全改变原审稿的格式

1.3 推理结果:PK llama3和GPT4

1.3.1 直接推理

直接推理之下

  • 左图:情况4 7review 微调llama-3.1-8B-Instruct
  • 右图:情况4 7review 微调llama3-8b-instruct-8k

可以看出来,同样为情况4 7review数据下,llama3.1的效果较llama3存在较大提升

接下来,对比下和GPT4的结果呢?如下图所示

  • 左图:情况4 7review 微调llama-3.1-8B-Instruct
  • 右图:情况4 paper使用7大项提示工程gpt4-1106的结果

结论:由于在未加空项序列抑制的情况下,llama3.1推理结果存在一定比例后三项为空项的情况,这在与gpt4-1106 pk是处于劣势的,下文加入适当序列抑制后,将反超gpt4

1.3.2 加入序列抑制之后的推理

序列抑制的原理:适当减少空项序列 “<No related terms>” 生成的概率,增加模型生成的稳定性

  • 简言之,序列抑制的本质就是 适当降低 我们希望生成内容为空项 的概率
  • 具体来讲:模型某大项若概率采样生成了空项序列 “<No related terms>” , 后续该大项将不再生成子项 (训练数据的特点),而若不生成空项序列时大可能生成两个子项,而且该大项的空项序列还可能影响其他大项子项生成效果(在本次微调llama3.1模型表现较明显), 所以模型生成子项总数的方差较大,宏观表现就是模型输出不稳定。所以进行适当的“<No related terms>”序列抑制将减少模型生成结果的方差

疑问:减少“空项”出现的概率,“强制”让模型输出大项的子项,会生成不合理的结果吗?

答:应该不会,大模型输出token是具有一定概率性的,较好的微调的前提下,除了“空项token”外,其他的token也是合理的输出,而控制好“空项”的惩罚力度是比较重要的(本节中参与pk的模型序列抑制系数全部为0.95)

至于序列抑制实现代码详见七月官网首页的:大模型项目开发线上营 第二期

当加了序列抑制的llama3.1微调版模型去PK 没加序列抑制的llama3.1微调版模型时,得到的结果如下图所示

  • 左图:情况4 7review 微调llama-3.1-8B-Instruct + 空项序列抑制
  • 右图:情况4 7review 微调llama-3.1-8B-Instruct

如此,证明了对空项做序列抑制的有效性

那再去PK下 我们的基线——GPT4 1106呢,如下图所示

  • 左图:情况4 7review 微调llama-3.1-8B-Instruct + 空项序列抑制
  • 右图:情况4 paper使用7大项提示工程gpt4-1106的结果

结论:llama3.1 推理pk反超gpt-1106

第二部分 通过早期paper-4方面review微调llama3.1以超GPT4

既然本文开头提到了:“早7数据下,超gpt4 超的不容易;但早4数据下,超gpt4 则很轻松”,那我们来具体看下在早4数据下的微调效果

2.1 早4数据下的微调prompt:让模型针对早期paper预测4方面review

微调策略与上文微调情况4 早7review数据几乎一致,仅

  1. 更换微调数据集为情况3数据集(还是可以用之前那套通过GPT做多聚一摘要出来4方面review,即早4——早期paper-4方面review)
  2. 情况3所需的微调prompt:让模型针对早期paper预测4方面review
PROMPT = """You are a helpful assistant, below is an "Instruction" that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
Instruction:you are a professional machine learning conference reviewer who reviews a given paper and considers 4 criteria: ** Significance and novelty **** Potential reasons for acceptance **** Potential reasons for rejection **** Suggestions for improvement **
The given paper is as follows.""".strip()

2.2 推理结果:PK llama3和GPT4

2.2.1 PK llama3-8b-instruct-8k(qdora)

如下图所示

  • 左图:情况3 4review 微调llama3.1-8B-Instruct
  • 右图:情况3 4review 微调llama3-8b-instruct-8k(qdora)

结论:同样为情况3 4review数据下,llama3.1推理的效果较llama3存在一定提升,考虑到情况3 4 review的大项数目与子项数目相对于情况4 7review均较少,可能llama3.1在4review数据上难以发挥“全部实力”,因此与llama3的差距不太大

2.2.2 PK GPT4 1106

如下图所示

  • 左图:情况3 4review 微调llama-3.1-8B-Instruct
  • 右图:情况3 paper使用4大项提示工程gpt4-1106的结果

结论:同样为情况3 4review数据下,微调llama3.1的效果较gpt4-1106强很多

至于具体微调的代码、数据集以及更多细节,详见七月官网首页的:大模型项目开发线上营 第二期

相关文章:

微调LLama 3.1——七月论文审稿GPT第5.5版:拿早期paper-review数据集微调LLama 3.1

前言 对于llama3&#xff0c;我们之前已经做了针对llama3 早7数据微调后的测评 去pk llama2的早7数据微调后&#xff0c;推理测试集中的早期paper&#xff1a;出来7方面review去pk gpt4推理测试集中的早期paper&#xff1a;7方面reviewground truth是早期paper的7方面人工rev…...

rust 编译时报错:type annotations needed for Box

如下图所示&#xff1a; 解决方法&#xff1a; 升级time的版本&#xff1a; cargo update -p time...

应用方案 | 低功耗接地故障控制器D4145

一、概述 D4145 是一个接地故障断路器。它能够检测到不良的接地条件&#xff0c;譬如装置接触到水时&#xff0c;它会在有害或致命的电击发生之前将电路断开。 D4145能检测并保护从火线到地线,从零线到地线的故障.这种简单而传统的电路设计能够确保其应用自如和长时间的可靠性。…...

第一次彩色pcb打样记录

感受和总结 看到彩色电路板和绿油板放在一起&#xff0c;感触还是挺大的。而且彩色板还直接给沉金&#xff0c;感觉焊上器件不要外壳都很好看了。后面一定记录一下这个板子实现的功能。 板子功能暂时分配 五个触摸盘&#xff0c;为了通过触摸控制不同功能&#xff0c;例如&a…...

通过 MediatR 实现了请求的分发和处理器的解耦

1. 前端请求发起 假设前端通过 HTTP GET 请求访问 GetTemplateSettings 端点&#xff0c;URL 中包含了 SubjectUuid 和 SubjectType 作为查询参数。 2. 进入 Controller 方法 请求到达后&#xff0c;会进入 MinBcController 类中的 GetTemplateSettings 方法&#xff0c;该方…...

Naive UI+vue一些组件的注意事项

NSpace(间距 Space) 默认给出space内的组件加一个div间隔&#xff0c;只能批量修改space内的元素样式&#xff0c;不能单独修改自组件样式&#xff0c;一般用于横向布局&#xff0c;若垂直布局若需要flex布局&#xff0c;慎用space组件NDataTable(数据表格 Data Table) :flex-h…...

sgetrf M N is 103040 时报错,这是个bug么 lapack and Openblas the same,修复备忘

号外&#xff1a; $ clang-format -style"{BasedOnStyle: llvm, IndentWidth: 4}" -i hello.cpp $ clang-format -style"{BasedOnStyle: llvm, IndentWidth: 4}" -i hello.cpp IndentWidth:4不错&#xff0c;默认2太下了 1,现象 MN103040时&…...

[后端代码审计] PHP 数组知识汇总

文章目录 前言1. 数组基础1.1 数组概念1.2 索引数组1.3 关联数组1.4 多维数组 2. 数组函数2.1 count()2.2 array_merge()2.3 array_keys()2.4 array_values()2.5 in_array() 3. 数组遍历3.1 for循环遍历3.2 foreach遍历3.3 遍历索引数组3.4 遍历关联数组 4. 数组排序4.1 sort()…...

单点Redis中面临哪些问题

我的后端学习大纲 我的Redis学习大纲 1.面试&#xff1a;请说下在单点Redis中面临哪些问题&#xff1a; 1.1.单点Redis的问题&#xff1a; 1.数据丢失问题&#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 2.并发能力问题&#xff1a;单节点Redis并发能力虽然…...

数学建模--蒙特卡洛算法之电子管更换刀片寿命问题

目录 1.电子管问题重述 2.电子管问题分析 3.电子管问题求解 4.刀片问题重述 5.刀片问题分析 6.刀片问题求解 1.电子管问题重述 某设备上安装有4只型号规格完全相同的电子管&#xff0c;已知电子管寿命服从100&#xff5e;200h之间的均匀分布&#xff0e; 只要有一个电子管…...

如何解码Linux下事件响应工具evtest的时间戳

evtest介绍 这里放一下原文链接evtest工具介绍及安装 在开发input子系统驱动时&#xff0c;常常会使用evtest工具进行测试。evtest是打印evdev内核事件的工具&#xff0c;它直接从内核设备读取并打印设备描述的带有值和符号名的事件&#xff0c;可以用来调试鼠标、键盘、触摸…...

基于STM32开发的智能门禁系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 小区门禁管理企业办公门禁系统常见问题及解决方案 常见问题解决方案结论 1. 引言 智能门禁系统通过整合多种身份识别技术&#xff0c;如密码输入、RFID刷卡、指…...

EasyExcel-高性能的 Java Excel 处理库

EasyExcel 是阿里巴巴开发的一个高性能的 Java Excel 处理库&#xff0c;主要用于处理大规模的 Excel 文件。它特别注重性能&#xff0c;优化了内存消耗&#xff0c;适合处理大数据量的 Excel 文件&#xff0c;避免了传统 Excel 库在处理大文件时的性能瓶颈。 主要功能 高性能…...

精益生产培训秘籍:六步策略,助力企业降本增效——张驰咨询

在当今竞争激烈的市场环境中&#xff0c;企业为了提高生产效率、降低成本、增强市场竞争力&#xff0c;纷纷引入精益生产理念。精益生产作为一种以客户需求为导向&#xff0c;通过持续消除浪费、优化流程、提升质量的生产方式&#xff0c;已成为众多企业转型升级的利器。张驰咨…...

【第19章】Spring Cloud之Gateway自定义Logback配置

文章目录 前言一、内置配置1. 关联依赖2. 内置配置 二、自定义配置1. 日志级别2. 彩色日志3. 自定义配置4. 增加打印语句5. 效果展示 总结 前言 网关层作为我们程序的主入口&#xff0c;有着至关重要的作用&#xff0c;下面我们通过自定义Logback配置增强网关层的日志输出&…...

Java流式编程

一、流的基础概念 流&#xff08;Stream&#xff09;&#xff1a; 定义&#xff1a;流是一种可以在数据集合上进行操作的抽象化序列&#xff0c;它没有存储数据的能力&#xff0c;而是通过一系列的操作来处理数据。特性&#xff1a; 无存储&#xff1a;流不存储数据&#xff0c…...

高可用集群keepalived从部署到实战一篇解决

目录 一.高可用集群 1.1 集群类型 1.2 系统可用性 1.3 系统故障 1.4 实现高可用 1.5.VRRP&#xff1a; 1.5.1 VRRP 相关术语 1.5.2 VRRP 相关技术 二.Keepalived 部署 2.1 keepalived 简介 2.2keepalived架构 2.3 Keepalived 环境准备 2.4 Keepalived 相关文件 2.…...

22222222222

222222222222222222...

springboot宠物相亲平台-计算机毕业设计源码16285

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 开发环境及相关技术介绍 2.1 MySQL数据库的介绍 2.2 B/S架构的介绍 2.3 Java语言 2.4 SpringBoot框架 3 宠物相亲平台系统分析 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济…...

警惕:手机被监听时会出现这些情况

在互联网高速发展的今天&#xff0c;手机已成为我们生活中不可或缺的一部分&#xff0c;它连接着我们的工作、学习与社交。然而&#xff0c;享受科技便利的同时&#xff0c;手机监听的风险也如影随形。 美国“斯诺登”事件曝光后&#xff0c;公众才惊觉手机监控可能就在身边。…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...