LLaMA论文阅读笔记

论文:https://arxiv.org/pdf/2302.13971

1、为什么要做这个研究(理论走向和目前缺陷) ?
之前的效果的模型要么不开源,要么用了私有数据训练,完全开源的效果都不咋地。
2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
用完全开源的数据(1.4万亿tokens),并没有大的离谱模型(7B到65B), 做了一系列前面研究做的优化,如RMSNorm的Pre-normalization减少计算量,FFN的激活函数替换为SwiGLU增强表现能力更好,旋转位置编码RoPE提升模型长度外推性。这些优化基本都成了后续大模型设计的标配。
3、发现了什么(总结结果,补充和理论的关系)?
算是首个完全开源且效果和闭源模型相当的LLM模型,候选qwen也是基于这个模型改进得到的。

摘要

发布LLaMA系列模型,参数量从7B到65B量级,训练数据在1.5万亿tokens,且全是开源的数据,13B参数量的比175B的GPT-3性能还要好,65B的模型达到当前最好的大语言模型效果。

1 引言

在算力固定的情况下,小模型+大数据比大模型+小数据效果更好,而且小模型+大数据可能训练时间很长,但是推理时长比较短。

2 方案

2.1 预训练数据

全是开源数据,大部分都是其他LLM训练用的数据。
英文爬虫获取数据(67%)。预处理之前别人通过爬虫获得的(2017-2020)文献,但做了以下处理,1)数据去重。2)用fastText线性分类器区分是否英文数据,把非英文的踢掉。3)ngram语言模型滤除内容质量底下的数据。4)训练了一个分类器区分是否来自维基百科数据,把非维基百科的数据丢弃掉。
C4数据(15%)。预处理包括去重以及去非英文数据。
github数据(4.5%)。去重,去低质量数据。
Wiki百科(4.5%)。2022年1月-2022年月的数据。把超链接、评论、及废话去掉。
Gutenberg and Books3 [4.5%]。来自书本的预料库,也做了去重。
ArXiv [2.5%]. 移除文章第一节前的所有内容,包括作者信息也被移除。
Stack Exchange [2%]. 有高质量问答数据的网站,类似stackoverflow。

分词器: BPE.
最终获得共计1.4T(1.4万亿)个训练tokens,大多数训练数据只会被训练一次,除了维基百科和书本里的数据训练了两次。

2.2 架构

基于transformer了架构,并混合了后续模型提出的各种优化方法。包括:
Pre-normalization [GPT3]. 使用RMSNorm在transofmer子层输入之前先做归一化,而不是像标准的transfomer一样在输出之后做LayerNorm归一化,可以提升训练的稳定性。注:LayerNorm和RMSNorm的主要区别在于是否有中心化,LayerNorm会减去特征均值,实现数据中心化,而RMSNorm没有这一步,故不会中心化。在大模型训练时,中心化不是必须的,而缩放是必要的,且RMSNorm计算量更小,

[图片]

SwiGLU activation function [PaLM]。SwiGLU替换FFN层中ReLU层。SwiGLU中的G即gate,引入了门控(0~1)之间权重逐元素和线性变换后的原始值相乘。虽然增加了计算量,但在大模型中表现能力更好,基本是现代大模型的标配。

[图片]

Rotary Embeddings [GPTNeo]。即RoPE相对位置编码。位置编码一般有绝对位置编码,即可学习的位置编码或标准的transfomer中使用的Sinusoidal位置编码。可学习的位置编码缺点是模型不具有长度外推性,因为位置编码矩阵的大小是预设的,若对其进行扩展,将会破坏模型在预训练阶段学习到的位置信息。Sinusoidal位置编码还具有远程衰减的性质,具体表现为对于两个相同的词向量,如果它们之间的距离越近,则他们的内积分数越高,反之则越低。Sinusoidal位置编码中的正弦余弦函数具备周期性,并且具备远程衰减的特性,所以理论上也具备一定长度外推的能力。而RoPE作者的出发点为:通过绝对位置编码的方式实现相对位置编码。Sinusoidal位置编码通过加法把相对位置信息融入到内容信息中,但需要模型隐式学习这种相对位置信息,而RoPE通过旋转(乘法)把相对位置信息融入到内容信息中,是一种显式的注入,不需要隐式学习,在长度外推性方面,RoPE比Sinusoidal更好。参考
https://hub.baai.ac.cn/view/32862 获取更详细的信息。

在这里插入图片描述

2.3 优化器

AdamW 优化器,cosine learning rate schedule等

2.4 高效实现

做了一些优化提升训练速度。首先是采用高效因果多头注意力(from xformers)减少内存占用和运行时间,即下三角矩阵只计算需要的部分,不用的部分不存不算,从而减少显存占用。其次,保存线性层的激活值,避免反向传播时还要重新计算。
最终训练65B的模型,1.4万亿的tokens数据,需要80G A100训练21天。

3 主要结果

