大模型LLaMA和微调LLaMA

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

1.LLaMA

LLaMA的模型架构:RMSNorm/SwiGLU/RoPE/Transformer/1-1.4T tokens,和GPT一样都是基于Transformer这个架构。

1.1对transformer子层的输入归一化

与Transformer在每个子层输出后LayerNorm不同的是,LLaMA是对每个子层的输入使用RMSNorm进行归一化,计算如下:
大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python

大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python

1.2使用SwiGLU替换ReLU

Relu激活函数】Relu(x) = max(0,x) 。

GLU激活函数】GLU(x) = x 与 sigmoid(g(x)) 对应元素相乘 。

LLaMA采用SwiGLU替换了原有的ReLU,SwiGLU的作用机制是根据输入数据的特性,通过学习到的参数自动调整信息流动的路径,具体是采用SwiGLU的Feedforward Neural Network (简称FNN,是一种使用可学习的门控机制的前馈神经网络)。xV相当于门控值,控制Swish输出的多少。

大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python
大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python

1.3位置编码

在位置编码方面,将绝对位置嵌入的方法变为相对位置嵌入。

1.4优化器的设计

使用AdamW优化器进行训练,使用余弦学习率的方式根据模型的大小动态的改变学习率和批次大小。

2.对LLaMA进行微调

2.1 Stanford Alpaca—微调LLaMA-7b(产生训练数据方式的开天辟地)

结合英文语料通过Self Instruct的方式微调LLaMA 7B,具体通过52K的指令数据对LLaMA进行指令微调。其中52k的数据包括:指令、输入、输出。

①self-instruct方式

大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python

1.首选人工设计出175个种子数据集,包括指令、输入、输出。

2.使用GPT3对应的API使用种子数据集的上下文实例来生成更多新的指令。

3.使用生成的指令判断是否为分类任务。

4.使用模型生成实例。如果是则模型输出(class_lable、input),如果不是则模型输出(input、output)。

5.生成输入和输出数据,过滤点低质量或者相似度高的数据。

6.经过过滤后的数据放入种子数据集中。

生成52K数据的完整代码:链接

②使用生成的指令数据微调LLaMA

使用生成的52k的指令数据集有监督微调LLaMA-7b得到Alpaca-7b。

【怎么用】

比如公司想要做一个医疗问答,可以找一些医疗问答的指令种子数据集,然后根据这些种子数据集调用OpenAI的接口生成训练的指令数据集。用Alpaca的微调训练代码根据生成的医疗数据集来微调LLaMA,制作自己的医疗问答模型。

2.2 Alpaca-LoRA

大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python

LoRA的核心思想是用一种低秩的方式来调整这些参数矩阵,在数学上低秩意味着一个矩阵可以用两个极小的矩阵来近似。它提出用两个小矩阵近似一个大矩阵,先降维(减小计算量)后升维(维持维度不变)。具体来说是固定原始模型的参数,只训练降维矩阵A与升维矩阵B。最后用原始模型参数与B矩阵相加。

A矩阵一般用随机高斯分布初始化,维度上是降维;B矩阵用0矩阵初始化,维度上是升维。

参数更新 :W = W + A*B。

梯度更新 :在微调过程中,计算关于矩阵A和矩阵B的损失,在优化过程中对A和B进行更新,原始矩阵W保持不变。

代码具体操作:①将原始矩阵W参数冻结。②新引入两个线性层对应图中两个矩阵,先降维后升维。③LoRA主要实现了两分支通路,一条分支为已被冻结weight参数的原始结构,另一条分支为新引入的降维再升维线性层。

3.ChatLLaMA:LLaMA的RLHF版

由于LLaMA没有使用RLHF方法,于是ChatLLaMA在LLaMA中使用了RLHF。

3.1数据集

使用了三套数据集:分别用于训练actor、reward和RLHF。

actor_training_data训练actor,用于微调GPT3,数据集格式为问答对的形式。

reward_training_data用于训练reward,数据集格式为输入、回答、分数。与ChatGPT第二阶段不同的是,ChatGPT是使用人工标注好的奖励数据来训练RM模型,然后使用负采样计算损失;而ChatLLaMA则是直接使用RM模型来进行打分,打分结果与人工的打分计算MSE。

RLHF_training_data用于训练RLHF,通过self-instruct的方式提示LLM生成更多的指令数据。

3.2训练过程

大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python

外层循环迭代训练轮次(epochs)。内层循环遍历数据加载器(dataloader)中的批次(batches),在每次迭代中,它会处理一批数据,包括状态、动作、价值等,这些数据用于训练智能体-评论家模型。

4.ColossalChat:self-instruct微调LLaMA+RLHF

4.1self-instruct生成数据

ColossalChat首先收集并清洗了平台上人们的真实提问作为种子数据集,通过self-instruct的方式扩充数据集,最终生成了104K条问答的中英文数据集。

