一文速览Llama 3及其微调:如何通过paper-review数据集微调Llama3 8B

news2025/1/9 12:50:53

前言

4.19日凌晨正准备睡觉时,突然审稿项目组的文弱同学说:Meta发布Llama 3系列大语言模型了

一查,还真是

本文以大模型开发者的视角,基于Meta官方博客的介绍:Introducing Meta Llama 3: The most capable openly available LLM to date,帮你迅速梳理下LLama的关键特征,并对比上一个版本的LLama2,且本文后续,将更新用我司paper-review数据集微调llama3的训练过程

第一部分 Meta发布Llama 3:所有大模型开发者的福音

1.1 Llama 3的性能

1.1.1 在多个榜单上超越Google的gemma 7B、Mistral 7B

此次发布的Llama 3有两个版本:8B 和 70B。由于预训练和指令微调的加强,模型在推理、代码生成和指令跟踪等方面的能力得到比较大的提高,最终在多个榜单上超越Google的gemma 7B、Mistral 7B(当然了,我还是得说一句,榜单肯定能够说明一些东西,但不代表全部)

1.1.2 一套专门的评估数据集:1800个prompt 涵盖12类任务

为了更好的评估llama3的性能,Meta开发了一套新的高质量人类评估集。该评估集包含 1,800 个prompt,涵盖 12 个关键用例:寻求建议、头脑风暴、分类、封闭式问答、编码、创意写作、提取、塑造角色/角色、开放式问答、推理、重写和总结

且为了防止模型在此评估集上过度拟合,即使Meta的建模团队也无法访问它(说白了,保证评估数据集中的数据不被模型事先学到)

下图显示了Meta针对 Claude Sonnet、Mistral Medium 和 GPT-3.5 对这些类别和提示进行人工评估的汇总结果(compared to competing models of comparable size in real-world scenarios,即PK的开源模型也都是70B左右的大小)

且llama3的预训练模型这些榜单上PK同等规模的其他模型时,亦有着相对突出的表现

1.2 Llama 3:模型架构、预训练数据、扩大预训练和指令微调

1.2.1 模型架构:继续transformer解码器架构、分组查询注意力、8K上下文

和Llama 2一样,Llama 3 继续采用相对标准的decoder-only transformer架构,但做了如下几个关键的改进
  1. Llama 3 使用具有 128K tokens的tokenizer
    相当于,一方面,分词器由 SentencePiece 换为了 Tiktoken,与 GPT4 保持一致,可以更有效地对语言进行编码
    二方面,Token词表从LLAMA 2的32K拓展到了128K
  2. 为了提高 Llama 3 的推理效率,在 8B 和 70B 都采用了分组查询注意力(GQA)

    值得指出的是,上一个版本的llama 2的34B和70B才用到了GQA「详见LLaMA的解读与其微调(含LLaMA 2):Alpaca-LoRA/Vicuna/BELLE/中文LLaMA/姜子牙的第3.2节LLaMA2之分组查询注意力——Grouped-Query Attention

  3. 在 8,192 个token的序列上训练模型,且通过掩码操作以确保自注意力不会跨越文档边界
    这点相比llama 2是一个进步,毕竟llama 2的上下文长度还只有4K,所以我司审稿项目组在用平均长度8K的paper-review数据集去微调llama2时,不得已必须用上longlora/longqlora这类扩展长度的技术(详见:七月论文审稿GPT第2版:用一万多条paper-review数据微调LLaMA2 7B最终反超GPT4)

1.2.2 训练数据:15T预训练数据

做大模型开发的都知道,数据的重要性不言而喻,为进一步提高模型的性能

  1.  Llama 3 经过超过 15T token的预训练(比 Llama 2 使用的数据集大七倍,并且包含四倍多的代码,要知道,llama 2的训练数据才2T个token,即2万亿个token),这些数据全部从公开来源收集
  2. Llama 3 预训练数据集的中,其中有超过5%的部分由涵盖 30 多种语言的高质量非英语数据组成。当然,大概率上,这些语言的性能水平不会与英语相同(原因在于其只占5%罗)
  3. 为了确保 Llama 3 接受最高质量数据的训练,他们还开发了一系列数据过滤管道。这些管道包括使用启发式过滤器、NSFW 过滤器、语义重复数据删除方法和文本分类器来预测数据质量
    且使用 Llama 2 作为文本质量分类器 为 Llama 3 生成训练数据
  4. 还进行了广泛的实验,以评估在最终预训练数据集中混合不同来源的数据的最佳方法。这些实验使能够选择一个数据组合,确保 Llama 3 在各种用例(包括琐事问题、STEM、编码、历史知识等)中表现良好

 1.2.3 扩大预训练规模

