大模型~合集8

news2024/11/22 14:21:36

我自己的原文哦~  https://blog.51cto.com/whaosoft/11566472

# From r to Q∗

这就是OpenAI神秘的Q*?斯坦福:语言模型就是Q函数

近日,斯坦福大学一个团队的一项新研究似乎为这一研究方向的潜力提供了佐证,其声称现在已经取得非凡成就的「语言模型不是一个奖励函数,而是一个 Q 函数!」由此发散思维猜想一下,也许 OpenAI 秘密的 Q* 项目或许真的是造就 AGI 的正确方向(或之一)。

  • 论文标题:From r to Q∗: Your Language Model is Secretly a Q-Function
  • 论文地址:https://arxiv.org/pdf/2404.12358.pdf

在对齐大型语言模型(LLM)与人类意图方面,最常用的方法必然是根据人类反馈的强化学习(RLHF)。通过学习基于人类标注的比较的奖励函数,RLHF 能够捕获实践中难以描述的复杂目标。研究者们也在不断探索使用强化学习技术来开发训练和采样模型的新算法。尤其是直接对齐方案(比如直接偏好优化,即 DPO)凭借其简洁性收获了不少拥趸。

直接对齐方法的操作不是学习奖励函数然后使用强化学习,而是在上下文多臂赌博机设置(bandit setting)中使用奖励函数与策略之间的关系来同时优化这两者。类似的思想已经被用在了视觉 - 语言模型和图像生成模型中。

尽管有人说这样的直接对齐方法与使用 PPO 等策略梯度算法的经典 RLHF 方法一样,但它们之间还是存在根本性差异。

举个例子,经典 RLHF 方法是使用终点状态下的稀疏奖励来优化 token 层面的价值函数。另一方面,DPO 则仅在上下文多臂赌博机设置中执行操作,其是将整个响应当成单条臂处理。这是因为,虽然事实上 token 是一次性只生成一个,但研究强化学习的人都知道,密集型奖励是有益的。

尽管直接对齐算法颇引人注意,但目前人们还不清楚它们能否像经典强化学习算法那样用于序列。

为了搞清楚这一点,斯坦福这个团队近日开展了一项研究:在大型语言模型中 token 层面的 MDP 设置中,使用二元偏好反馈的常见形式推导了 DPO。

他们的研究表明,DPO 训练会隐含地学习到一个 token 层面的奖励函数,其中语言模型 logit 定义最优 Q 函数或预期的总未来奖励。然后,他们进一步表明 DPO 有能力在 token MDP 内灵活地建模任意可能的密集奖励函数。

这是什么意思呢?

简单来说,该团队表明可以将 LLM 表示成 Q 函数并且研究表明 DPO 可以将其与隐式的人类奖励对齐(根据贝尔曼方程),即在轨迹上的 DPO 损失。

并且他们证明这种表示可以拟合任何在轨迹上的反馈奖励,包括稀疏信号(如智能体应用)。

实验

他们也进行了实验,论证了三个可能对 AI 社区有用的实用见解。

第一,他们的研究表明尽管 DPO 是作为上下文多臂赌博机而派生出来的,但 DPO 模型的隐含奖励可在每个 token 层面上进行解释。

在实验中,他们以定性方式评估了 DPO 训练的模型是否能够根据轨迹反馈学习 credit assignment。有一个代表性示例是商讨工作就职的场景,图 1 给出了两个答案。

其中左边是正确的基础摘要,右边是经过修改的版本 —— 有更高层的职位和相应更高的工资。他们计算了这两个答案的每个 token 的 DPO 等价的奖励。图 1 中的每个 token 标注的颜色就正比于该奖励。

可以看到,模型能够成功识别对应于错误陈述的 token,同时其它 token 的值依然相差不大,这表明模型可以执行 credit assignment。

此外,还可以看到在第一个错误(250K 工资)的上下文中,模型依然为其余 token 分配了合理的值,并识别出了第二个错误(management position)。这也许表明模型具备「缝合(stitching)」能力,即根据离线数据进行组合泛化的能力。该团队表示,如果事实如此,那么这一发现将有助于强化学习和 RLHF 在 LLM 中的应用。

第二,研究表明对 DPO 模型进行似然搜索类似于现在很多研究中在解码期间搜索奖励函数。也就是说,他们证明在 token 层面的阐述方式下,经典的基于搜索的算法(比如 MCTS)等价于在 DPO 策略上的基于似然的搜索。他们的实验表明,一种简单的波束搜索能为基础 DPO 策略带来有意义的提升,见图 2。

第三,他们确定初始策略和参考分布的选择对于确定训练期间隐性奖励的轨迹非常重要。

从图 3 可以看出,当在 DPO 之前执行 SFT 时,被选取和被拒绝的响应的隐含奖励都会下降,但它们的差距会变大。

当然,该团队最后也表示,这些研究结果还需要更大规模的实验加以检验,他们也给出了一些值得探索的方向,包括使用 DPO 让 LLM 学会基于反馈学习推理、执行多轮对话、充当智能体、生成图像和视频等。

# Phi-3

微软发布Phi-3,性能超Llama-3,可手机端运行,数据已成为提升大模型能力的重点。

Llama-3 刚发布没多久,竞争对手就来了,而且是可以在手机上运行的小体量模型。

本周二,微软发布了自研小尺寸模型 Phi-3。

