Llama系列:Llama1, Llama2,Llama3内容概述

前言

参考视频:大模型修炼之道(三): Llama系列讲解 Llama1,Llama2, Llama3_哔哩哔哩_bilibili

本博客是基于视频的学习笔记,以及相关知识点的扩充


 Llama1

1. 动机

  • 使用完全开源数据,性能媲美GPT3
  • 研究开源,禁止商用

 2. scaling law

损失曲线图的解释:
图中显示了两个模型(10B和50B)的训练过程。损失(loss)曲线反映了模型在训练过程中的性能,损失值的降低表示模型的性能在提升。随着训练时间的增加,计算成本也在不断增加。

随着计算时间的增加,两个模型的Loss都在不断降低,刚开始小模型的Loss下降更快,但随着训练的进行,小模型的性能逐渐饱和下降逐渐变慢,大模型下降速度超过了小模型。

当设定一个期望损失值时,如图,会发现大模型的训练花费可能会低于小模型。

但是!!Meta不这样认为!!!

Meta认为在考虑计算成本时,不仅要关注训练阶段的开销,更要重视推理时的计算成本。因为训练过程只能进行一次,而推理是一个重复的过程,影响到实际应用的频率和资源消耗。

所以从推理计算成本来看,小模型的成本是会小于大模型的。

按照原来的scaling law经验,原来10B的模型,建议用200B的token训练。

但是Meta对7B的模型使用了1T的token训练,发现性能还可以一直增长。

增加数据比扩大参数更有效:在后续的LLaMA系列中,Meta持续采纳这一观点,认为在提升模型性能时,增加训练数据的数量比扩大模型参数的数量更为有效。

3. 训练数据 

1. CommonCrawl 2017-2020的数据,对非英文数据进行了去重。

2. 将wikipedia引用的网页作为正例,其他网页作为负例训练线性模型。

3. 将books 和 wikiledia 用两个epoch训练,其他数据集只用了一个epoch。

4. 总共1.4T token。

5. 训练时的上下文长度为2048,用了2048个A100 80G的GPU训练,用时21天。

 4. 模型结构

Llama模型架构和GPT一样,都是采用Transformer Decoder架构,做了以下修改。

1. 和GPT2,3一样将Normalization从每个子层的输出位置移到了输入位置。

     (左GPT1,右GPT2)               

                           

 2. 将Layer Norm 改为了 RMS Norm

RMS Norm的动机是:

在进行normalization的时候,并不能改变特征的分布,所以可以去掉平移相关部分:

RMS Norm通过计算输入向量的均方根,进行归一化处理,消除了Layer Norm中计算均值的过程,简化计算。

RMSNorm(RMS归一化)介绍-CSDN博客

3. 采用了旋转位置编码 

4. 采用了Silu激活函数


Llama2 

1. 改进

  • 可商用;
  • 加大了数据量;
  • 通过微调训练了chat model,对标chatgpt

2. 训练数据

  • Llama2的训练数据比Llama1 多了40%,达到了2T的token(Llama1是1.4T  token)
  • 上下文token 从2048 翻倍到了4096
  • 使用了10万条数据进行监督微调(人类提出问题并给出回答数据)
  • 使用了100万条偏好数据(对同一个问题让模型给出多个回答,人工给这些回答进行排序)用来强化学习
  • 共三个版本(7B,13B,70B)
  • 70B的模型训练用了172万的GPU小时,相当于2048个GPU训练了35天

3. 训练流程

  •  在处理好的无标注文本数据上进行自回归预训练;
  • 然后进行监督微调训练;
  • 接下来通过人类偏好数据训练两个模型(安全奖励模型,有用奖励模型);
  • 再利用强化学习对模型训练;
  • 最终得到Llama 2 的chat Model。

4.  Train PPL—Tokens

纵坐标Train PPL-训练困惑度"(Training Perplexity)

困惑度是一个衡量语言模型预测能力的指标,反映了模型对测试数据的困惑程度。它可以被视为模型在生成文本时的“困惑”程度,数值越低,表示模型对数据的预测能力越强。

PPL = 2^{Cross-Entropy}

交叉熵损失(Cross-Entropy Loss)