​为了有效利用 Llama 3 模型中的预训练数据,他们投入了大量精力来扩大预训练规模。具体来说

  1. 为下游基准评估制定了一系列详细的缩放法则。这些缩放法则使我们能够选择最佳的数据组合,且使我们能够在实际训练模型之前预测最大模型在关键任务上的性能(例如,在 HumanEval 基准上评估的代码生成 - 见上文)
    \rightarrow  比如在 Llama 3 的开发过程中,对缩放行为进行了一些新的观察。例如,虽然 8B 参数模型的 Chinchilla 最佳训练计算量对应于约 200B 个token,但发现即使在模型建立之后,模型性能仍在继续提高接受了两个数量级以上的数据训练
    \rightarrow  在对多达 15T token进行训练后,8B 和 70B 参数模型都继续以对数线性方式改进。较大的模型可以用较少的训练计算来匹配这些较小模型的性能,但较小的模型通常是首选,因为它们在推理过程中效率更高
  2. 为了训练Llama 3的400B的版本,Meta结合了三种类型的并行化:数据并行化、模​​型并行化和管道并行化(关于这三种并行训练方法的介绍,可以参见此文:《大模型并行训练指南:通俗理解Megatron-DeepSpeed之模型并行与数据并行》)
    当同时在 16K GPU 上进行训练时,可实现每个 GPU 超过 400 TFLOPS 的计算利用率,当然,最终在两个定制的24K GPU 集群上进行了训练

    且为了最大限度地延长 GPU 的正常运行时间,开发了一种先进的新训练堆栈,可以自动执行错误检测、处理和维护。还极大地改进了硬件可靠性和静默数据损坏检测机制,并且开发了新的可扩展存储系统,以减少检查点和回滚的开销。这些改进使总体有效培训时间超过 95%
    综合起来,这些改进使 Llama 3 的训练效率比 Llama 2 提高了约三倍​

1.2.4 指令微调:SFT之外,组合了拒绝采样、PPO和DPO

为了充分释放预训练模型在聊天用例中的潜力,我们还对指令调整方法进行了创新。我们的后训练方法是监督微调SFT、拒绝采样、近端策略优化PPO(关于PPO详见此文《强化学习极简入门:通俗理解MDP、DP MC TC和Q学习、策略梯度、PPO》的第4部分),和直接策略优化DPO的组合(关于DOP则见此文:《RLHF的替代之DPO原理解析:从RLHF、Claude的RAILF到DPO、Zephyr》)

  1. SFT 中使用的prompt质量以及 PPO 和 DPO 中使用的偏好排名对对齐模型的性能有着巨大的影响。最终,在模型质量方面的一些最大改进来自于仔细整理这些数据并对人类标注者提供的标注或注释进行多轮质量保证
  2. 通过 PPO 和 DPO 从偏好排名中学习也极大地提高了 Llama 3 在推理和编码任务上的性能。即如果你向模型提出一个它难以回答的推理问题,该模型有时会产生正确的推理轨迹:模型知道如何产生正确的答案,但不知道如何选择它。但对偏好排名的训练使模型能够学习如何选择它​

1.3 其他介绍

1.3.1 与其他开源库的兼容:比如PyTorch 原生库之torchtune、LangChain等

  1. 提供了新的信任和安全工具,包括 Llama Guard 2 和 Cyber​​sec Eval 2 的更新组件,并引入了 Code Shield——一种用于过滤 LLM 生成的不安全代码的推理时间防护栏
  2. 还与torchtune共同开发了 Llama 3 ,torchtune 是新的 PyTorch 原生库,可以轻松地使用 LLM 进行创作、微调和实验。 torchtune 提供完全用 PyTorch 编写的内存高效且可破解的训练方法。该库与 Hugging Face、Weights & Biases 和 EleutherAI 等流行平台集成,甚至支持 Executorch,以便在各种移动和边缘设备上运行高效推理
  3. 提供了关于「将 Llama 3 与 LangChain 结合使用」的全面入门指南