新模型有三个版本,其中 Phi-3 mini 是一个拥有 38 亿参数的语言模型,经过 3.3 万亿 token 的训练,其整体性能在学术基准和内部测试上成绩优异。

尽管 Phi-3 mini 被优化至可部署在手机上,但它的性能可以与 Mixtral 8x7B 和 GPT-3.5 等模型相媲美。微软表示,创新主要在于用于训练的数据集。

与此同时,Phi-3 与 Llama-2 使用相同的架构,方便开源社区在其基础上开发。

此前,微软的 Phi 系列模型曾经引发了人们的热议,去年 6 月,微软发布了《Textbooks Are All You Need》论文,用规模仅为 7B token 的「教科书质量」数据训练 1.3B 参数的模型 phi-1,实现了良好的性能。

去年 9 月,微软进一步探索这条道路,让 1.3B 参数的 Transformer 架构语言模型 Phi-1.5 显示出强大的编码能力。

去年底,微软提出的 Phi-2 具备了一定的常识能力,在 2.7B 的量级上多个基准测试成绩超过 Llama2 7B、Llama2 13B、Mistral 7B 等一众先进模型。

Phi-3 技术报告:https://arxiv.org/abs/2404.14219

刚刚提出的 phi-3-mini 是一个在 3.3 万亿个 token 上训练的 38 亿参数语言模型。实验测试表明,phi-3-mini 的整体性能可与 Mixtral 8x7B 和 GPT-3.5 等模型相媲美,例如 phi -3-mini 在 MMLU 上达到了 69%,在 MT-bench 上达到了 8.38。

微软之前对 phi 系列模型的研究表明,高质量的「小数据」能够让较小的模型具备良好的性能。phi-3-mini 在经过严格过滤的网络数据和合成数据(类似于 phi-2)上进行训练,并进一步调整了稳健性、安全性和聊天格式。

此外,研究团队还提供了针对 4.8T token 训练的 7B 和 14B 模型的初始参数扩展结果,称为 phi-3-small 和 phi-3-medium,两者都比 phi-3-mini 能力更强。

学术基准

在标准开源基准测试中,phi-3-mini 与 phi-2 、Mistral-7b-v0.1、Mixtral-8x7B、Gemma 7B 、Llama-3-instruct8B 和 GPT-3.5 的比较结果如下表所示,为了确保具有可比性,所有结果都是通过完全相同的 pipeline 得到的。

安全性

Phi-3-mini 是根据微软负责任人工智能原则开发的。保证大模型安全的总体方法包括训练后的安全调整、红队(red-teaming)测试、自动化测试和数十个 RAI 危害类别的评估。微软利用受 [BSA+ 24] 启发修改的有用和无害偏好数据集 [BJN+ 22、JLD+ 23] 和多个内部生成的数据集来解决安全性后训练(post-training)的 RAI 危害类别。微软一个独立的 red team 反复检查了 phi-3-mini,以进一步确定后训练过程中需要改进的领域。 

根据 red team 的反馈,研究团队整理了额外的数据集从而完善后训练数据集。这一过程导致有害响应率显著降低,如图 3 所示。

下表显示了 phi-3-mini-4k 和 phi-3-mini-128k 与 phi-2、Mistral-7B-v0.1、Gemma 7B 的内部多轮对话 RAI 基准测试结果。该基准测试利用 GPT-4 模拟五个不同类别的多轮对话并评估模型响应。

缺陷

微软表示,就 LLM 能力而言,虽然 phi-3-mini 模型达到了与大型模型相似的语言理解和推理能力水平,但它在某些任务上仍然受到其规模的根本限制。例如,该模型根本没有能力存储太多「事实知识」,这可以从 TriviaQA 上的低评分中看出。不过,研究人员相信这些问题可以通过搜索引擎增强的方式来解决。

参考内容:​​https://news.ycombinator.com/item?id=40127806​​

# 从Llama-1到Llama-3

Llama模型的发布不仅证明了开源模型在全球AI领域的重要性,也为AI的未来发展方向提供了新的视角和动力。通过持续的技术进步和社区驱动的创新,Llama有望继续推动全球AI技术的广泛应用和发展。

在AI领域,大模型的发展正以前所未有的速度推进技术的边界。

北京时间4月19日凌晨,Meta在官网上官宣了Llama-3,作为继Llama-1、Llama-2和Code-Llama之后的第三代模型,Llama-3在多个基准测试中实现了全面领先,性能优于业界同类最先进的模型。whaosoft开发板商城测试设备www.143ai.com

纵观Llama系列模型,从版本1到3,展示了大规模预训练语言模型的演进及其在实际应用中的显著潜力。这些模型不仅在技术上不断刷新纪录,更在商业和学术界产生了深远的影响。因此,对Llama模型不同版本之间的系统对比,不仅可以揭示技术进步的具体细节,也能帮助我们理解这些高级模型如何解决现实世界的复杂问题。

1. Llama进化史

本节将对每个版本的Llama模型进行简要介绍,包括它们发布的时间和主要特点。

1.1 Llama-1 系列

Llama-1 [1]是Meta在2023年2月发布的大语言模型,是当时性能非常出色的开源模型之一,有7B、13B、30B和65B四个参数量版本。Llama-1各个参数量版本都在超过1T token的语料上进行了预训训练,其中,最大的65B参数的模型在2,048张A100 80G GPU上训练了近21天,并在大多数基准测试中超越了具有175B参数的GPT-3。