Cross-Entropy = -\sum_{i}^{}p(i)log(q(i))

  • p(i) 是真实分布的概率(通常是一个one-hot编码的真值分布)。
  • q(i)是模型预测的概率分布。

5. GPA (Group Query Attention)

Multi-Head Attention

  • 每个Token都有多个Query、Key和Value:每个输入Token会生成多个Query(查询向量)、Key(键向量)和Value(值向量)。例如,如果有8个头,那么每个Token会有8个不同的Query和8个对应的Key和Value。

  • 计算注意力:每个Query会与所有Token的Keys进行相似度计算,从而生成注意力权重,进而加权所有的Values,产生最终的输出。这种机制允许模型在不同的子空间中学习信息,从而增强表示能力。

Multi-query Attention

  • 生成的特征不同:每个Token仍然生成多个Query,但只生成一个Key和一个Value。这样,所有的Query都与同一个Key进行相似度计算。这种机制减少了计算的复杂性,使得模型在处理时更加高效。

  • 注意力计算:所有的Query会与自己唯一的Key进行相似度计算,这在一定程度上简化了计算过程,并可能提高模型的效率。

分组注意力(Group Attention)

  • Query的分组:在分组注意力中,Query被分为几个组。例如,可以将每两个Query分为一组。每组对应一个Key和一个Value。

  • 组合优点:这种方法结合了多头注意力的优点和Marty Query Attention的计算效率。通过分组,模型可以在保持一定表达能力的同时,减少计算量。

原始Multi-head实现

假设原始的token维度为512,则w_q,w_k,w_v线性层的权重矩阵都为512*512,生成的q,k,v都是512维;

分为八个头,每个头的维度就是64:

Group Query Attention的实现

如果每两个query为1组,那么w_k和w_v矩阵为512*256,这里节省了模型的参数量;

这样Q有8个头,K,V只有4个头:

矩阵乘法的时候,将k,v的头再复制一份就可以相乘了:

注意:GQA再Llama2中只应用在了70B的模型中

Llama3

1. 性能表现

 2. 改进

  • 字典从3万2000个Token扩充4倍,达到了12万8。提高推理效率;

原来一个中文被编码为多个token,现在只需要一个token。

也就意味着原来需要多次推理才能输出一个汉字,现在只需要一次推理就可以。

但因为字典的增大,导致embedding层和分类头层增加,所以最小的模型也从7B到了8B.

  • 所有模型,包括8B模型也用GQA;
  • 序列长度从4096到了8192。

3. 训练数据

《Llama: The Llama 3 Herd of Models》预训练数据篇——论文精读笔记-CSDN博客

  • 15T的训练Token,全部来自公开数据。是Llama2的7倍大小。代码数据多了4倍;
  • 5%高质量非英语数据,涵盖30多种语言;
  • 对数据进行了清洗过滤,llama2生成训练数据来帮助训练文本质量分类器;(不是用llama2生成训练数据)
  • 微调阶段除了开源数据集,还人工标注了1000万样本。

 4. 训练技能

 5. 指令微调

指令微调是一种通过在特定的指令数据集上对预训练模型进行进一步训练的方法,使得模型能够更有效地处理和响应各种文本指令。这些指令可以包括问答、生成文本、总结、翻译等多种任务。

  • SFT
  • 拒接采样
  • PPO
  • DPO

SFT(Supervised Fine-Tuning)

定义: SFT是指在预训练模型的基础上,通过监督学习的方式对模型进行细化调整。这个过程通常利用带有标签的数据集来学习模型在特定任务上的表现。

特点:

  • 数据依赖: SFT需要标注数据,通常由人类专家或自动化程序生成。
  • 目标明确: 针对特定任务(如分类、问答等)进行微调,以提高模型的准确性和性能。
  • 适用性广: 可以应用于各种NLP任务,如文本生成、文本分类等。

拒接采样(Reject Sampling)

定义: 拒接采样是一种用于生成样本的方法,它通过计算生成样本的概率并根据该概率进行选择。具体而言,对于每个生成的样本,决定是否接受该样本。

特点:

  • 选择性强: 通过设定阈值来拒绝那些不符合特定条件的样本,从而提高生成样本的质量。
  • 灵活性: 可以根据模型的输出概率进行动态调整,适应不同的应用场景。
  • 应用: 常用于增强生成模型的质量,特别是在对生成内容有明确标准的时候。

 PPO(Proximal Policy Optimization)