1.3.2 负责任地部署

为了方便让开发者负责任地部署llama3,他们采用了一种新的系统级方法

​且指令微调模型已经通过内部和外部的努力进行了安全红队(测试)

红队方法利用人类专家和自动化方法来生成对抗性提示,试图引发有问题的响应。例如,我们应用全面的测试来评估与化学、生物、网络安全和其他风险领域相关的滥用风险

所有这些努力都是迭代的,并用于为正在发布的模型进行安全微调提供信息。可以在模型卡中详细了解我们的努力

  1. ​Llama Guard 模型旨在成为快速响应安全的基础,并且可以根据应用需求轻松进行微调以创建新的分类法。作为起点,新的 Llama Guard 2 使用最近宣布的MLCommons 分类法,努力支持这一重要领域行业标准的出现
  2. 此外,Cyber​​SecEval 2 在其前身的基础上进行了扩展,添加了对 LLM 允许滥用其代码解释器的倾向、攻击性网络安全功能以及对提示注入攻击的敏感性的测量(在我们的技术论文中了解更多信息)
  3. 最后,我们引入了 Code Shield,它增加了对 LLM 生成的不安全代码的推理时过滤的支持。这可以缓解不安全代码建议、代码解释器滥用预防和安全命令执行方面的风险

更多参见负责任使用指南(RUG),且正如在 RUG 中概述的那样,Meta建议根据适合应用程序的内容指南检查和过滤所有输入和输出

1.3.3 大规模部署 Llama 3

Llama 3 很快将在所有主要平台上提供,包括云提供商、模型 API 提供商等等。 Llama 3 将无处不在

基准测试显示,标记生成器提高了标记效率,与 Llama 2 相比,生成的标记最多减少了 15%。此外,Llama 3 8B 现在也添加了组查询注意 (GQA)。结果观察到,尽管与 Llama 2 7B 相比,模型的参数多了 1B,但改进的分词器效率和 GQA 有助于保持与 Llama 2 7B 相同的推理效率。

有关如何利用所有这些功能的示例,请查看Llama Recipes,其中包含所有的开源代码,这些代码可用于从微调到部署再到模型评估的所有内容

1.3.4 Llama 3 的下一步是什么?

llama 3中最大的模型有超过 400B 个参数,不过这个模型仍在训练中(后续,Meta将发布多个具有新功能的模型,包括多模态、以多种语言交谈的能力、更长的上下文窗口和更强的整体功能。且后续还将发布一份详细的研究论文)

第二部分 拿paper-review数据集通过各种方式微调LLama 3

