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

Llama 系列简介与 Llama3 预训练模型推理

1. Llama 系列简介

1.1 Llama1

由 Meta AI 发布,包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型

数据集:模型训练数据集使用的都是开源的数据集,总共 1.4T token

模型结构:原始的 Transformer 由编码器(Encoder)和解码器(Decoder)两个部分构成,同时 Encoder 和 Decoder 这两部分也可以单独使用,Llama是基于 Transformer Decoder 的架构,在此基础上做了以下改进:

(1)将 Layer-Norm 改成 RMSNorm(Root Mean square Layer Normalization),并将其从 output 层,移到 input 层

(2)采用 SwiGLU 激活函数

(3)采用 RoPE 旋转位置编码

分词器:采用 BPE 算法,使用 SentencePiece 实现,将所有数字拆分为单独的数字,并使用字节来分解未知的 UTF-8 字符,词表大小为 32k

优化器:采用 AdamW,是Adam的改进,可以有效地处理权重衰减,提供训练稳定性

Learning Rate:使用余弦学习率调整 cosine learning rate schedule,使得最终学习率等于最大学习率的10%,设置0.1的权重衰减和1.0的梯度裁剪,warmup 的步数为 2000,并根据模型的大小改变学习率和批处理大小

模型效果:Llama-13B (GPT-3 1/10大小) 在多数 benchmark 上超越 GPT-3 (175B),在规模较大的端,65B 参数模型也与最好的大型模型也具有竞争力

1.2 Llama2

由 Meta AI 发布,包含 7B、13B、34B、70B 四种参数规模的基座语言模型,除了 34B 其他模型均以开源且免费可商用

数据集:模型训练数据集使用的都是开源的数据集,相比上一代的训练数据增加了 40%,达到了增至 2T token,训练数据中的文本来源也更加的多样化。Llama2 对应的微调模型是在超过 100 万条人工标注的数据下训练而成(但是Llama2 语料库仍以英文(89.7%)为主,而中文仅占据了其中的 0.13%,这导致 Llama2 很难完成流畅、有深度的中文对话)

模型结构:

(1)Llama2 与 Llama1 的主要结构基本一致

(2)Llama2 上下文长度由之前的 2048 升级到 4096,可以理解和生成更长的文本

(3)7B 和13B 使用与 Llama1 相同的架构,34B 和 70B 模型采用了分组查询注意力(GQA)

优化器、Learning Rate、分词器:与 Llama1 一致

模型效果:从模型评估上看,Llama2 在众多的基准测试中,如推理、编程、对话能力和知识测验上,都优于 Llama1 和现有的开源大模型。Llama2 70B在 MMLU 和 GSM8K 上接近 GPT-3.5(OpenAI,2023),但在编码基准方面存在显著差距

Llama2 相比Llama1 的升级:

(1)Llama2 训练数据相比 Llama1 多出40%,上下文长度是由之前的 2048 升级到 4096,模型理解能力得以提升可以生成更长的文本

(2)模型训练数据集使用的相比上一代的训练数据增加了 40%,并且更加注重安全&隐私问题

(3)发布了Llama2-Chat,是 Llama2 微调后的模型(在公开数据集上预训练以后引入SFT(有监督微调)、RLHF(人类反馈强化学习)+拒绝采样+近端策略优化 (PPO)两个优化算法)

Meta 试图证明小模型在足够多的的数据上训练后,效果也能达到甚至超过大模型

1.3 Llama3

Llama3 有基础版和 Instruct 两个版本,每个版本拥有 8B、70B 和 405B 三个参数规模的模型

数据集:Llama3 的预训练数据集增加至 15T,这些数据都是从公开来源收集的高质量数据集(依旧强调高质量的训练数据集至关重要),其中包括了 4 倍以上的代码 token 以及 30 种语言中 5% 的非英语 token(这意味着 Llama3 在代码能力以及逻辑推理能力的性能将大幅度提升)。微调数据包括公开可用的指令数据集,以及超过1000万个人工注释的示例。预训练和微调数据集均不包含元用户数据。(主要还是以英语为主,中文占比依旧很低)