由于模型开源且性能优异,Llama迅速成为了开源社区中最受欢迎的大模型之一,以Llama为核心的生态圈也由此崛起。我们将在第6节对这一生态进行详细介绍。与此同时,众多研究者将其作为基座模型,进行了继续预训练或者微调,衍生出了众多变体模型(见下图),极大地推动了大模型领域的研究进展。

唯一美中不足的是,因为开源协议问题,Llama-1不可免费商用。

1.2 Llama-2 系列

时隔5个月,Meta在2023年7月发布了免费可商用版本 Llama-2 [2],有7B、13B、34B和70B四个参数量版本,除了34B模型外,其他均已开源。

相比于Llama-1,Llama-2将预训练的语料扩充到了 2T token,同时将模型的上下文长度从2,048翻倍到了4,096,并引入了分组查询注意力机制(grouped-query attention, GQA)等技术。

有了更强大的基座模型Llama-2,Meta通过进一步的有监督微调(Supervised Fine-Tuning, SFT)、基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF)等技术对模型进行迭代优化,并发布了面向对话应用的微调系列模型 Llama-2 Chat。

通过“预训练-有监督微调-基于人类反馈的强化学习”这一训练流程,Llama-2 Chat不仅在众多基准测试中取得了更好的模型性能,同时在应用中也更加安全。

随后,得益于Llama-2的优异性能,Meta在2023年8月发布了专注于代码生成的Code-Llama,共有7B、13B、34B和70B四个参数量版本。

1.3 Llama-3

系列2024年4月,Meta正式发布了开源大模型 Llama 3,包括8B和70B两个参数量版本。除此之外,Meta还透露,400B的Llama-3还在训练中。

相比Llama-2,Llama-3支持8K长文本,并采用了一个编码效率更高的tokenizer,词表大小为128K。在预训练数据方面,Llama-3使用了超过15T token的语料,这比Llama 2的7倍还多。

Llama-3在性能上取得了巨大飞跃,并在相同规模的大模型中取得了最优异的性能。

另外,推理、代码生成和指令跟随等能力得到了极大的改进,使Llama 3更加可控。

2. 模型架构

本节将详细描述Llama的模型架构,包括神经网络的大小、层数、注意力机制等。

目前,主流的大语言模型都采用了Transformer[3]架构,它是一个基于多层自注意力(Self-attention)的神经网络模型。

原始的Transformer由编码器(Encoder)和解码器(Decoder)两个部分构成,同时,这两个部分也可以独立使用。

例如基于编码器的BERT [4]模型和基于解码器的GPT [5]模型。

Llama模型与GPT类似,也是采用了基于解码器的架构。在原始Transformer解码器的基础上,Llama进行了如下改动:

  • 为了增强训练稳定性,采用前置的RMSNorm [6]作为层归一化方法。
  • 为了提高模型性能,采用SwiGLU [7]作为激活函数。
  • 为了更好地建模长序列数据,采用RoPE [8]作为位置编码。
  • 为了平衡效率和性能,部分模型采用了分组查询注意力机制(Grouped-Query Attention, GQA)[9]。

具体来说,首先将输入的token序列通过词嵌入(word embedding)矩阵转化为词向量序列。然后,词向量序列作为隐藏层状态依次通过𝐿个解码器层,并在最后使用RMSNorm进行归一化。归一化后的隐藏层状态将作为最后的输出。

在每个解码器层中,输入的隐藏层状态首先通过RMSNorm归一化然后被送入注意力模块。注意力模块的输出将和归一化前的隐藏层状态进行残差连接。之后,新的隐藏层状态进行RMSNorm归一化,然后被送入前馈网络层。类似地,前馈网络层的输出同样进行残差连接,作为解码器层的输出。

每个版本的Llama由于其隐藏层的大小、层数的不同,均有不同的变体。接下来,我们将展开看下每个版本的不同变体。

2.1 Llama-1 系列

Llama-1 模型架构,详见MODEL_CARD:

​​https://github.com/meta-llama/llama/blob/main/MODEL_CARD.md​​

为了更好地编码数据,Llama-1使用BPE [10]算法进行分词,具体由sentencepiece进行实现。值得注意的是,Llama-1将所有数字分解为单独的数字,并对未知的UTF-8字符回退到字节进行分解。词表大小为32k。

2.2 Llama-2 系列

Llama-2 模型架构,详见MODEL_CARD(同上)

Llama-2使用了和Llama-1相同的模型架构以及tokenizer。与Llama-1不同的是,Llama-2将上下文长长度扩展到了4k,并且34B和70B参数量版本使用了GQA。

2.3 Llama-3 系列

Llama-3 模型架构,详见MODEL_CARD:

​​https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md​​

与Llama 2相比,Llama-3将tokenizer由sentencepiece换成了tiktoken,这与GPT4 保持一致。同时,词表大小由32k扩展到了128k。另外,为了提高模型效率,Llama-3 8B和70B都采用了GQA。同时上下文长度也扩展到了8k。

3. 训练数据

本节将对每个版本的训练数据进行简要介绍,包括数据来源、规模和处理方式。

3.1 Llama-1 系列