llama 3出来后,为了通过paper-review的数据集微调3,有以下各种方式

  1. 不用任何框架 工具 技术,直接微调原生的llama 3,毕竟也有8k长度了
    效果不期望有多高,纯作为baseline
  2. 通过PI,把llama 3的8K长度扩展到12k,但需要什么样的机器资源,待查
    apple为主,不染为辅
  3. 通过llama factory微调3,但等他们适配3(除非我们改factory),类似
    llama factory + pi
    llama factory + longlora/longqlora 
  4. 我们自行改造longqlora(longlora也行,但所需机器资源更大),以适配3
    类似之前的经典组合:longqlora(PI + s2-Attn + qlora) + flash attention + zero3
  5. 基于xtuner微调llama 3
    三太子则在与70b微调工作不冲突的前提下,试下这个xtuner
  6. 阿里云百练大模型服务平台、百度智能云千帆大模型平台对llama 3的支持
    文弱
  7. 别人微调好的「加长版llama 3」:mattshumer/Llama-3-8B-16K
    HyperWriteAI 的 CEO Matt Shumer在其推特主页(https://twitter.com/mattshumer_/status/1782576964118675565)上宣布,他自己将 Llama-3-8B 的上下文窗口翻了一番(8k→16K),不过可惜不是instruct模型

    以下是来自huggingface的简介
    1 This is an extended (16K) context version of LLaMA 3 8B (base, not instruct). Trained for five hours on 8x A6000 GPUs, using the Yukang/LongAlpaca-16k-length dataset(即longlora作者弄的16k 数据集:https://huggingface.co/datasets/Yukang/LongAlpaca-16k-length).
    2 rope_theta was set to 1000000.0. Trained with Axolotl(即一个开源的微调框架:GitHub - OpenAccess-AI-Collective/axolotl: Go ahead and axolotl questions)

2.1 通过百度智能云的千帆大模型平台微调Llama 3

// 待更

2.2 基于llama factory和paper-review数据集微调LLama3

LLaMA Factory 现已支持 Llama 3 模型,提供了在 Colab 免费 T4 算力上微调 Llama 3 模型的详细实战教程:https://colab.research.google.com/drive/1d5KQtbemerlSDSxZIfAaWXhKr30QypiK?usp=sharing

同时社区已经公开了两款利用本框架微调的中文版 LLaMA3 模型,分别为:

  1. Llama3-8B-Chinese-Chat,首个使用 ORPO 算法微调的中文 Llama3 模型,文章介绍:https://zhuanlan.zhihu.com/p/693905042
  2. Llama3-Chinese,首个使用 DoRA 和 LoRA+ 算法微调的中文 Llama3 模型,仓库地址:https://github.com/seanzhang-zhichen/llama3-chinese

// 待更

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1624454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优化大模型的解释性提示以提升文本推理性能:一种无监督数据驱动的方法

介绍一篇大模型前沿论文,《Explanation Selection Using Unlabeled Data for Chain-of-Thought Prompting》。在这篇论文中,作者Xi Ye和Greg Durrett探讨了如何通过优化大语言模型(LLMs)的解释性提示来提升文本推理任务的性能。他…

星汉未来AI应用市场:一站式AI解决方案平台

星汉未来AI应用市场:一站式AI解决方案平台 在人工智能技术日益渗透到各行各业的今天,星汉未来AI应用市场为我们提供了一个集创新与实用于一体的平台。下面,我将为您详细介绍这个平台的各个方面。 平台特色 星汉未来AI应用市场是一个面向未…

微博聚类分析和可视化

首先对聚类分析作系统介绍。其次对聚类算法进行文献回顾,对其概况、基本思想、算法进行详细介绍,再是通过对微博数据分析具体来强化了解聚类算法,本文的数据是由所设计地软件在微博平台上获取的数据,最后得到相关结论和启示。 聚…

春季过敏症状高发如何防护?约克VRF中央空调为您支招

百花齐放的春季,对于易过敏人群来说却像是“噩梦”的开场。据了解,许多人都会出现打喷嚏、流鼻涕、皮肤瘙痒等春季过敏症状,皮肤上出现红疹甚至“痒不欲生”,并且断断续续不停复发,身上被挠得“体无完肤”,严重影响睡眠。 到底是哪些致敏因素导致春季过敏高发?易过敏人群又该…

基于51单片机空气质量监测报警仿真LCD1602液晶显示( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机空气质量监测报警仿真LCD显示 1. 主要功能:2. 讲解视频:3. 仿真设计:4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接 基于51单片机空气质量监测报警仿真LCD显示( proteus仿真程序设计报告原理图讲解视频…

CTF之变量1

拿到题目发现是一个php代码,意思是用get方式获取args参数。 至于下面那个正则表达式怎么绕过暂且不知,但是题目最上面告诉我们lag In the variable ! (意思是flag就在变量中)。 那我们就传入全局变量globals(&#xf…

maixcam如何无脑运行运行别人的模型(以安全帽模型为例)

maixcam如何无脑运行运行别人的模型(以安全帽模型为例) 本文章主要讲如何部署上传的模型文件,以及如果你要把你模型按照该流程应该怎么修改,你可以通过该文章得到你想要的应该,该应用也包含的退出按钮,是屏…

分布式与一致性协议之CAP(三)

CAP ACID理论:CAP的"酸",追求一致性。 提到ACID,它很容易理解,在单机上实现也不难,比如可以通过锁、时间序列等机制保障操作的顺序执行,让系统实现ACID特性。但是一说要实现分布式系统的ACID特性比较难实现呢&#xf…

Prompt之美:如何设计提示词让大模型变“聪明”

目录 一. Prompt关键要素 二. Prompt技巧 三. 实战中的Prompt优化 四. 参考文献 一. Prompt关键要素 Prompt是一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。换句话说,Prompt是你与AI模型沟通的方式。一个好的Prompt可以让AI更准…

SpringBoot (批量)生成二维码工具类多种方法示例

一、引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.4.1</version> </dependency><dependency><groupId>com.google.zxing</groupId><artifactId…

Java中使用Graphics2D绘制字符串文本自动换行 算法

效果&#xff1a; 代码&#xff1a; /*** return void* Author xia* Description //TODO 写字换行算法* Date 18:08 2021/4/1* Param []**/private static void drawWordAndLineFeed(Graphics2D g2d, Font font, String words, int wordsX, int wordsY, int wordsWidth) {FontD…

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏

SPRD Android 14 通过属性控制系统设置显示双栏或者单栏 第一步 确认有添加静态库第二步 验证第三步 修改源码在合适的地方配置 ro.product.is_support_SettingsSplitEnabled 即可。第一步 确认有添加静态库 --- a/packages/apps/Settings/Android.bp +++ b/packages/apps/Set…

DC学习笔记

视频 数字逻辑综合工具实践 DC 01_哔哩哔哩_bilibili 一、DC工作模式&#xff08;此小节为搬运内容&#xff09; 原链接&#xff1a;Design_Compiler User Guide 随手笔记&#xff08;9&#xff09;Using Floorplan Information - 知乎 DC拥有四种工作模式&#xff1a; 工…

Vivado-OOC

OOC⇒Out-of-Context 在Vivado中&#xff0c;对于顶层设计&#xff0c;vivado使用自顶向下的全局&#xff08;global&#xff09;综合&#xff0c;将顶层文件下的所有模块都进行综合&#xff0c;但是在实际设计过程中&#xff0c;顶层设计会被多次修改和综合&#xff0c;但是有…

CodeGemma初探

什么是 CodeGemma CodeGemma是一系列强大而轻量级的模型的集合&#xff0c;可以执行各种编码任务&#xff0c;包括填充中间代码补全、代码生成、自然语言理解、数学推理和指令跟随。 版本&#xff1a; instruct&#xff1a;7B, 这个版本专门针对自然语言到代码聊天和指令跟随…

文件上传漏洞(upload-labs)

目录 一、文件上传漏洞 1.什么是文件上传漏洞 常见的WebShell 2.文件上传产生漏洞的原因 二、文件上传绕过 &#xff08;一&#xff09;客服端绕过-JS验证 1.前端验证 upload-labs第一关 &#xff08;二&#xff09;绕过黑名单验证 黑名单验证 1.特殊解析后缀 upl…

项目十:学会python爬虫数据保存(小白圆满级)

前言 上篇我们学会的文本文件、csv文件和excel文件的相关基础知识和操作&#xff0c;这一次我们再来了解一下四个文件操作方式 存储方法 HTML文件 将数据保存为HTML格式&#xff0c;可以直接在浏览器中查看。 使用字符串拼接将数据保存为HTML格式。 代码案例 # 创建数据…

【树莓派】如何用电脑连接树莓派的远程桌面,灰屏解决

要使用VNC桌面连接到树莓派&#xff0c;你需要确保已经安装并启动了VNC服务器。以下是连接到树莓派的步骤&#xff1a; 在树莓派上启动VNC服务器&#xff1a; 打开终端或SSH连接到你的树莓派。输入以下命令以安装RealVNC的VNC服务器&#xff1a;sudo apt update sudo apt insta…

操作steam搬砖有哪些风险?你有中招吗?揭秘有没有规避技巧?

一、关于steam账号的地区问题&#xff1a; steam账号地区不要频繁的去更换&#xff0c;这样很容易导致让账号红信不能操作使用。 二、关于steam账号的充值问题&#xff1a; 一定要充值正规的礼品卡图&#xff0c;否则遇到黑卡分分钟让你的账号红锁&#xff0c;从而造成账号里…

Gemini 1.5 Pro API崭露头角,长提示下性能卓越,逼近榜首ChatGPT4

Gemini 1.5 Pro API-0409-preview 在排行榜上成功攀升至第二位&#xff0c;与榜首的 GPT-4-Turbo 齐头并进&#xff0c;仅一步之遥。相较于第三名的 GPT4-0125-preview&#xff0c;Gemini 展现出了显著的优势。 在处理更长的提示时&#xff0c;Gemini 的性能尤为出色&#xff…