4.2训练方式:类似instructGPT的三阶段训练方式

①有监督的微调GPT3.0/GPT3.5–SFT。

②针对同一问题让SFT给出4-9个回答,对这4-9个回答进行人工排序,使用人工标注的数据集训练训练RM奖励模型。

③使用PPO算法和奖励模型微调SFT。

大模型LLaMA和微调LLaMA,深度学习,chatgpt,llama,python文章来源地址https://www.toymoban.com/news/detail-728655.html

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

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

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

相关文章

  • Koala:加州大学BAIR团队使用ChatGPT蒸馏数据和公开数据集微调LLaMA模型得到

    自从Meta发布LLaMA以来,围绕它开发的模型与日俱增,比如Alpaca、llama.cpp、ChatLLaMA以及Vicuna等等,相关的博客可以参考如下: 【Alpaca】斯坦福发布了一个由LLaMA 7B微调的模型Alpaca(羊驼),训练3小时,性能比肩GPT-3.5 【llama.cpp】量化130亿参数LLaMA模型的llama.cpp,推理仅需4GB内存

    2024年02月11日
    浏览(45)
  • 大模型LLaMA和微调LLaMA

    LLaMA的模型架构:RMSNorm/SwiGLU/RoPE/Transformer/1-1.4T tokens,和GPT一样都是基于Transformer这个架构。 1.1对transformer子层的输入归一化 与Transformer在每个子层输出后LayerNorm不同的是,LLaMA是对每个子层的输入使用RMSNorm进行归一化,计算如下: 1.2使用SwiGLU替换ReLU 【 Relu激活函数 】Relu(x)

    2024年02月07日
    浏览(38)
  • 【LangChain学习之旅】—(7) 调用模型:使用OpenAI API还是微调开源Llama2/ChatGLM?

    Reference:LangChain 实战课 之前的内容讲了提示工程的原理以及 LangChain 中的具体使用方式。今天,我们来着重讨论 Model I/O 中的第二个子模块,LLM。 让我们带着下面的问题来开始这一节课的学习。大语言模型,不止 ChatGPT 一种。调用 OpenAI 的 API,当然方便且高效,不过,如果我

    2024年02月01日
    浏览(65)
  • 基于中文金融知识的 LLaMA 系微调模型的智能问答系统:LLaMA大模型训练微调推理等详细教学

    项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域) :汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用 CSDN 平台,自主完成项目设计升级,提升自

    2024年02月14日
    浏览(46)
  • MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)、实现包括二次预训练、有监督微调、奖励建模、强化学习训练[LLM:含Ziya-LLaMA]。

    项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域) :汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用 CSDN 平台,自主完成项目设计升级,提升自

    2024年02月20日
    浏览(47)
  • 微调 LLaMA 2 模型:通过 QLoRA 充分利用单 GPU 效率 Meta LLaMA 2 微调过程综合指南

    科技巨头 Meta 于 2023 年 7 月 18 日发布了 LLaMA 2,这是他们最新版本的大型语言模型 (LLM),成为头条新闻。我相信 Llama2 在进一步推动人工智能技术方面取得了巨大飞跃,人们将关注私人领域未来对聊天机器人的微调将超过一般聊天机器人。1 这些尖端模型从 2023 年 1 月到 2023

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

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

    2024年02月15日
    浏览(45)
  • 大模型之Bloom&LLAMA----SFT(模型微调)

    随着chatgpt的爆火,最近也有很多大模型在不断地出现,比如说Bloom系列以及以LLAMA为基础的ziya和baichuan。这些模型相较于chatglm来说,更加具有发展前景,因为其是完全可商用,并可以不断迭代更新的。最近作者在跟着hiyouga大佬的LLaMA-Efficient-Tuning进行学习,相较于其他的项目

    2024年02月12日
    浏览(43)
  • 大模型入门(四)—— 基于peft 微调 LLaMa模型

    llama-7b模型大小大约27G,本文在单张/两张 16G V100上基于hugging face的peft库实现了llama-7b的微调。 1、模型和数据准备 使用的大模型:https://huggingface.co/decapoda-research/llama-7b-hf,已经是float16的模型。 微调数据集:https://github.com/LC1332/Chinese-alpaca-lora/blob/main/data/trans_chinese_alpaca_data.

    2024年02月10日
    浏览(52)
  • LLM:LLaMA模型和微调的Alpaca模型

    简单了解[LeCun狂赞:600刀GPT-3.5平替! 斯坦福70亿参数「羊驼」爆火,LLaMA杀疯了] 论文原文:https://arxiv.org/abs/2302.13971v1 模型就是用的transformer的decoder,模型设计的不同点在于: 1 Position Embedding :RoPE旋转位置编码rotary-embedding 删除了绝对位置嵌入,而是在网络的每一层添加了

    2024年02月10日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包