Llama-1使用了海量无标注数据进行自监督学习,这些预训练数据由多个来源混合而成,且都是公开的数据。各个来源的数据量和采样比例见下表。

  • 英语CommonCrawl:Llama-1预处理了2017年至2020年间的五个CommonCrawl数据集。该过程在行级别去重,使用fastText线性分类器进行语言识别以去除非英语页面,并使用n-gram语言模型过滤低质量内容。此外,Llama-1训练了一个线性模型来分类维基百科中用作参考的页面和随机采样的页面,并丢弃了未被分类为参考的页面。
  • C4:在探索性实验中,Llama-1观察到使用多样化的预处理CommonCrawl数据集可以提升性能。因此,Llama-1的数据中包括了公开可获得的C4数据集。C4的预处理也包括去重和语言识别步骤:与CCNet的主要区别在于质量过滤,主要依赖于标点符号的存在或网页中的单词和句子数量等启发式规则。
  • Github:Llama-1使用Google BigQuery上可公开获取的GitHub数据集。Llama-1仅保留在Apache、BSD和MIT许可下分发的项目。此外,Llama-1还使用基于行长度或字母数字字符比例的启发式规则过滤低质量文件,并用正则表达式移除如页眉等样板内容。最后,Llama-1在文件级别对结果数据集进行去重,匹配精确相同的内容。
  • 维基百科:Llama-1添加了2022年6月至8月期间的维基百科数据,涵盖使用拉丁或西里尔文字的20种语言。Llama-1处理数据以移除超链接、评论和其他格式化的样板内容。
  • Gutenberg和Books3:Llama-1在训练数据集中包括了两个书籍语料库:Gutenberg项目(包含公共领域的书籍)和ThePile的Books3部分,一个公开可获得的用于训练大型语言模型的数据集。Llama-1在书籍级别进行去重,移除超过90%内容重合的书籍。
  • ArXiv :Llama-1处理ArXiv的Latex文件,以增加科学数据到Llama-1的数据集。Llama-1移除了第一节之前的所有内容以及参考文献部分。Llama-1还移除了.tex文件中的注释,并内联扩展了用户编写的定义和宏,以增强论文间的一致性。
  • Stack Exchange:Llama-1包括了Stack Exchange的数据转储,这是一个涵盖从计算机科学到化学等多种领域的高质量问题和答案的网站。Llama-1保留了28个最大网站的数据,移除了文本中的HTML标签,并根据得分将答案排序(从最高到最低)。

经过上述处理,Llama-1的整个训练数据集包含大约1.4T token。对于Llama-1的大部分训练数据,每个token在训练期间只使用一次,但维基百科和Books的数据进行了大约两个epoch的训练。

3.2 Llama-2

Llama-2 预训练使用了来自公开可用源的 2T个数据token(未详细指出具体的开源数据)。Llama-2-Chat 还在为此项目创建的27,540个提示-响应对上进行了额外的微调,其表现优于更大但质量较低的第三方数据集。为了实现AI对齐,使用了包含1,418,091个Meta示例和七个较小数据集的组合的人类反馈强化学习(RLHF)。在Meta示例中,平均对话深度为3.9,Anthropic Helpful 和 Anthropic Harmless集合为3.0,包括OpenAI Summarize、StackExchange等在内的其他五个集合的平均对话深度为1.0。微调数据包括公开可用的指令数据集以及超过一百万个新的人类标注示例。

在预训练过程中,Llama-2对数据的安全性进行了全面考量。通过对预训练数据进行分析,Llama-2能够增加透明度,并发现潜在的问题根源,如潜在的偏见。Llama-2采取了一系列措施,包括遵循 Meta 公司的隐私和法律审查流程,排除已知含有大量个人信息的网站的数据。此外,Llama-2未对数据集进行额外的过滤,以使模型在各种任务中更广泛可用,同时避免过度清洗可能导致的意外人口统计消除。对于语言的代表性和毒性的分析,Llama-2使用了相应的工具和数据集,以了解预训练数据的特征,为模型的安全调整提供指导。这一过程确保了我们的模型在安全性方面得到了充分的考虑,并促使我们在部署模型之前进行了重要的安全调整。

Llama 2的预训练主要集中在英语数据上,尽管实验观察表明模型在其他语言方面已有一定的熟练度,但由于非英语语言的预训练数据量有限,其熟练度受到限制(如下图所示)。因此,该模型在非英语语言中的性能仍然脆弱,应谨慎使用(说明多语言能力差:有可能是词表较小导致)。

预训练数据截至到2022年9月,但某些调整数据较新,直到2023年7月。

在Llama2发布的技术报告中有说明:

我们将继续努力微调模型,以提高在其他语言环境下的适用性,并在未来发布更新版本,以解决这一问题。

当前Llama-3 不但扩充了词表大小而且增加了多语言的训练语料。从而完成了在Llama2在技术报告的承诺,而且在当前公布出来的多语言任务中获得了大幅度提升的性能。

3.3 Llama-3 系列

为了更好训练Llama-3,研究人员精心设计了预训练语料库,这些不仅关注数量,还特别强调了质量。LLAMA-3其训练数据量大幅增加,从LLAMA-2的2T Tokens扩展到了15T Tokens,增长了约8倍。其中,代码数据扩充了4倍,显著提升了模型在代码能力和逻辑推理能力方面的表现。

