【大模型】LLaMA-2:Open Foundation and Fine-Tuned Chat Models, July. 2023.

server/2024/12/21 18:51:08/

论文:LLaMA-2:Open Foundation and Fine-Tuned Chat Models, July. 2023.
链接:https://arxiv.org/abs/2307.09288

Introduction

  1. 创新点
    7B - 70B
    预训练 + 微调
    开源Llama 2 和Llama 2-Chat,针对对话用例进行了优化
  2. Motivation
    AI assistants 擅长复杂的推理任务,通过直观的聊天界面与人类进行交互
    大模型人类对齐(加强可用性和安全性)需要大量的成本,并且通常是不透明或容易重现的,限制了社区的进步
  3. Details
  • Llama 2 在公开可用的新混合数据上进行了训练,预训练语料库增加40%,增加模型的上下文长度,采用分组查询注意力,7B、13B 和70B
  • Llama 2-Chat 同样包括7B、13B 和70B,训练数据不同(对话数据)

预训练

  1. 预训练数据
    更鲁棒的数据清洗,更新数据混合,增加了40%的token(2 trillion tokens),double上下文长度,上采样most factual sources增加知识和抑制幻觉。
  2. 训练细节
    结构上与lamma1一样,除了上下文长度和分组查询注意力grouped-query attention (GQA).
  • 超参数:warmup 2000,cosine learning rate schedule, decay final learning rate down to 10% of the peak learning rate;AdamW optimizer β1 = 0.9, β2 = 0.95, eps = 10−5.
  • Tokenizer:vocabulary size is 32k tokens,BPE + SentencePiece,数字成单个数字并使用字节来分解未知的 UTF-8 字符。

在这里插入图片描述
3. Llama 2 Pretrained Model Evaluation
在这里插入图片描述
闭源比较:
在这里插入图片描述

微调

  1. Supervised Fine-Tuning (SFT)
    (1)使用公开可用的指令调整数据开始 SFT 阶段
    (2)Quality Is All You Need:SFT数据来源多,多样性和质量不足——特别是对于将LLM与对话风格的指令对齐。几万SFT数据足以获得高质量的结果。
    (3)微调细节:learning rate of 2 × 10−5, a weight decay of 0.1, a batch size of 64, and a sequence length of 4096 tokens;拼接prompt和answer,加入一个特殊token分割它们;2 epoch
  2. Reinforcement Learning with Human Feedback (RLHF)
    进一步将模型行为与人类偏好和指令对齐; 采样人类偏好数据,人类注释者选择他们喜欢的两个模型输出中的哪一个用于训练奖励模型(学习人类注释者偏好的模式,然后自动化偏好决策)
  • 人类偏好数据收集:除了偏好选择,还会有等级label:significantly better, better,slightly better, or negligibly better/ unsure.

  • 奖励建模:奖励模型将模型响应及其对应的提示(包括来自先前回合的上下文)作为输入,并输出标量分数来指示模型生成的质量(例如,有用性和安全性);训练了两个独立的奖励模型,一个针对有用性(称为帮助 RM)进行了优化,另一个针对安全(安全 RM)【预训练模型初始化RM,确保两个模型都受益于预训练中获得的知识】;下一个token预测的分类头被替换为回归头以输出标量奖励

  • 训练目标:将收集到的成对人类偏好数据转换为binary ranking label format (i.e., chosen & rejected),并迫使选择的响应得分高于其对应的响应。
    在这里插入图片描述
    为了利用偏好level,引入margin,m® 是偏好评级的离散函数。越相似的回答margin越小。m®可以调节两个回复之间的差值,如果对比结果为「显著更好」,则会增加梯度值,加快更新速度。

  • 数据组合:首先使用开源数据集(已经收集偏好标注)训练奖励模型,开源数据没有任何负向作用,混合在训练数据中,提高奖励模型泛化性;有用性模型:all Meta Helpfulness data + 结合从 Meta Safety 和开源数据集中均匀采样的剩余数据的相等部分;安全模型:all Meta Safety and Anthropic Harmless data + Meta Helpfulness and open-source helpfulness data in a 90/10 proportion,有用性样本可以提高安全模型准确性。

  • 训练细节:one epoch,训练太久会导致过拟合;maximum learning rate is 5 × 10−6 for the 70B parameter Llama 2-Chat and 1 × 10−5 for the rest,decreased on a cosine learning rate schedule, down to 10% of the maximum learning rate,warm-up of 3% of the total number of steps, with a minimum of 5. The effective batch size is kept fixed at 512 pairs, or 1024 rows per batch.

  • 奖励模型结果:1000个样本的测试集,
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
Llama 2中的两个奖励模型分别侧重「有用性」(helpfulness)和「安全性」(safety),用于模型优化的最终奖励函数会将两个分数进行线性组合。
在这里插入图片描述

  1. Iterative Fine-Tuning
  • Proximal Policy Optimization (PPO):
  • Rejection Sampling fine-tuning: 模型在拒绝采样时会得到K个输出,在每次优化迭代时选择具有最高奖励的输出用于梯度更新,而PPO每次只基于单样本进行更新;仅使用最大的 70B Llama 2-Chat 执行拒绝采样,所有较小的模型都对来自较大模型的拒绝采样数据进行微调,从而将大模型能力提炼为较小的模型(蒸馏)。
    在这里插入图片描述
    拒绝采样的增益:
    在这里插入图片描述
    在迭代模型更新期间,最佳温度不是恒定的
    在这里插入图片描述
    PPO:
    在这里插入图片描述
    在这里插入图片描述
    最初的RLHF模型在几轮对话后忘记最初的指令,提出Ghost Attention方法(Gatt,其实是一个训练trick)来增强模型对指令的遵从。
    假设多轮对话数据为 [u1,a1,…,un,an],定义一条指令(inst),使得整个对话过程中都遵守该指令,然后将该指令综合连接到对话的所有用户消息,构造为 [inst+u1,a1,…,inst+un,an]。为了避免语句不匹配的问题,在训练过程中,保留第一轮的提示,并将中间轮数的损失置为0。

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