定义: PPO是一种强化学习算法,旨在优化策略的同时确保更新的稳定性。它通过限制每次更新的幅度,避免大幅度的策略变化。

特点:

  • 稳定性: 通过使用剪切目标函数(clipped objective function)来限制策略更新,从而增大了训练的稳定性。
  • 易于实现: 相较于其他强化学习算法,PPO的实现较为简单,且在多种任务上表现良好。
  • 广泛应用: 常用于训练对话系统、游戏AI等需要动态学习的场景。

DPO(Direct Preference Optimization)

定义: DPO是一种直接优化策略,通常用于模型输出的偏好学习。DPO通过优化模型对不同输出的偏好,使模型能够更好地满足用户需求。

特点:

  • 直接优化: 通过直接调整模型输出的偏好,优化模型的生成质量。
  • 用户反馈: DPO通常使用用户反馈或排序信息来指导模型学习,从而提高用户体验。
  • 应用场景: 常用于推荐系统和对话系统等需要考虑用户偏好的任务。

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

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

相关文章

Docker 搭建本地Harbor私有镜像仓库

Docker 搭建本地Harbor私有镜像仓库 一、Harbor 核心价值与企业级特性解析 在容器化技术普及的背景下,镜像仓库作为容器生命周期的核心组件,其可靠性直接影响开发效率与生产稳定性。Docker 官方的 Registry 虽能实现基础镜像存储,但存在明显短…

AI 助力:如何批量提取 Word 表格字段并导出至 Excel

在日常办公中,我们经常需要处理大量的 Word 文档中的表格数据,如学生登记表、客户信息表、报名表等。然而这些表格往往格式各异、字段命名不统一(如“姓名”“名字”“Name”),甚至含有合并单元格或多余空白行&#xf…

在 Azure Linux 上安装 RustFS

本文分享在 Azure Linux 上安装并使用对象存储 RustFS 的过程。 关于 RustFS RustFS 是一款用 Rust 语言编写的分布式存储系统,兼容 S3 协议,是 MinIO 的国产化平替。详情可以前往 RustFS 官网。目前,RustFS 支持二进制、Docker 安装方式&am…

实现在线预览pdf功能,后台下载PDF

<!-- PDF预览模态框 --><n-modalv-model:show"pdfModalVisible"title"投诉统计报告预览":closable"false":mask-closable"false"positive-click"closePdfModal"positive-text"关闭":width"900"…

华为VS格行VS中兴VS波导随身WIFI6怎么选?流量卡OR随身WIFI,长期使用到底谁更香?

在移动互联时代&#xff0c;流量焦虑成为现代人的通病。面对"办流量卡还是随身WiFi"的抉择&#xff0c;许多人陷入两难。本文从实际需求出发&#xff0c;用数据和场景帮你精准决策&#xff0c;尤其这五类人群建议直接选择正规随身WiFi。一、这五类人&#xff0c;随身…

AI网络搜索

作为AI应用程序开发人员在了解函数调用&#xff08;Function Calling&#xff09;特性调用本地函数时可能注意到列表型参数tools中每一个元素都携带有一个type值。而在大多数函数调用示例程序中&#xff0c;这个type值一直被设定为“function”&#xff0c;这意味着它还可能存在…

39.Sentinel微服务流量控制组件

雪崩问题 微服务调用链路中某个服务故障,引起整个链路中的所有微服务都不可用。 解决方案 1.超时处理:设置一个超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止的等待。(只能起到缓解作用,并不能从根本上解决问题) 2.舱壁模式:限定每个业务能使用的线程…

基于hadoop的竞赛网站日志数据分析与可视化(下)

【基于hadoop的竞赛网站日志数据分析与可视化&#xff08;上&#xff09;】讲解了如何用hadoop对数据进行初步处理&#xff0c;本篇主要讲解用python对结果数据进行可视化分析。 ------------------------------------------------------------------------------------------…

Python爬虫打怪升级:数据获取疑难全解析

一、引言 **​​​ 在大数据时代,数据就是价值的源泉。而 Python 爬虫,作为数据获取的得力助手,凭借 Python 简洁的语法和丰富强大的库,在众多领域发挥着重要作用。无论是电商领域的价格监测、市场调研中的数据收集,还是学术研究里的文献获取,Python 爬虫都能大显身手。…