LLAMA-3提供了三种规模的模型版本:小型模型具有8B参数,其性能略优于Mistral 7B和Gemma 7B;中型模型则拥有70B参数,其性能介于ChatGPT 3.5和GPT 4之间;大型模型规模达到400B,目前仍在训练中,旨在成为一个多模态、多语言版本的模型,预期性能应与GPT 4或GPT 4V相当。

值得注意的是,LLAMA-3并没有采用MOE(Mixture of Experts)结构,这种结构主要用于降低训练和推理成本,但在性能上通常无法与同规模的密集型(Dense)模型相比。随着模型规模的扩大,如何降低推理成本将成为一个需要关注的问题。

此外,LLAMA-3的训练数据包括了大量的代码token和超过5%的非英语token,来源于30多种语言。这不仅使得模型在处理英语内容时更加高效,也显著提升了其多语言处理能力,这表明LLAMA-3在全球多语言环境中的适应性和应用潜力。

为确保数据质量,Meta开发了一系列数据过滤pipeline,包括启发式过滤器、NSFW过滤器、语义重复数据删除技术及用于预测数据质量的文本分类器。这些工具的有效性得益于先前版本Llama的表现,特别是在识别高质量数据方面。

此外,Meta通过大量实验评估了在最终预训练数据集中混合不同来源数据的最佳策略,确保Llama-3能在多种场景下展现卓越性能,如日常琐事、STEM 领域、编程和历史知识等。

4. 训练方法

本节将对每个版本的训练方法进行简要介绍,包括预训练、有监督微调和基于人类反馈的强化学习。

4.1 Llama-1系列

Llama-1模型是一个基础的自监督学习模型,它没有经过任何形式的特定任务微调。自监督学习是一种机器学习技术,其中模型通过分析大量未标记的数据来预测其输入数据的某些部分。这种方法允许模型在没有人类标注的数据的情况下自动学习数据的内在结构和复杂性。Llama-1在公布的技术报告中详细描述了使用AdamW优化器的机器学习模型的具体训练配置。AdamW是对Adam优化器的改进,可以更有效地处理权重衰减,从而提高训练的稳定性。β1和β2参数的选择影响训练过程的收敛行为和稳定性。Llama-1描述的余弦学习率调度是一种有效的技术,用于在训练期间调整学习率,通过逐渐减少学习率,在某些情况下可以导致更好的收敛。实施0.1的权重衰减和1.0的梯度裁剪是预防过拟合和确保数值稳定性的标准做法。使用预热步骤是一种策略性方法,旨在训练过程初期稳定训练动态。根据模型大小调整学习率和批量大小是一种优化资源分配和效率的实用方法,有可能提高模型性能。

Llama-1也展示了一系列针对大规模语言模型训练进行的优化措施。通过使用xformers库[12]中的causal multi-head attention(通过不存储注意力权重和不计算由于语言建模任务的因果性质而被屏蔽的key/query.分数来实现的)的高效实现,减少了内存占用和计算时间,显示了在处理大量数据时对效率的关注。此外,采用手动实现反向传播函数代替依赖自动微分系统,以及利用检查点技术保存计算成本高的激活,都是提高训练速度和减少资源消耗的有效策略。通过模型和序列并行性以及优化GPU之间的通信,进一步提升了训练过程的效率。这些优化措施特别适合于训练参数庞大的模型,如650亿参数的模型,能显著减少训练时间,提高整体的运算效率。整体上,这些优化技术体现了在高性能计算领域对资源管理和效率优化的深入考量,对于推动大规模语言模型的发展具有重要意义。

4.2 Llama-2系列

Llama-2模型是在Llama-1的基础上进一步发展的,而Llama-2-Chat模型则是基于Llama-2进行微调的版本。这两个模型保持了固定的4k上下文长度,这与OpenAI的GPT-4在微调过程中可能增加的上下文长度不同。

在Llama-2和Llama-2-Chat的微调中,采用了自回归损失函数,这是一种在生成模型中常见的方法,模型预测下一个token时会考虑到之前的所有token。在训练过程中,用户输入提示的token损失被清零,这意味着模型被训练以忽略这些特定的token,从而更专注于生成回复。

Llama-2-Chat的训练过程如下图所示。整个过程起始于利用公开数据对Llama-2进行预训练。在此之后,通过有监督微调创建了Llama-2-Chat的初始版本。随后,使用基于人类反馈的强化学习(RLHF)方法来迭代地改进模型,具体包括拒绝采样(Rejection Sampling)和近端策略优化(Proximal Policy Optimization, PPO)。在RLHF阶段,人类偏好数据也在并行迭代,以保持奖励模型的更新。

4.3 Llama-3系列

与Llama-2类似,Llama-3系列也有两个模型——预训练模型Llama-3和微调后的模型Llama-3-Instruct。

在预训练阶段,为了有效地利用预训练数据,Llama-3投入了大量精力来扩大预训练。具体而言,通过为下游基准测试制定一系列扩展法则(scaling laws),使得在训练之前就能预测出模型在关键任务上的性能,进而选择最佳的数据组合。

在这一过程中,Llama-3对扩展法则有了一些新的观察。例如,根据DeepMind 团队提出的Chinchilla [11]扩展法则,8B模型的最优训练数据量约为200B token,但实验发现,即使训练了两个数量级的数据后,模型性能仍在继续提高。在多达15T token上进行训练后,8B和70B参数的模型都继续以对数线性的方式提升性能。