通过开发一系列数据过滤流程:包括使用启发式筛选器、NSFW 筛选器、语义重复数据删除方法和文本分类器来预测数据质量,以及使用 Llama 2 为 Llama 3 提供支持的文本质量分类器生成训练数据。

模型结构:Llama 3 总体上与 Llama2 相比没有重大变化,在 Llama 2 中只有 34B、70B 使用了分组查询注意 (GQA),为了提高模型的推理效率,Llama3 所有模型都采用了 GQA

分词器:与 Llama2 不同的是,Llama3 将 tokenizer 由 sentencepiece 换成 tiktoken,词汇量从 32K 增加到 128K,增加了 4 倍。更大的词汇库能够更高效地编码文本,增加编码效率,可以实现更好的下游性能。不过这也会导致嵌入层的输入和输出矩阵尺寸增大,模型参数量也会增大。

序列长度:输入上下文长度从 4096(Llama 2)和 2048(Llama 1)增加到 8192,但相对于 GPT-4 的 128K 来说还是相当小

模型效果:在多项行业基准测试中展示了最先进的性能,从下表可以看出,Llama3 性能远远高于 Llama2,Llama3 8B 性能远高于 Llama2 70B,Llama3 70B模型在五项测评中有三项高于 GPT-4,Llama3 400B 模型更是全面碾压 GPT-4

BenchMark

Llama2 7B

Llama2 13B

Llama2 70B

Llama3 8B

Llama3 70B

Llama3 400B

GPT-3.5

GPT-4

MMLU

34.1

47.8

52.9

68.4

82

86.1

70

86.4

GPQA

21.7

22.3

21.0

34.2

39.5

48

28.1

35.7

HumanEval

7.9

14.0

25.6

62.2

81.7

84.1

48.1

67

GSM-8K

25.7

77.4

57.5

79.6

93

94.1

57.1

92

MATH

3.8

6.7

11.6

30.0

50.4

57.8

34.1

52.9

缩放定律:制定了一系列的缩放定律,通过小模型表现可以在大模型训练前预测大模型的表现。根据之前 Scaling Law 推算 8B 模型对应 200B Token(2000亿),但是 Meta 使用到了 15T Token(15万亿)训练,性能还可以提升。

从目前模型效果来看,Meta 使用的 Scaling Law 法则是非常有效的,Meta 得到了一个非常强大的模型,它非常小,易于使用和推理,而且 Meta 表示,即使这样,该模型似乎也没有在标准意义上“收敛”,性能还能改善。这就意味着,一直以来我们使用的 LLM 训练是不足的,远远没有达到使模型收敛的点。较大的模型在训练计算较少的情况下可以与较小模型的性能相匹配,考虑到推理过程中使效率更高,还是会选择小模型。

为了训练最大的 Llama3 模型,Meta 结合了三种类型的并行化:数据并行化、模型并行化和管道并行化。最高效的实现是在 16K GPU 上同时训练时,每个 GPU 的计算利用率超过 400 TFLOPS。在两个定制的 24000 个 GPU 集群上训练,有效训练时间超过95%,比 Llama2 训练效率提高了 3 倍

模型

训练(GPU小时)

GPU

训练 Token

Llama1 65B

1.0 M

A100 80G

1.4 万亿

Llama2 70B

1.7 M

A100 80G

2 万亿

Llama3 70B

7.7 M

H100 80G

15 万亿

Llama2 微调后的模型为 Llama2-Chat,Llama3 微调后的模型为Llama3-Instruct,不光用在聊天上,也用在指令跟随

指令微调:为了在聊天用例中充分释放预训练模型的潜力,Meta 对指令调整方法进行了创新。训练方法结合了监督微调 (SFT)、拒绝采样(RS)、近端策略优化 (PPO) 和直接策略优化 (DPO) 的组合。这种组合训练,提高了模型在复杂推理任务中的表现。

2. Llama3 预训练模型推理

