LLaMA论文阅读

这篇具有很好参考价值的文章主要介绍了LLaMA论文阅读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LLaMA论文阅读

0. 简介

LLaMA 训练了从7B到65B不同参数量的模型,从Hoffmann的论文【Training compute-optimal large languag】中证明了在有限计算代价的情况下(给定总的FLOPs大小),表现最好的不是参数量最大的模型,而是在更多数据上训练的稍小的模型。

LLaMA实现了两个目标:

  1. LLaMA-13B跟GPT-3相比, 参数量小了10倍,但效果更好;LLaMA-65B比Chinchilla-70B和PaLM-540B更好。
  2. 只依赖公开的开源数据集也可以达到最好的SOTA效果。

1. 论文阅读

1.1 训练数据

使用了多数据集的混合,对相应数据集做了对应的清理,例如重复数据去重、针对CommonCrawl训练了一个分类模型用于过滤没有被Wikipedia引用的低质量数据等。整体的训练数据包含总共有1.4T个token。

Dataset Sampling prop. Epochs Disk size
CommonCrawl 67.0% 1.10 3.3 TB
C4 15.0% 1.06 783 GB
Github 4.5% 0.64 328 GB
Wikipedia 4.5% 2.45 83 GB
Books 4.5% 2.23 85 GB
ArXiv 2.5% 1.06 92 GB
StackExchange 2.0% 1.03 78 GB
  • Sampling prop 表示抽样比例
  • Epochs表示当在1.4T tokens训练时作用到不同数据集的epoch数

1.2 tokenizer

1.2.1 BPE(Byte pair encoding)

使用BPE(Byte pair encoding)进行tokenizer,BPE方法是一种简单又鲁棒的数据压缩方法,基本思路是对于一个句子中连续字符使用一个新的字符进行替换,从而达到数据压缩的作用,对数据还原时才用lookup查表的方式,依次反向对字符进行反向替换恢复数据。

例如对aaabdaaabac压缩,依次通过如下方式进行替换:

# 1. 原始字符串
aaabdaaabac

# 2. 使用Z替换aa
ZabdZabac
Z=aa

# 3. 使用Y替换ab 
ZYdZYac
Y=ab
Z=aa

# 4. 使用X替换ZY
XdXac
X=ZY
Y=ab
Z=aa
1.2.2 SentencePiece

SentencePiece是google对BPE思想的一种实现,除了BPE还实现了unigram language model,LLaMA使用SentencePiece进行tokenizer。

具体可参考:SentencePiece论文阅读

1.3 LLaMA模型结构

整体模型基于transformer结构,在此基础上整合了多个其他模型中的改动方法,具体如下:

  • Pre-normalization [GPT3]:使用RMSNorm(Root Mean Square Layer Normalization)方法对transformer每层的输入进行归约(norm)操作,代替了transformer之前对输出进行归约(norm)。
    具体可参考:RMSNorm论文阅读
  • SwiGLU activation function [PaLM]:使用SwiGLU激活函数代替Relu激活函数,跟PaLM不同的是dimension维度从4d变为了2/3*4d。
    具体可参考:SwiGLU论文阅读
  • Rotary Embeddings [GPTNeo]:去除了transformer中绝对位置embedding,使用旋转式的位置embedding。
    具体可参考:Rotary Position Embeddings论文阅读

1.4 训练参数配置

  • 使用AdamW优化器,对应超参beta1=0.9, beta2=0.95; 使用cosine学习率调度,最终学习率是最大学习率的10%;weight decay为0.1, gradient clipping为0.1。
  • 训练使用前2000个step进行warmup
  • 不同规模的模型大小如下:
    LLaMA论文阅读,大模型,llama,论文阅读,深度学习

1.5 高效实现

使用了如下方式提升模型训练的速度:

  • 使用causal multi-head attention进行显存降低。对应实现是【xformers】。在这个方法中不用存储attention的权重,同时不用计算被masked的key/query的分数。
  • 在反向pass中使用checkpointing的方法减少激活的重计算。这里不能使用pytorch默认的autograd,需要手动实现transformer的反向。
  • 使用model并行和sequece并行。对应megatron3中的优化【Reducing Activation Recomputation in Large Transformer Models】。
  • 将activation的计算和不同gpu卡的通信(all_reduce操作)进行重叠

训练65B参数的模型,使用了2048块80G显存大小的A100卡,处理对应380 tokens/sec/GPU,1.4T个token训练了有21天。训练loss如下:
LLaMA论文阅读,大模型,llama,论文阅读,深度学习

1.6 结果说明

结果参考论文【3 Main results】

2. 实现

TODO文章来源地址https://www.toymoban.com/news/detail-532007.html

3. 参考

  • SentencePiece论文阅读
  • RMSNorm论文阅读
  • Rotary Position Embeddings论文阅读
  • SwiGLU论文阅读
  • facebookresearch/llama
  • LLaMA: Open and Efficient Foundation Language Models
  • Byte pair encoding
  • SentencePiece
  • unigram language model
  • google/sentencepiece
  • Stupid Backoff
  • Stupid Backoff implementation clarification
  • PaLM
  • Training Compute-Optimal Large Language Models
  • Reducing Activation Recomputation in Large Transformer Models
  • Root Mean Square Layer Normalization