为了训练最大的Llama-3模型,Meta结合了三种并行策略:数据并行、模型并行和流水并行。当同时在16K GPU上进行训练时,最高效的策略实现了每个GPU超过400 TFLOPS的计算利用率。最后,模型在两个定制的24K GPU集群上进行了训练。

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

在微调阶段,Meta对模型的微调方法进行了重大创新,结合了有监督微调(Supervised Fine-Tuning, SFT)、拒绝采样、近似策略优化(Proximal Policy Optimization, PPO)和直接策略优化(Direct Policy Optimization, DPO)。这种综合方法优化了模型在执行复杂的推理和编码任务时的表现。特别是通过偏好排序的训练,Llama-3在处理复杂的逻辑推理问题时能更准确地选择最合适的答案,这对于提高AI在实际应用中的可用性和可靠性至关重要。

5. 效果对比

本节将对比不同版本在众多基准测试中的效果差异。

5.1 Llama-2 vs Llama-1

Meta官方数据显示,Llama-2在众多基准测试中都优于Llama-1和其他开源语言模型。

5.2 Llama-3 vs Llama-2

Meta官方数据显示,在各自参数规模上,Llama-3 8B和70B版本都取得了不错的成绩。8B模型在众多基准测试中均胜过Gemma 7B和Mistral 7B Instruct,而70B模型超越了闭源模型Claude 3 Sonnet,对比谷歌的Gemini Pro 1.5性能也是相当。

同时,在Llama-3的开发过程中,Meta还开发了一个包含1800个提示的高质量人类评估集。评测结果显示,Llama 3不仅大幅超越Llama 2,也战胜了Claude 3 Sonnet、Mistral Medium和GPT-3.5这些知名模型。

Llama-3之所以能够取得如此出色的成绩,离不开它预训练模型的优异性能。在众多基准测试中,8B模型超越了Mistral 7B和Gemma 7B,70B模型则战胜了Gemini Pro 1.0和Mixtral 8x22B。

另外,Meta表示,最大的Llama-3仍在训练中,其参数超过400B,并在多项基准测试中取得了出色的成绩。一旦完成训练,Meta将发表一篇详细的研究论文。

值得注意的是,根据英伟达科学家Jim Fan的整理,Llama3 400B基本逼近Claude-3-Opus和GPT-4-turbo,这将意味着开源社区即将迎来GPT-4级大模型。

6. 社区影响

本节将简要介绍Llama模型对开源社区的影响。

6.1 开放源代码模型的力量

自Meta发布Llama模型以来,它对全球AI社区产生了深远的影响。作为一个开源的大语言模型(LLM),Llama不仅提供了一个强大的技术基础,还推动了全球范围内对AI技术的广泛采用和创新。

Llama模型的开源策略被视为LLM时代的“安卓”,这意味着它提供了一个模块化和可自定义的平台,使研究人员和开发者能够根据自己的需要调整和优化模型。这种开放性极大地降低了进入门槛,使得从小型创业公司到大型企业都能够利用这一技术。四月十九日的Llama 3的发布,一日的下载量已经突破了1.14k,两个8B的模型位列trending第一。

6.2 对全球AI研发的影响

在OpenAI转向更封闭的商业模式后,Llama的发布为全球进行AI项目研发的团队和个人提供了一种可靠的选择。这种开源模型确保了用户不必完全依赖单一的商业API,从而增加了企业的运营安全感和自由度,尤其是在数据安全和成本控制方面。

6.3 技术进步和社区创新

技术上,Llama模型已经展示了与GPT相媲美的性能,这证明了开源社区在推动前沿技术方面的能力。此外,社区通过对模型的不断优化和调整,在不同的垂直领域中开发出适用的解决方案,类似于Stable Diffusion和Midjourney等社区驱动的大模型。

6.4 生态系统和多样性

Llama的应用已经扩展到多种平台和设备,包括移动和边缘设备。这种多样化的应用不仅推动了技术的普及,也加速了新应用的创新。例如,云平台如AWS和Google Cloud的积极参与,证明了Llama模型的广泛适用性和强大功能。

6.5 Llama社区的未来展望

随着Llama模型的持续发展和优化,Meta强调了对多模态AI、安全性和责任以及社区支持的持续关注。这些方向不仅符合当前AI发展的趋势,也为Llama社区的未来提供了明确的路线图。

7. 总结

总之,Llama模型的发布不仅证明了开源模型在全球AI领域的重要性,也为AI的未来发展方向提供了新的视角和动力。通过持续的技术进步和社区驱动的创新,Llama有望继续推动全球AI技术的广泛应用和发展。

# 多智能体协作是新关键,软件开发等任务将更高效

起了众多讨论。其中,吴恩达谈到基于 GPT-3.5 构建的智能体工作流在应用中表现比 GPT-4 要好。这表明,将目光局限于大模型不一定可取,智能体或许会比其所用的基础模型更加优秀。

在软件开发领域,这些智能体展示了其独特的能力,能够高效协作,处理编程中的复杂问题,甚至进行代码自动生成。最新的技术动态显示,AI 智能通在软件开发中显示出巨大的潜力。还记得 Devin 吗?号称世界第一个 AI 软件工程师的它出场就惊艳到了我们,一个智能体就能带给我们如此体验,如果是多个智能体合作,是不是能够直接把体验值直接拉满呢?

