马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
✨✨ 接待各人来访Srlua的博文࿰
8;づ ̄3 ̄࿰
9;づ╭❤~✨✨
🌟🌟 接待各位酷爱的读者࿰
c;感谢你们抽着宝贵的时间来阅读我的文章。
我是Srlua小谢࿰
c;在这里我会分享我的知识和履历。🎥
渴望在这里࿰
c;我们能一起探索IT天下的奥妙࿰
c;提拔我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:传知代码论文复现
接待访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
目次
本文概述
论文所在
论文重要内容
论文重要贡献
Llama 2-chat的练习流程图:
Llama2技能细节
预练习
预练习数据
模子架构
超参数设置
分词器
微调
指令微调
人的反馈强化学习࿰
8;RLHF࿰
9;
人类偏好数据
嘉奖模子
迭代微调
中文LLaMA2模子Atom-7B-Chat实战
数据集先容
提示模板
实验结果
代码运行
本文全部资源均可在该所在处获取。
本文概述
本文起首会先容一下Llama2大模子࿰
c;然后会使用一个公开的中文法律讯断数据集࿰
8;部门࿰
9;举行Llama2提示学习的分类实战。
论文所在
https://arxiv.org/pdf/230
7.0
9288
论文重要内容
这篇文章先容了Llama 2࿰
c;这是由Meta AI团队开发和发布的一系列预练习和微调的大型语言模子࿰
8;LLMs࿰
9;࿰
c;参数规模从7亿到70
亿不等。Llama 2-Chat是为对话用例优化的微调模子࿰
c;它在大多数测试基准上的表现凌驾了现有的开源谈天模子࿰
c;而且在人类评估的有效性和安全性方面࿰
c;大概是封闭源模子的符合替换品。
文章详细形貌了Llama 2-Chat的微调和安全性改进方法࿰
c;以便社区可以或许在这项工作的底子上举行构建࿰
c;并为LLMs的负责任发展做出贡献。别的࿰
c;文章还分享了在开发Llama 2和Llama 2-Chat过程中观察到的新征象࿰
c;比方工具使用的出现和知识的时空构造。
文章的重要内容包罗:
- 先容:大型语言模子࿰
8;LLMs࿰
9;作为AI助手的潜力和本领。
- 预练习:Llama 2模子的预练习方法࿰
c;包罗数据、练习细节和评估。
- 微调:包罗监督式微调࿰
8;SFT࿰
9;和强化学习与人类反馈࿰
8;RLHF࿰
9;的方法。
- 安全性:在预练习和微调阶段接纳的安全性步调࿰
c;以及通过红队测试和迭代评估进步模子安全性的方法。
- 讨论:在开发过程中的学习和观察࿰
c;包罗模子的范围性和伦理思量。
- 相干工作:对大型语言模子范畴的相干研究举行回首。
- 结论:Llama 2模子的发布对社区和负责任的AI发展的潜伏影响。
文章还包罗了一些附录部门࿰
c;提供了作者贡献、预练习和微调的额外细节、安全性的额外信息、数据表明、数据污染标题和模子卡片等。
论文重要贡献
文章的重要贡献可以总结为以下几点:
- Llama 2模子的开发与发布:开发了一系列从7亿到70
亿参数规模的预练习和微调大型语言模子࿰
8;LLMs࿰
9;࿰
c;特殊是Llama 2-Chat࿰
c;这是一个为对话用例优化的微调模子。
- 性能优化:Llama 2-Chat在多个基准测试中表现优于现有的开源谈天模子࿰
c;而且在人类评估的有效性和安全性方面与一些封闭源模子相称。
- 微调方法的详细形貌:文章提供了对Llama 2-Chat微调方法的详细形貌࿰
c;包罗监督式微调࿰
8;SFT࿰
9;和强化学习与人类反馈࿰
8;RLHF࿰
9;。
- 安全性改进:先容了为进步Llama 2-Chat模子的安全性所做的积极࿰
c;包罗安全特定的数据表明、微调和红队测试。
- 社区贡献:通过开放Llama 2模子࿰
c;鼓励社区在这项工作的底子上举行构建࿰
c;为负责任的LLMs发展做出贡献。
- 新观察和发现:分享了在开发Llama 2和Llama 2-Chat过程中的新观察࿰
c;比方工具使用的出现和知识的时空构造。
- 负责任的发布计谋:讨论了怎样安全地发布这些模子࿰
c;以及怎样通过负责任的使用指南和代码示例来促进安全摆设。
- 环境影响考量:评估了预练习过程中的碳足迹࿰
c;并讨论了通过开放模子来淘汰其他公司重复预练习本钱的潜伏环境效益。
这些贡献展示了Meta AI在推动大型语言模子技能发展、进步模子性能和安全性、以及促进AI范畴负责任创新方面的积极。
Llama 2-chat的练习流程图:
这个过程从使用公开的在线资源对Llama举行预练习开始。然后通过应用监督微调创建了Llama 2-Chat的初始版本。随后࿰
c;使用带人反馈的强化学习࿰
8;RLHF࿰
9;方法࿰
c;特殊是通过拒绝采样和近端计谋优化࿰
8 PO࿰
9;࿰
c;对模子举行迭代优化。在整个RLHF阶段࿰
c;与模子加强并行的迭代嘉奖建模数据的积聚对于确保嘉奖模子保持在分布范围内至关紧张。
Llama2技能细节
预练习
为了创建新的Llama 2模子家属࿰
c;文章使用了优化的自回归变压器࿰
c;但举行了一些更改以进步性能。详细来说࿰
c;文章实验了更妥当的数据整理࿰
c;更新了数据混淆࿰
c;在40
%以上的tokens上举行了练习࿰
c;将上下文长度增长了一倍࿰
c;并使用分组查询注意力࿰
8;GQA࿰
9;来进步大型模子的推理可扩展性。表1比力了新的Llama 2模子与Llama 1模子的属性。
预练习数据
相较于llama的预练习1.4T个tokens数据࿰
c;llama2使用了2Ttokens数据举行练习。
这是预练习数据语种分布。可以看到英文占绝大部门࿰
c;以是原始的模子对英语的结果最好。
模子架构
Llama 2接纳了Llama 1中的大部门预练习设置和模子架构:
文章使用尺度transformer架构
使用RMSNorm应用预归一化
使用SwiGLU激活函数
旋转位置嵌入(RoPE)
Llama 2与Llama 1的重要架构差别包罗增长的上下文长度和分组查询注意力࿰
8;GQA࿰
9;
GQA如下:
中央就是GQA࿰
c;可以看到࿰
c;Q举行分组࿰
c;每组共享雷同的V和K࿰
c;如允许以或许节省显存而又不怎么影响模子结果。
超参数设置
Llama 2使用AdamW优化器举行练习࿰
c;此中β1=0
.9࿰
c;β2=0
.95࿰
c;eps=10
−5。
使用余弦学习率操持࿰
c;预热20
0
0
步࿰
c;并将终极学习率衰减到峰值学习率的10
%。
使用0
.1的权重衰减和1.0
的梯度剪裁。
图5࿰
8;a࿰
9;表现了具有这些超参数的Llama 2的练习丧失。
分词器
Llama 2使用与Llama 1雷同的标记器;它接纳了字节对编码࿰
8;BPE࿰
9;算法࿰
c;使用了来自PensionePiece的实现。与Llama 1一样࿰
c;将全部数字拆分为单个数字࿰
c;并使用字节分解未知的UTF-8字符。总词汇巨细为32k个标记
因此࿰
c;Llama 1和Llama 2的一些区别如下:
Llama2预练习模子的评估结果
微调
指令微调
Quality Is All You Need. SFT数据集的质量很紧张࿰
c;万级别的高质量结果就能到达很好的结果。使用供应商精标了27,540
条࿰
8;人工撰写prompt 和 answer࿰
c;包罗 helpfulness 和 safety 两大类 ࿰
9;࿰
c;发现结果比几百万公开的还要好。
使用余弦学习率࿰
c;初始学习速率为2e−5࿰
c;权重衰减为0
.1࿰
c;批量巨细为64࿰
c;序列长度为40
96个tokens。
对于微调过程࿰
c;每个样本都包罗一个提示和一个答案。为了确保模子序列长度精确添补࿰
c;将练习会合的全部提示和答案毗连起来。使用一个特殊的标记来分隔提示段和应答段。
使用自回归目标࿰
c;并从用户提示中消除tokens的丧失࿰
c;因此只对复兴tokens举行反向传播。末了࿰
c;使用两个epoch微调模子。
人的反馈强化学习࿰
8;RLHF࿰
9;
RLHF是一种模子练习过程࿰
c;应用于微调的语言模子࿰
c;以进一步使模子活动与人类偏好和指令遵照相划一。文章网络的数据代表了履历上9个样本的人类偏好࿰
c;通过这些数据࿰
c;人类表明者可以选择他们喜欢的两个模子输出中的哪一个。这种人工反馈随后被用于练习嘉奖模子࿰
c;该模子学习人工表明者偏好的模式࿰
c;然后可以自动举行偏好决定。
人类偏好数据
在表6中࿰
c;文章陈诉了随着时间的推移网络的嘉奖建模数据的统计数据࿰
c;并将其与多个开源偏好数据集举行了比力࿰
c;这些数据集包罗Anthropic Helpful和Harmless、OpenAI Summary、OpenAI-WebGPT、StackExchange、Stanford Human Preferences和Synthetic GPT-J。作者网络了一个大型数据集࿰
c;此中包罗凌驾10
0
万个基于人类应用我们指定的指南举行的二进制比力࿰
c;称之为元嘉奖建模数据。请注意࿰
c;提示和答案中的标记数目因文本域而异。择要和在线论坛数据的提示通常较长࿰
c;而对话式的提示通常较短。与现有的开源数据集相比࿰
c;这个偏好数据的特点是对话次数更多࿰
c;均匀时间更长。
嘉奖模子
文章练习了两个独立的嘉奖模子࿰
c;一个针对资助性(称为helpfulness RM)举行了优化࿰
c;另一个针对安全性(safety RM)举行了优化。并从预练习的谈天模子查抄点初始化嘉奖模子࿰
c;由于它确保两个模子都受益于预练习中得到的知识。简而言之࿰
c;嘉奖模式“知道”谈天模子知道的是什么。
迭代微调
近端计谋优化(PPO)、拒绝采样微调。
这两种强化学习算法的重要区别在于:
•广度-在拒绝抽样中࿰
c;模子为给定提示探索K个样本࿰
c;而PPO只举行一次天生。
•深度-在PPO中࿰
c;在步调t的练习期间࿰
c;样本是在前一步梯度更新后从t−1更新的模子计谋的函数。在拒绝采样微调中࿰
c;在应用雷同于SFT的微调之前࿰
c;我们对给定模子初始计谋的全部输出举行采样以网络新的数据集。然而࿰
c;由于应用了迭代模子更新࿰
c;两种强化学习算法之间的根本差别就不那么显着了
文章另有很多关于模子结果、安全性等方面的详细分析࿰
c;这里就不再赘述了
中文LLaMA2模子Atom-7B-Chat实战
从Llama2的练习数据就能看得出࿰
c;这个大模子对中文的支持并不好࿰
c;由于模子在大量的英文数据集上举行预练习࿰
c;对英文的支持较好。
因此࿰
c;我们必要使用Llama2在大量中文数据集预练习微调后的模子上使用才会有比力好的中文结果
Atom就是在Llama2的底子上࿰
c;接纳大规模的中文数据举行一连预练习࿰
c;包罗百科、册本、博客、消息、公告、小说、金融数据、法律数据、医疗数据、代码数据、专业论文数据、中文天然语言处置惩罚比赛数据集等
我们可以使用这个模子来做一个简单的对法律案件辨认的使命。
数据集先容
使用的是一个法律讯断数据集࿰
c;由于原来的数据集数目太多࿰
c;因此我就抽取了此中的三类犯罪范例举行实验。
data_fact是对案件的形貌
data_accusation_clear是案件涉及的犯罪名称
data_accusation_labels是犯罪名称的数字标签࿰
8;0
࿰
c;1࿰
c;2࿰
9;
data_fact的一个例子如下:
其对应的data_accusation_clear如下:
表明上述案件中࿰
c;重要的罪名为盗窃
。
其对应的data_accusation_labels如下:
表明盗窃
这个标签࿰
c;使用0
来表现。
使用到的数据集罪名范例数目分布如下:
盗窃
4947
故意伤害 440
7
掳掠 40
71
因此可以看到࿰
c;这是一个三分类的标题
提示模板
思量到装备的缘故起因࿰
c;我们只举行prompt提示学习而不对模子本身举行微调࿰
c;即在零样本的环境下࿰
c;测试模子对法律讯断的本领。
提示模板设置如下:
- prompt_template = ['<s>Human: 请你明确指出以下案例是盗窃
- 、故意伤害、掳掠哪一项罪名?请注意࿰
- c;你的答案只能是“盗窃
- 、故意伤害、掳掠”三者此中之一而且答案不能凌驾4个字。', '\n</s><s>Assistant: ']
复制代码
这里对模子的评判也比力简单࿰
c;当模子的结果中包罗案件分类的种别时࿰
c;就判定模子的猜测结果为精确࿰
c;否则就是错误。
实验结果
这是使用20
条数据举行测试的结果࿰
c;可以看到࿰
c;结果照旧不错的࿰
c;但是提示的束缚并不是完全见效࿰
c;大部门环境都见效࿰
c;但是也有不符合提示的环境࿰
c;因此࿰
c;之后可以实验更好的提示模板大概使用提示微调等࿰
c;提拔模子的表现结果。
当使用全数据时࿰
c;当输入数据的长度为512时࿰
c;三分类精确率为:54.0
4%
当输入长度为10
24时࿰
c;三分类精确率为:62.32%
可以看到࿰
c;当给模子的数据越多时࿰
c;模子的表现确实会提拔。
代码运行
安装须要的包
- pip install -r requirements.txt --default-timeout=120
- -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
运行代码
|