到了这里,关于LLaMA论文阅读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文阅读_LLaMA

    number headings: auto, first-level 2, max 4, _.1.1 name_en: LLaMA: Open and Efficient Foundation Language Models name_ch: LLaMA: 开放高效的基础语言模型 paper_addr: https://arxiv.org/abs/2302.13971 doi: https://doi.org/10.48550/arXiv.2302.13971 date_read: 2023-03-25 date_publish: 2023-02-27 tags: [‘深度学习’,‘自然语言处理’] author

    2024年02月13日
    浏览(27)
  • LLaMA-2论文阅读

    LLaMA-2是2023年7月24日Meta发布的LLaMA第二代,跟LLaMA-1几个显著区别: 免费可商用版本的大模型 context上下文增加了一倍,从2K变为了4K 训练的总token数从1.0T/1.4T增加为2.0T( 2 × 1 0 12 2 times 10^{12} 2 × 1 0 12 ), 在1.4T基础上增加40% 对于最大的模型参数量65B也增加到了70B( 70 × 1 0 9 70 tim

    2024年02月13日
    浏览(23)
  • 2023年的深度学习入门指南(20) - LLaMA 2模型解析

    上一节我们把LLaMA 2的生成过程以及封装的过程的代码简单介绍了下。还差LLaMA 2的模型部分没有介绍。这一节我们就来介绍下LLaMA 2的模型部分。 这一部分需要一些深度神经网络的基础知识,不懂的话不用着急,后面的文章我们都会介绍到。 RMSNorm是一种改进的LayerNorm技术,

    2024年02月15日
    浏览(35)
  • Python - 深度学习系列30 - 使用LLaMA-Factory微调模型

    最实用的一种利用大语言模型的方式是进行微调。预训练模型与我们的使用场景一定会存在一些差异,而我们又不可能重头训练。 微调的原理并不复杂,载入模型,灌新的数据,然后运行再训练,保留checkpoints。但是不同项目的代码真的不太一样,每一个都要单独去看的话比

    2024年04月12日
    浏览(39)
  • Llama模型结构解析(源码阅读)

    参考资料: https://zhuanlan.zhihu.com/p/636784644 https://spaces.ac.cn/archives/8265 ——《Transformer升级之路:2、博采众长的旋转式位置编码》 前言 :本次阅读代码位置,在transformers库底下的modeling_llama.py,具体位置在:transformers/models/llama/modeling_llama.py,如下图所示: 代码如下 RMSNorm的公

    2024年02月10日
    浏览(23)
  • Llama 2 论文《Llama 2: Open Foundation and Fine-Tuned Chat Models》阅读笔记

    继2023年2月开源Llama之后,2023年7月Meta又开源了模型参数从70 亿到 700 亿不等的Llama 2,并同时开源了针对对话场景优化的LLaMA2-CHAT。LLama2 论文描述了微调和提高LLM安全性的方法以及在模型开发过程中的一些的观察。 论文摘要翻译:在这项工作中,我们开发并开源了 Llama 2,这是

    2024年02月09日
    浏览(41)
  • 最强开源大模型?Llama 2论文解读

       一直以来,Llama模型被认为是AI社区最强大的开源模型,国内外众多的开源模型均是在其基础上二次训练/开发而来,如Alpaca模型、BELLEE模型、Guanaco模型、Vicuna模型。但由于开源协议问题,Llama模型一直无法被免费商用。上周,Meta AI 团队开源了最新的大模型Llama2,其能力

    2024年02月14日
    浏览(34)
  • Meta最新模型LLaMA详解(含部署+论文)

    来源:投稿 作者:毛华庆 编辑:学姐 本课程来自深度之眼《大模型——前沿论文带读训练营》公开课,部分截图来自课程视频。 文章标题: LLaMA: Open and Efficient Foundation Language Models 向量空间中词表示的有效估计 文章链接: https://arxiv.org/pdf/2302.13971.pdf 作者: Hugo Touvron等 单

    2024年02月08日
    浏览(36)
  • 一个开源的大型语言模型LLaMA论文简单解读,LLaMA: Open and Efficient Foundation Language Models

    返回论文和资料目录 LLaMA 是 Meta AI 发布的包含 7B、13B、33B 和 65B 四种参数规模的基础语言模型集合,LLaMA-13B 仅以 1/10 规模的参数在多数的 benchmarks 上性能优于 GPT-3(175B),LLaMA-65B 与业内最好的模型 Chinchilla-70B 和 PaLM-540B 比较也具有竞争力。开源的代码在github上可以很方便获得

    2024年02月09日
    浏览(41)
  • LLaMA模型指令微调 字节跳动多模态视频大模型 Valley 论文详解

    Valley: Video Assistant with Large Language model Enhanced abilitY 大家好,我是 卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」 ~ 担任某大厂的算法工程师,带来最新的前沿 AI知识和工具,包括AI相关技术、ChatGPT、AI绘图等, 欢迎 大家交流 ~。 近期基于LLaMA微调的模型有很多,Alpaca,

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包