相关文章

【uniapp】实战一人员交接班

前言 最近公司在搞一个功能,实现现场交接班的人知道需要作业前,需要提前检查、准备的工作,然后这个活安排到了我这,临时抱佛脚,赶制了一个粗略的成品。 项目成果展示 首页: 项目结构解析 项目结构介绍: 1、pages/:存放应用的页面文件,包含页面的 Vue 文件、JS 文…

Linux系统加固

Linux系统安全加固 文章目录 Linux系统安全加固密码策略文件、目录安全未授权suid、未授权sgid排查与加固禁止root登录ftp、禁止匿名访问ftp计划任务排查与加固、开机自启排查与加固限定root用户远程ssh登录日志加固 无用账号、用户组和空口令账户排查与加固 禁用或删除无用账号…

JAVA集合-LIST 及源码解析

目录 常见的 List 操作 1. 创建 List 2.访问元素 3. 修改元素 4. 删除元素 5. 遍历 List 6. 获取 List 的大小 7. 检查 List 是否包含某个元素 ArrayList vs LinkedList ArrayList 源码详解 一、属性解析 二、构造方法解析 三、核心方法解析 add(E e)&#xff1a…

小程序中使用 Vue2 + Vuex 实现数据存储与获取

在小程序开发中,数据的存储与获取是一个非常重要的环节。本文将介绍如何在小程序中使用 Vue2 和 Vuex 实现数据的存储与获取。我们将通过一个具体的例子来展示如何在 Vuex 中管理用户信息和机构信息,并在组件中使用这些数据。 项目结构 首先&#xff0…

鸿蒙学习笔记:用户登录界面

文章目录 1. 提出任务2. 完成任务2.1 创建鸿蒙项目2.2 准备图片资源2.3 编写首页代码2.4 启动应用 3. 实战小结 1. 提出任务 本次任务聚焦于运用 ArkUI 打造用户登录界面。需呈现特定元素:一张图片增添视觉感,两个分别用于账号与密码的文本输入框&#…

搭建一个简单的Web服务器(Apache2.4)

一、下载安装包 Apache服务器的官方下载地址:http://httpd.apache.org windows系统的安装软件下载地址:https://www.apachelounge.com/download/ 下载的是免安装的版本:httpd-2.4.62-240904-win64-VS17.zip 解压后将 Apache24 拷贝到 D 盘&…

c++ 找第一个只出现一次的字符

【题目描述】 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。 【输入】 一个字符串,长度小于100000。 【输出】 输出第一个仅出现一次的字符,若没有则输出no。 【输入样例】 abcabd【输出样…

Android 折叠屏问题解决 - 展开后布局未撑开

一、说明 正常情况下手机展开折叠时页面会销毁重建,但可以通过参数设置禁止销毁重建。 android:configChanges"orientation|screenSize|screenLayout|smallestScreenSize" 但设定完后发现 RecyclerView 中的 item 没有重新按照新的尺寸进行改变&#x…