基于R语言的极值统计学及其在相关领域中的实践技术应用

极值统计学就是专门研究自然界和人类社会中很少发生&#xff0c;然而发生之后有着巨大影响的极端现象的统计建模及分析方法&#xff1b;在水文、气象、环境、生态、保险和金融等领域都有着广泛的应用。一&#xff1a;独立假设下的极值统计建模 1.广义极值模型. 2.极小值的处理.…

前端面试十一之TS

TS 是 TypeScript 的缩写&#xff0c;是一种由微软开发的开源编程语言&#xff0c;它是 JavaScript 的一个超集&#xff0c;为 JavaScript 添加了类型系统和对 ES6 的支持。以下是关于 TypeScript 的详细介绍&#xff1a;一、特点类型系统&#xff1a;TypeScript 引入了类型注解…

Excel快捷键

Excel快捷键可以快速提高使用Excel的效率&#xff0c;下面将Excel快捷键进行整理汇总以备不时之需 标注颜色的为需要经常使用并可以显著提高效率的快捷键 Ctrl相关快捷键【Ctrl】【1】 显示【单元格格式】设置窗口,可以设置选中的格式【Ctrl】【2】 应用或取消加粗…

Windows 10/11安装WSL、Ubuntu、Docker Desktop

WSL&#xff0c;Windows Subsystem for Linux&#xff0c;是微软开发的轻量级虚拟机环境&#xff0c;允许用户在 Windows上运行完整的Linux内核和用户空间&#xff0c;适用于Windows的Linux子系统。能实现&#xff1a; 运行原生的Linux命令和程序&#xff08;如apt&#xff0c…

React之旅-06 Ref

当你想让一个组件“记住”一些信息&#xff0c;但又不想这些信息触发新的渲染时&#xff0c;你可以使用 ref。使用 Ref 前&#xff0c;需要导入useRef&#xff0c;代码如下&#xff1a;import { useRef } from react;在您的组件内部&#xff0c;调用 useRef 并将您想要引用的初…

stm32-Modbus主机移植程序理解以及实战

目录一、背景二、代码理解&#xff08;一&#xff09;main()函数例程代码功能遇到的问题解决方式分析&#xff08;二&#xff09;eMBMasterPoll( void )函数例程代码1. 变量声明2. 协议栈状态检查3. 获取事件4. 事件处理&#xff08;switch-case&#xff09;4.1 EV_MASTER_READ…

c++判断文件或目录是否存在

#include<sys/stat.h>#include<fstream>#include<string>#include<stdio.h>#include<stdlib.h>#include<vector>#include<io.h>#include<iostream>bool IsFileGood(string strFileName, book bFile){if(bFile) \\文件{ifstrea…

Java设计模式之行为型模式(命令模式)

一、核心定义与设计思想 命令模式通过对象化请求&#xff0c;将操作的具体实现细节封装在命令对象中&#xff0c;使得调用者&#xff08;Invoker&#xff09;无需直接依赖接收者&#xff08;Receiver&#xff09;&#xff0c;仅需通过命令对象间接调用。这种设计支持以下能力&a…

大数据领域开山鼻祖组件Hadoop核心架构设计

一、Hadoop的整体架构 Hadoop是一个专为大数据设计的架构解决方案&#xff0c;历经多年开发演进&#xff0c;已逐渐发展成为一个庞大且复杂的系统。其内部工作机制融合了分布式理论与具体工程开发的精髓&#xff0c;构成了一个整体架构。 Hadoop最朴素的原理在于&#xff0c;它…

OneCode3.0 VFS分布式文件管理API速查手册

&#x1f4da; 前言&#xff1a;OneCode 3.0微内核引擎架构解析 在云原生与分布式系统日益普及的今天&#xff0c;文件管理系统面临着前所未有的挑战——海量数据存储、跨节点协同、多租户隔离以及弹性扩展等需求推动着传统文件系统向分布式架构演进。OneCode 3.0作为新一代企业…

UI前端与数字孪生结合实践探索:智慧物流的仓储自动化管理系统

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言&#xff1a;传统仓储的 “效率黑洞” 与数字孪生的破局当仓库管理员在数万平的库房中…