2.1 下载项目与模型

下载项目

git clone https://github.com/meta-llama/llama3.git

下载模型

官网下载
https://llama.meta.com/llama-downloads/

在官网填写信息后,申请下载权限,会发送一个URL到填写的邮箱内,像这样:

进入到项目目录,执行./download.sh:

按照要求输入邮件中的URL,以及需要下载的模型,可选 8B、8B-instruct、70B 和 70B-instruct,按需下载即可,下载中:



下载完成:

huggingface 下载【推荐】
https://huggingface.co/meta-llama/Meta-Llama-3-8B

可以直接点击下载按钮在网页下载,也可以点 Clone 进行命令行下载~  

2.2 环境配置

# 1.安装虚拟环境
conda create -n llama python=3.11
conda activate llama
# 2.安装依赖包
cd llama3
pip3 install -e .

2.3 模型推理

1. 模型并行值

  • 8B模型的模型并行 (MP) 值为1
  • 70B模型的模型并行 (MP) 值为8

在 Llama3 模型中,MP 值指的是并行化模型时使用的硬件单元数。一个 MP 值为 1 的 8B 模型可能意味着整个模型可以在单个计算设备上运行,而一个 MP 值为 8 的 70B 模型可能意味着模型被分成 8 部分,每部分在不同的计算设备上运行。

2. 序列长度和批处理大小

  • 所有模型支持最多 8192 个 tokens 的序列长度

  • 缓存是根据 max_seg_len 和 max batch_size 值预分配的,应根据你的硬件配置这些值

3. 基于 transformers 进行预训练模型推理

import transformers
import torchpipeline transformers.pipeline(task="text-generation",model=""/root/models/Meta-Llama-3-8B-instruct"",model_kwargs={"torch_dtype": torch. bfloat16},device="cuda"
)print(pipeline("Hey how are you doing today ?"))

4. 基于 vLLM 进行预训练模型推理

安装依赖:

pip3 install vllm

服务部署:

python3 -m vllm.entrypoints.openai.api_server --model /root/models/Meta-Llama-3-8B --dtype auto --api-key 123456

另起一个终端,进行服务测试:

from openai import OpenAIclient = OpenAI(base_url="http://localhost:8000/v1",api_key="123456"
)
print("服务连接成功")
completion=client.completions.create(model="/root/models/Meta-Llama-3-8B",prompt="San Francisco is a",max_tokens=128
)
print("### San Francisco is : ")
print("Completion result: ", completion)

测试结果:

相关文章:

Llama 系列简介与 Llama3 预训练模型推理

1. Llama 系列简介 1.1 Llama1 由 Meta AI 发布,包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型 数据集:模型训练数据集使用的都是开源的数据集,总共 1.4T token 模型结构:原始的 Transformer 由编码器&#xff08…...

【AIGC】ChatGPT提示词助力自媒体内容创作升级

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯高效仿写专家级文章提示词使用方法 💯CSDN博主账号分析提示词使用方法 💯自媒体爆款文案优化助手提示词使用方法 💯小结 &#x1f4af…...

SSTI基础

<aside> &#x1f4a1; 简介 </aside> 原理 又名&#xff1a;Flask模版注入 模版种类 **Twig{{7*7}}结果49 jinja2{{7*7}}结果为7777777 //jinja2的常见参数是name smarty7{*comment*}7为77**<aside> &#x1f4a1; flask实例 </aside> **from …...

10.1软件工程知识详解上

软件工程概述 软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析过程&#xff0c;任务是确定软件开发工程必须完成的总目标&#xff0c;具体可分成问题定义、可行性研究、需求分析等。软件开发时期&#xff1a;就是软件的设计与实现&#xff0c;可分成…...

03Frenet与Cardesian坐标系(Frenet转Cardesian公式推导)

Frenet转Cardesian 1 明确目标 已知车辆质点在Frenet坐标系下的状态&#xff1a; Frenet 坐标系下的纵向坐标&#xff1a; s s s纵向速度&#xff1a; s ˙ \dot{s} s˙纵向加速度&#xff1a; s \ddot{s} s横向坐标&#xff1a; l l l横向速度&#xff1a; l ˙ \dot{l} l…...

