llama系列模型学习

2024-06-21 15:04
文章标签 llama 模型 系列 学习

本文主要是介绍llama系列模型学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、目录

  1. llama1 模型与transformer decoder的区别
  2. llama2 模型架构
  3. llama2 相比llama1 不同之处
  4. llama3 相比llama2 不同之处
  5. llama、llama2、llama3 分词器词表大小以及优缺点
  6. 采用的损失函数是什么?
  7. 为什么Layer Norm 改为RMS Norm?
  8. 如何消除模型幻觉?

二、实现

  1. llama1 模型与transformer decoder的区别
    Transformer Decoder 架构,做了以下修改:
    1.和GPT3-样将Normalization从每个子层的输出位置移动到了输入位置。
    2.将Layer Norm 改为 RMS Norm。
    3.采用旋转位置编码,
    4.采用silu激活函数。(根据光滑,实验效果更好)

  2. llama2 模型架构
    在这里插入图片描述
    在这里插入图片描述

  3. llama2 相比llama1 不同之处
    数据方面
    LLama2训练语料相比LLaMA多出40%,上下文长度是由之前的2048升级到4096,可以理解和生成更长的文本。
    新增预预训练数据,并注重安全&隐私问题。
    训练出了chat版本:llama-2-chat:SFT, RLHF。在这里插入图片描述
    模型结构方面
    模型结构基本和llama一样,transformer decoder结构,RMSNorm 应用预归一化、使用 SwiGLU 激活函数和旋转位置嵌入RoPE。
    上下文长度是由之前的2048升级到4096,可以理解和生成更长的文本。
    7B和13B 使用与 LLaMA 相同的架构,34B和70B模型采用分组查询注意力(GQA)。
    For speed up decoding! 自回归解码的标准做法(past key-value 机制)是缓存序列中先前标记的k,v矩阵,从而加快注意力计算速度。但上下文长度、批量大小、模型大小较大时,多头注意力
    (MHA) 中的kv缓存无疑巨大。
    所以采用分组查询注意力机制(GQA)可以提高大模型的推理可扩展性。它的工作原理是将键和值投影在多个头之间共享,而不会大幅降低性能。可以使用具有单个KV投影的原始多查询格式
    (MQA)或具有8KV投影的分组查询注意力变体(GQA)。
    训练方式:
    【优化器:AdamW;学习率计划:cosine learning rate schedule。使用 0.1 的权重衰减和1.0的梯度裁剪。】
    0、Llama2使用与Llama1相同的分词器;它采用BPE算法,使用 SentencePiece 实现。与Llama 1 一样,将所有数字拆分为单独的数字,并使用字节来分解未知的 UTF-8 字符。词汇量为 32k token
    1、使用公开的在线数据进行预训练。
    2、SFT:然后通过使用有监督微调创建 Llama-2-chat 的初始版本。
    3、RLHF:接下来,llama-2-chat 使用人类反馈强化学习 (RLHF) 进行迭代细化,其中包括拒绝采样和近端策略优化 (PPO)。

  4. llama3 相比llama2 不同之处
    vocab_size:32000 ->128256
    LLaMA 3具有128K词汇量大小的Tokenizer,可以更有效的对文本进行编码,从而显着提高模型性能。
    max_position_embeddings:4096->8192
    在8,192 个Token的较长序列上训练模型,使用掩码机制确保自注意力不会跨越文档边界。需要注意的是LLaMA 3采用了8K Token进行训练,并不代表只能生成8K Token以内文本。
    num_key_value_heads:32 -> 8
    使用了GQA,因为num_attention_heads维持32,也就是计算时key、value要复制 4份。参数量会下降,K_proj、V_proj的参数矩阵会降为llama2-7B的1/4。
    intermediate_size:11008->14336
    只是FFN(MLP)时的中间维度变了,计算范式不变。
    训练数据:
    15T的训练Token,全部来自公开数据。是Lama2的7倍大小。代码数据多了4倍5%高质量非英语数据,涵盖30多种语言。
    对数据进行了清洗过滤,lama2生成训练数据来帮助训练文本质量分类器。
    微调阶段除了开源数据集,还人工标注了1000万样本。

  5. llama、llama2、llama3 分词器词表大小以及优缺点
    llama 2使用与 llama 1 相同的分词器; 它采用字节对编码(BPE)算法,使用 SentencePiece 实现。 与llama 1 一样,将所有数字拆分为单独的数字,并使用字节来分解未知的 UTF-8 字符,总数词汇量为 32k 个token。
    基于word粒度会导致词表(vocab)过大,进而致使训练冗余,主要是因为每个单词的衍生词过多,比如look,looking,looks等等;最重要的是会导致OOV问题(out of vocabulary)即未出现在词表当中的词将无法处理。
    另外,对于低频词/稀疏词,无法在训练当中得到充分的学习,模型无法充分理解这些词的语义。
    而基于char会导致词表过小,无法充分理解语义信息。字符粒度分词无法直接表达词的语义,可能导致在一些语义分析任务中效果较差;由于文本被拆分为字符,处理的粒度较小,增加后续处理的计算成本和时间。
    在很多情况下,既不希望将文本切分成单独的词(太大),也不想将其切分成单个字符(太小),而是希望得到介于词和字符之间的子词单元。这就引入了 subword(子词)粒度的分词方法。

  6. 采用的损失函数是什么?
    自回归语言模型,LLaMA 通过接收一系列单词作为输入并预测下一个单词来递归生成文本。

  7. 为什么Layer Norm 改为RMS Norm?
    RMS Norm 是Layer Norm 的改进,依据 数据分布平移不变性,对layer Norm 去除平移参数。

  8. 如何消除模型幻觉?
    首先,为什么会产生幻觉?这主要原因是用于训练语言模型的大数据语料库在收集时难免会包含一些错误的信息,这些错误知识都会被学习,存储在模型参数中,相关研究表明模型生成文本时会优先考虑自身参数化的知识,所以更倾向生成幻觉内容。
    数据阶段: 使用置信度更高的数据,消除原始数据中本来的错误和不一致地方。
    训练阶段:有监督学习算法非常容易使得求知型查询产生幻觉。在模型并不包含或者知道答案的情况下,有监督训练仍然会促使模型给出答案。而使用强化学习方法,则可以通过定制奖励函数,将正确答案赋予非常高的分数,将放弃回答的答案赋予中低分数,将不正确的答案赋予非常高的负分,使得模型学会依赖内部知识选择放弃回答,从而在一定程度上缓解模型的幻觉问题。
    基于后处理:在生成输出后,对其进行迭代评估和调整。对于摘要等任务,只有在生成整个摘要后才能准确评估,因此后期修正方法更为有效。缺点是不改变模型本身。
    基于知识检索增强的方式:模型幻觉很大程度来源之一是外部知识选择不正确,因此用更强的检索模型搜索知识,返回更加有用的知识,也是消除对话回复幻觉的有效途径。

这篇关于llama系列模型学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081548

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

硬件基础知识——自学习梳理

计算机存储分为闪存和永久性存储。 硬盘(永久存储)主要分为机械磁盘和固态硬盘。 机械磁盘主要靠磁颗粒的正负极方向来存储0或1,且机械磁盘没有使用寿命。 固态硬盘就有使用寿命了,大概支持30w次的读写操作。 闪存使用的是电容进行存储,断电数据就没了。 器件之间传输bit数据在总线上是一个一个传输的,因为通过电压传输(电流不稳定),但是电压属于电势能,所以可以叠加互相干扰,这也就是硬盘,U盘