想象一下,一个由多个智能体组成的团队,每一个成员都擅长于特定的任务,如代码审查、错误检测或新功能实现。这些智能体可以互补彼此的能力,共同推进软件项目的进度。这岂不是解放了码农的双手,再也不怕腱鞘炎了。

吴恩达撰新文一篇带我们深入这一领域,探索智能体系统的最新动态。文章中提及的 AutoGen 和 LangGraph 等工具,正是在这一大背景下应运而生。这些工具旨在帮助开发者更容易地部署和管理 AI 智能体,从而充分发挥其潜力。凭借它们的力量,即使是没有深厚编程背景的人也能够利用 AI 智能体来优化和自动化软件开发流程。以下是机器之心不改变原义的整理与翻译。

原文链接:https://www.deeplearning.ai/the-batch/issue-245/

多智能体协作是我在最近几封信中描述的四种关键 AI 智能体设计模式中的最后一种。对于像编写软件这样的复杂任务,多智能体方法会将任务分解成由不同角色(如软件工程师、产品经理、设计师、QA 工程师等)执行的子任务,并让不同的智能体完成不同的子任务。

不同的智能体可以通过提示一个 LLM(或多个 LLM)执行不同的任务来构建。例如,要建立一个软件工程师智能体,我们可以提示 LLM:「你是编写清晰、高效代码的专家。请编写代码来执行任务......」。

尽管我们多次调用同一个大型语言模型(LLM),但我们采用多智能体的编程抽象方法,这看似违反直觉,但却有几个理由支持:

  1. 它有效!许多团队使用这种方法取得了良好的效果,没有什么比结果更有说服力的了。此外,消融研究(例如在 AutoGen 论文中)表明,多智能体的表现优于单一智能体。
  2. 虽然现今的一些 LLM 能接受非常长的输入上下文(例如,Gemini 1.5 Pro 可以接受 100 万个 token),但它们真正理解长而复杂输入的能力是参差不齐的。采用智能体工作流,让 LLM 一次专注于一件事,可以获得更好的表现。
  3. 最重要的是,多智能体设计模式为开发者提供了一个框架,用以将复杂任务分解成子任务。当在单个 CPU 上运行代码时,我们经常将程序分解成不同的进程或线程。这种抽象有助于我们将任务分解成更易于编码的子任务。使用多智能体角色进行思考同样是一个有用的抽象。

在许多公司中,管理者通常会决定招聘哪些角色,然后如何将复杂项目 —— 如编写一大块软件或准备研究报告 —— 分解为更小的任务分配给具有不同专长的员工。使用多个智能体的做法与此类似。每个智能体实施自己的工作流程,拥有自己的记忆(这本身是智能体技术中一个迅速发展的领域:一个智能体如何记住足够多的过去互动以在未来的任务中表现得更好),并可能请求其他智能体的帮助。智能体还可以进行规划和使用工具。这会产生了大量的 LLM 调用和智能体间的信息传递,可能形成非常复杂的工作流程。

虽然管理人员困难,但这是我们非常熟悉的,它为我们如何「雇佣」和分配任务给我们的 AI 智能体提供了一个心理框架。幸运的是,管理不善 AI 智能体的损害远低于管理不善人类!

像 AutoGen、Crew AI 和 LangGraph 这样的新兴框架为解决问题提供了丰富的多智能体解决方案。如果你对玩乐趣十足的多智能体系统感兴趣,不妨看看 ChatDev,这是一个运行虚拟软件公司的智能体集合的开源实现。你可以查看他们的 GitHub repo,也许克隆 repo 并亲自运行系统。虽然它可能不总是产生你想要的结果,但你可能会对它的表现感到惊讶。

就像规划这一设计模式一样,我发现多智能体协作的输出质量很难预测,特别是当允许智能体自由交互并为它们提供多种工具时。更成熟的反思和工具使用模式更为可靠。希望你能享受这些智能体设计模式的乐趣,并且它们能为你带来惊人的结果!如果你有兴趣了解更多,可以阅读以下文章:

  • 论文标题:Communicative Agents for Software Development
  • 论文链接:https://arxiv.org/pdf/2307.07924.pdf
  • 论文标题:AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation
  • 论文链接:https://arxiv.org/pdf/2308.08155.pdf
  • 论文标题:METAGPT: META PROGRAMMING FOR A MULTI-AGENT COLLABORATIVE FRAMEWORK
  • 论文链接:https://arxiv.org/pdf/2308.00352.pdf

更多详细内容,请阅读原文。

看了本篇文章,网友们大受启发,不过也有网友提出,多智能体系统在执行相同或类似任务时表现出的稳定性和可预测性还有待考量。你觉得多智能体协作的益弊何在呢?

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

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

相关文章

【Linux-基础IO】磁盘的存储管理详解

磁盘的存储管理 由于一个磁盘中包含了大量的扇区,为了方便管理,我们对磁盘进行了分区,其中每个分区又进一步划分为多个块组(Block Group),每个块组中包含该块组的数据存储情况以及具体的数据 假设有一个8…

分层解耦-01.三层架构