knowLedge-Vue I18n 是 Vue.js 的国际化插件

1.简介 Vue I18n 是 Vue.js 的国际化插件&#xff0c;它允许开发者根据不同的语言环境显示不同的文本&#xff0c;支持多语言。 Vue I18n主要有两个版本&#xff1a;v8和v9。v8版本适用于Vue2框架。v9版本适用于Vue3框架。 2. 翻译实现原理 Vue I18n 插件通过在 Vue 实例中注…...

【开源免费】基于SpringBoot+Vue.JS微服务在线教育系统(JAVA毕业设计)

本文项目编号 T 060 &#xff0c;文末自助获取源码 \color{red}{T060&#xff0c;文末自助获取源码} T060&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

expressjs 中的mysql.createConnection,execute 怎么使用

在 Express.js 应用中使用 MySQL 数据库&#xff0c;你通常会使用 mysql 或 mysql2 这样的库来创建和管理数据库连接&#xff0c;并执行查询。然而&#xff0c;mysql.createConnection 并不直接提供 execute 方法。相反&#xff0c;你可以使用 query 方法来执行 SQL 语句。 以…...

每日一题|983. 最低票价|动态规划、记忆化递归

本题求解最小值&#xff0c;思路是动态规划&#xff0c;但是遇到的问题是&#xff1a;动态规划更新的顺序和步长&#xff0c;以及可能存在的递归溢出问题。 1、确定dp数组含义 dp[i]表示第i天到最后一天&#xff08;可能不在需要出行的天数里&#xff09;&#xff0c;需要花费…...

oracle 正则 匹配 身份正 手机号

1.正则匹配身份证号: regexp_like(card_id,^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$) ^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$ ^[1-9]&#xff1a;第一位数字不能为0。 \d{5}&#xff1a;接下来…...

在树莓派上部署开源监控系统 ZoneMinder

原文&#xff1a;https://blog.iyatt.com/?p17425 前言 自己搭建&#xff0c;可以用手里已有的设备&#xff0c;不需要额外买。这套系统的源码是公开的&#xff0c;录像数据也掌握在自己手里&#xff0c;不经过不可控的三方。 支持设置访问账号 可以保存录像&#xff0c;启…...

2022年6月 Frontier 获得性能第一的论文翻译

为百万兆级加速架构做高性能 Linpack 优化 摘要 我们详细叙述了在 rocHPL 中做的性能优化&#xff0c;rocHPL 是 AMD 对 HPL 基准的开源实现&#xff0c;主要是针对节点进行优化的架构&#xff0c;是为百万兆级系统而设计的&#xff0c;比如&#xff1a;Frontier suppercomput…...

B2B商城交易解决方案:赋能企业有效重塑采购与销售新生态

在电商零售领域&#xff0c;商城系统始终是企业搭建商城的关键利器。 伴随着电商行业的蓬勃发展&#xff0c;各类新模式层出不穷&#xff0c;各种商城系统也应运而生&#xff0c;其中B2B商城更是最为常见的一种。 近年来&#xff0c;得益于电子商务的迅猛发展&#xff0c;B2B商…...

初始C语言(五)

前言 本文章就代表C语言介绍以及了解正式完成&#xff0c;后续进行具体分析和详细解析学习。知识根深蒂固才可以应付后来的学习&#xff0c;地基要打好&#xff0c;后续才会轻松。 十四、结构体 结构体是C语言中最最重要的知识点&#xff0c;使得C语言有能力描述复杂的类型。 …...

mysql学习教程,从入门到精通,SQL 修改表(ALTER TABLE 语句)(29)

1、SQL 修改表&#xff08;ALTER TABLE 语句&#xff09; 在编写一个SQL的ALTER TABLE语句时&#xff0c;你需要明确你的目标是什么。ALTER TABLE语句用于在已存在的表上添加、删除或修改列和约束等。以下是一些常见的ALTER TABLE语句示例&#xff0c;这些示例展示了如何修改表…...