在20个benchmarks做了实验。

  1. Zero-shot: 提供任务描述和一道测试题输入到模型中,让模型生成问题解答或选择正确答案。
  2. Few-shot: 提供一些任务解答案例和一道测试题,让模型生成问题解答或选择正确答案。
    对比的模型:
  • 闭源:GPT-3 2020, Gopher 2021, Chinchilla 2022, PaLM 2022
  • 开源:OPT 2022, GPT-J 2021, GPT-Neo 2022, 以及指令微调的模型OPT-IML, Flan-PaLM.

3.1 常识推理

8个benchmark: BoolQ, PIQA,SIQA , HellaSwag, WinoGrande, ARC easy/challenge, OpenBookQA.

[图片]

3.2 书本知识问答

两个benchmark: Natural Questions和TriviaQA

[图片]
[图片]

3.3 阅读理解

RACE benchmark,来源于中国初高中英语测试的阅读理解题。

[图片]

3.4 数学推理

2 benchmark: MATH, GSM8k,初高中数学题。
Minerva是PaLM在arxiv以及数学网站数据微调出来的模型,故效果很好。

[图片]

3.5 代码生成

2个benchmark: HumanEval, MBPP

[图片]

3.6 大规模多任务语言理解

MMLU benchmark

[图片]

3.7 训练时的性能进化

训练时评估模型性能,一般情况下,训的tokens越多,性能越好。

[图片]

4 指令微调

加点指令微调后,模型效果大幅提升。

[图片]

5 偏见、戾气以及错误

6 碳排放

7 相关研究

8 结论

开源了不同大小的LLaMA模型,通过相对较小模型+大量数据实现不错的效果,且所有数据都是开源的。

Read more

【文心智能体】使用文心一言来给智能体设计一段稳定调用工作流的提示词

【文心智能体】使用文心一言来给智能体设计一段稳定调用工作流的提示词

🌹欢迎来到《小5讲堂》🌹 🌹这是《文心智能体》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 目录 * 前言 * 智能体信息 * 名称 * 简介 * 人设 * 开场白 * 工作流 * 消息节点 * 文本处理节点 * 插件节点 * 图片消息节点 * 输出效果 * 小技巧 * 一、结构化框架设计 * 1. **角色定位+任务拆解** * 2. **四要素公式法** * 二、多轮对话优化 * 1. **分步骤引导** * 2. **示例参考法** * 三、细节强化技巧 * 1. **输出格式标准化** * 2. **专业术语与风格** * 四、避免常见误区 * 1. **模糊需求导致输出偏差** * 2. **过度复杂导致理解困难** * 相关文章

LLaMA Factory 从入门到精通,一篇讲完

LLaMA Factory 从入门到精通,一篇讲完

目录 一、LLaMA-Factory 简介 二、安装部署 三、数据微调 1、数据集的建立 2、数据集格式 3、模型参数 4、开始运行 5、导出模型 四、webui 评估预测与对话 导出 五、SFT 训练 命令行 六、LoRA 合并 合并 量化 七、推理 原始模型推理配置 微调模型推理配置 多模态模型 批量推理 八、评估 通用能力评估 NLG 评估 评估相关参数 一、LLaMA-Factory 简介 LLaMA Factory 是一个简单易用且高效的大型语言模型(Large

Windows 安装 Neo4j(2025最新·极简)

Windows 安装 Neo4j(2025最新·极简)

目录 1. 准备 2. 下载安装包 3. 一键安装 4. 启动 Neo4j 5.安装 Neo4j 的系统服务 Neo4j 是目前最流行的原生图数据库,用图结构(节点-关系-属性)存储数据,而非传统表结构。它专为海量关联数据设计,提供: * 原生图存储:基于免索引邻接结构,每个节点直接维护指向相邻节点的物理指针,实现 O(1) 时间复杂度的图遍历。 * Cypher 查询语言:ISO 标准化图查询语言,采用 ASCII-Art 模式匹配语法,支持可变长度路径、子图查询、聚合与更新混合事务。 * ACID 事务:支持完整事务、集群高可用,可承载企业级负载。 * 丰富生态:内置 Graph Data Science (GDS)

FPGA机器学习终极指南:hls4ml完整教程与快速上手技巧

FPGA机器学习终极指南:hls4ml完整教程与快速上手技巧 【免费下载链接】hls4mlMachine learning on FPGAs using HLS 项目地址: https://gitcode.com/gh_mirrors/hl/hls4ml 想象一下,你训练了一个强大的深度学习模型,但它只能在云端运行,响应延迟让你无法接受。现在,一个名为hls4ml的开源项目正在改变这一现状,让机器学习模型能够直接在FPGA上实现低延迟、高吞吐量的推理加速。这个项目正迅速成为FPGA机器学习领域的明星工具!✨ 为什么选择FPGA推理加速? 在人工智能应用爆炸式增长的今天,传统的CPU和GPU已经无法满足某些场景对低延迟和能效比的严苛要求。FPGA凭借其可重构性和并行处理能力,在边缘计算、实时处理等领域展现出巨大优势。 hls4ml的核心优势: * 🚀 超低延迟:模型直接在硬件上运行,无需操作系统开销 * ⚡ 高吞吐量:充分利用FPGA的并行计算能力 * 🔋 能效比优异:相比GPU,FPGA在特定任务上能效比更高 * 🎯 定制化程度高:可根据具体需求优化硬件实现