一.对案例的思考 所有的代码都在这一个controller文件中,虽然该代码不复杂。但是如果针对大型项目,代码会很复杂。而且不利于项目的维护,复用性差。因此要修改该代码,使其满足维护方便,复用性好的特点。因此要用到一个…

VMware ESXi更改https的TLS协议版本

简要概述 TLS 1.0 和 1.1 是已弃用的协议,具有广为人知的缺点和漏洞。应在所有接口上启用 TLS 1.2,并在支持的情况下禁用 SSLv3、TL 1.1 和 1.0。强制要求 TLS 1.2 可能会破坏 vSphere 的第三方集成和加载项。在实施 TLS 1.2 后仔细测试这些集成&#x…

游戏报错x3daudio1_7.dll缺失怎么回事?总结几个有效解决方法分享

1. x3daudio1_7.dll 简介 1.1 定义 x3daudio1_7.dll 是一个动态链接库(DLL)文件,它与 Microsoft DirectX 音频组件紧密相关。该文件主要负责处理三维(3D)音频效果,提供给游戏和多媒体应用程序以增强用户体…

HDLBits中文版,标准参考答案 | 3.1.2 Multiplexers | 多路复用器

关注 望森FPGA 查看更多FPGA资讯 这是望森的第 9 期分享 作者 | 望森 来源 | 望森FPGA 目录 1 2-to-1 multiplexer | 2 对 1 多路复用器 2 2-to-1 bus multiplexer | 2 对 1 总线多路复用器 3 9-to-1 multiplexer | 9 对 1 多路复用器 4 256-to-1 multiplexer | 256 对 …

CPU、GPU、显卡

CPU VS GPUCPU(Central Processing Unit),中央处理器GPU(Graphics Processing Unit),图形处理单元GPU 的技术演变CUDA(Compute Unified Device Architecture) 显卡(Video…

【数据结构与算法】Greedy Algorithm

1) 贪心例子 称之为贪心算法或贪婪算法,核心思想是 将寻找最优解的问题分为若干个步骤每一步骤都采用贪心原则,选取当前最优解因为没有考虑所有可能,局部最优的堆叠不一定让最终解最优 贪心算法是一种在每一步选择中都采取在当前状态下最好…

华为OD机试 - 冠亚军排名(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

Electron桌面应用打包现有的vue项目

1 环境准备 Node:v16.20.2(本地vue项目nodejs版本)Electron:22.3.7vue:2 版本管理 2 Vue项目准备 更新相关依赖npm install --registry https://registry.npmmirror.com/npm run dev 3、引入Electorn 安装指定版…

基于C语言的排序

排序的概念 : 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录&#xff0c…

Hadoop大数据入门——Hive-SQL语法大全

Hive SQL 语法大全 基于语法描述说明 CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION] path; SELECT expr, ... FROM tbl ORDER BY col_name [ASC | DESC] (A | B | C)如上语法,在语法描述中出现: [],表示可选,如上[LOCATI…

课堂点名系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,论坛信息管理,基础数据管理,课程信息管理,课程考勤管理,轮播图信息 微信端账号功能包括:系统首页,论坛信…

【深度强化学习】DDPG+popart技巧(最详解)

文章目录 前言遇到的困难参考最后实现情况 一、popart 是什么?(论文解读)具体的理解关于mappo原代码中debiasing_term 二、复刻popart主要进行了什么操作?1.art:2.pop:3.算法理解4.上述未考虑的部分(关键) 三、代码实现…

传感器模块编程实践(三)舵机+超声波模块融合DIY智能垃圾桶模型

文章目录 一.概要二.实验模型原理1.硬件连接原理框图2.控制原理 三.实验模型控制流程四.智能感应垃圾桶模型程序五.实验效果视频六.小结 一.概要 随着科技的飞速发展和环保意识的日益增强,智能垃圾桶成为了城市生活的新宠,智能垃圾桶人们无需接触垃圾桶…

【Linux系统编程】第二十八弹---构建基础文件操作库与理解标准错误流(stderr)在C与C++中的应用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、封装简单的库 1.1、定义文件结构 1.2、打开文件 1.3、刷新缓冲区 1.4、写文件 1.5、关闭文件 1.6、各文件代码 2、s…

医院管理新趋势:Spring Boot技术引领

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

Github优质项目推荐 - 第五期

文章目录 Github优质项目推荐 - 第五期一、【localsend】,47.5k stars - 附近设备文件互传二、【Pake】,29.9k stars - 网页变成桌面应用三、【laravel-crm】,10.7k stars - CRM 解决方案四、【localstack】,55.7k stars - 本地 A…

【C++】二叉搜索树+变身 = 红黑树

🚀个人主页:小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言一、定义与性质二、红黑树节点的定义三、新增节点插入四、验证红黑树五、AVL树和红黑树比较 前言 本文仅适合了…

【算法】DFS系列之 FloodFill 算法

【ps】本篇有 7 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1)图像渲染 .1- 题目解析 .2- 代码编写 2)岛屿数量 .1- 题目解析 .2- 代码编写 3)岛屿的最大面积 .1- 题目解析 .2- 代码编写 4)被围绕的区域 .1-…

allegro精确画圆形边框

1.显示原点位置: 2.class-subclass依次选择Board Geometry-Outline 3.菜单ADD---Circle,右侧option,依次设置如下,如图可设置为圆心(0,0),半径为42mm的边框,不要忘了右键Done,完成绘…