【网络基础】网络常识快速入门知识清单,看这篇文章就够了

&#x1f490;个人主页&#xff1a;初晴~ 在现在这个高度智能化的时代&#xff0c;网络几乎已经成为了空气一般无处不在。移动支付、网上购物、网络游戏、视频网站都离不开网络。你能想象如果没有网络的生活将会变成什么样吗&#x1f914; 然而如此对于如此重要的网络&#xf…...

OceanBase 关于一号表笔记与ERROR 1060(42S21)问题

OceanBase 关于客户端访问OceanBase 的表数据的过程说明 1.OBserver中的location cache 会保存observer 曾经访问过的实体表的位置信息(meta table 主要包括 __all_core_table、__all_root_table、__all_tenant_meta_table 三张内部表。OB 集群中所有实体表的 location&#x…...

【四】Spring Cloud OpenFeign原理分析

Spring Cloud OpenFeign原理分析 概述 Spring Cloud 微服务实践也有挺多年了&#xff0c;一直想着总结一下这系列的知识点&#xff0c;最近终于下定决心来出一个Spring Cloud 系列文章了。本文主要围绕fegin组件来进行讲解&#xff0c;文中将会给出基础使用的示例&#xff0c;还…...

EDM平台大比拼 用户体验与营销效果双重测评

本文评测了ZohoCampaigns、Mailchimp、Sendinblue、AWeber四款EDM平台&#xff0c;分别适合中小企业、多平台集成、多功能集成、初学者等需求。建议企业根据自身规模、技术水平和功能需求选择最适合的平台。 一、Zoho Campaigns 功能概述 Zoho Campaigns是Zoho旗下的一款专注…...

开卷可扩展自动驾驶(OpenDriveLab)

一种通用的视觉点云预测预训练方法 开卷可扩展自动驾驶&#xff08;OpenDriveLab&#xff09; 自动驾驶新方向&#xff1f;ViDAR&#xff1a;开卷可扩展自动驾驶&#xff08;OpenDriveLab&#xff09;-CSDN博客 创新点 在这项工作中&#xff0c;本文探索了专为端到端视觉自动…...

基于大数据的二手电子产品需求分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

SpringBoot——基础配置

但是还需要删除pom.xml中的标签——模板的文件也同样操作 banner的选项——关闭 控制台 日志 banner图片的位置——还会分辨颜色 在 Java 的日志框架&#xff08;如 Logback、Log4j2 等&#xff09;中&#xff0c;logging.level.root主要用于设置根日志记录器的日志级别…...

Android OpenGLES2.0开发(三):绘制一个三角形

我们总是对陌生人太客气&#xff0c;而对亲密的人太苛刻 上一篇文章中&#xff0c;我们已经将OpenGL ES环境搭建完成。接下来我们就可以开始我们的绘图之旅了。该篇我们讲解最基本图形三角形的绘制&#xff0c;这是一切绘制的基础。在OpenGL ES的世界里一切图形都可以由三角形拼…...

数据清洗的重要性与方法

在数据分析和机器学习的世界中&#xff0c;数据清洗是一个不可或缺的步骤。 它涉及到对原始数据进行处理&#xff0c;以便使其适合进一步的分析和建模。 数据清洗的重要性 提高数据质量 数据质量直接影响分析结果的准确性。 脏数据&#xff08;包含错误、重复、不完整的数据&a…...

AI与大数据的结合:如何从海量数据中提取价值

引言 在当今数字化时代&#xff0c;数据如同新石油&#xff0c;成为推动社会与商业进步的重要资源。随着物联网、社交媒体和企业运营中数据生成的激增&#xff0c;我们正处在一个数据爆炸的时代。然而&#xff0c;面对海量且复杂的数据信息&#xff0c;仅依靠传统的分析方法已经…...

【漏洞复现】孚盟云oa AjaxSendDingdingMessage接口 存在sql注入漏洞

》》》产品描述《《《 孚盟与阿里强强联手将最受青睐的经典C系列产品打造成全新的孚盟云产品&#xff0c;让用户可以用云模式实现信息化管理&#xff0c;让用户的异地办公更加流畅&#xff0c;大大降低中小企业在信息化上成本&#xff0c;用最小的投入享受大型企业级别的信息化…...

【VUE】案例:商场会员管理系统

编写vuedfr实现对会员进行基本增删改查 1. drf项目初始化 请求&#xff1a; POST http://127/0.0.0.1:8000/api/auth/ {"username":"cqn", "password":"123"}返回&#xff1a; {"username":"cqn", "token&q…...

IDEA 最新版创建 Sping Boot 项目没有 JDK8 选项的解决方案

问题 今天新建一个 Java 项目写 demo 时&#xff0c;发现 Idea 上只能勾选 Java 17、21、23 三个版本 解决方案 IDEA 页面创建 Spring 项目&#xff0c;其实是访问 spring initializr 去创建项目。我们可以通过阿里云国服去间接创建 Spring 项目。服务器 URL 地址替换为 ht…...

Unity Asset Store的默认下载位置及更改下载路径的方法

修改Unity Asset Store的默认下载路径 Unity Asset Store默认下载位置 Unity Asset Store里下载资源&#xff0c;默认是下载到C盘里的&#xff0c;如果你不想做C盘战士的话&#xff0c;记得将下载的资源转移到其他盘。 Unity商城默认下载路径是C:\用户\用户名&#xff08;一般…...

ArcEngine实现要素坐标转换:平移、缩放、旋转(批量处理)

在二维坐标系统中&#xff0c;常见转换坐标&#xff1a;平移、缩放、旋转。在ArcGIS中可以通过工具实现移动 、旋转 和缩放&#xff0c;具体操作如下&#xff1a; &#xff08;1&#xff09;移动要素&#xff1a;可通过指针或指定值以交互方式操作所选要素。移动要素&#xf…...

自己做qq代刷网站要钱吗/自媒体怎么做

大家好,我是小马老师。 本文介绍python统计并输出CNA结构分析结果。 Ovito CNA模块可以分析不同时刻的晶体结构,但是在ovito软件中的分析结果不方便直接绘图输出,因此本文给出一个python脚本,运行之后可以直接绘制不同晶体结构的比例图。 程序使用方法: 复制以下pyth…...

镇江网站建设制作方案/seo管理软件

...

wordpress多站点独立域名/色盲测试图动物

如图所示&#xff0c;昨天晚上点了那个Download按钮&#xff0c;下载Fedora31&#xff0c;下载完成后提示要重启安装。重启之后就黑屏了&#xff0c;一大串白色的字&#xff1a; alloc magic is broken at 0xXXXX 启动不了系统&#xff0c;昨天晚上太晚了就没继续弄了&#x…...

专业型企业网站有哪些/广东网站营销seo费用

传送门 分析 从1道m进行匹配&#xff0c;找到第一个不能继续匹配的点即可 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<cctype> #include<cmath> #include<cstd…...

企业网站的党建文化怎么做/学电子商务出来能干嘛

一 .进程概念理解 1.前面必备知识点 #一 操作系统的作用&#xff1a;1&#xff1a;隐藏丑陋复杂的硬件接口&#xff0c;提供良好的抽象接口2&#xff1a;管理、调度进程&#xff0c;并且将多个进程对硬件的竞争变得有序#二 多道技术&#xff1a;1.产生背景&#xff1a;针对单核…...

那个网站可以做网站测速对比/百度推广后台登录页面

文章目录1.下载安装包2.上传安装包3.修改配置文件3.1修改zeppelin-site.xml文件3.2修改zeppelin-env.sh文件4.启动zeppelin5.配置hive解释器5.1环境和变量配置5.2 在web界面配置集成hive6.使用Zepplin的hive解释器1.下载安装包 官网直达 选择zeppelin-0.8.1-bin-all.tgz 2.上…...