公开课 | 2024清华大模型公开课 第6课 大模型前沿架构 Part 2(长文本、Scaling Law)

news2024/10/19 2:14:11

本文由readlecture.cn转录总结专注于音、视频转录与总结,2小时视频,5分钟阅读,加速内容学习与传播。

大纲

  • 引言

    • 介绍长文本和Scaling Law的研究方向

    • 强调大型语言模型在日常生活中的应用

  • 长文本处理

    • 长文本的定义和例子

      • 《哈利波特》系列书籍的词汇量

      • 视频内容的帧数和信息量

    • 当前大型模型的处理能力

      • Llama模型、Mistral模型和GPT-4的支持长度

    • 长文本处理的需求和挑战

      • 序列长度的增加对内存和计算量的影响

      • Attention机制的计算复杂度

  • Scaling Law

    • 大模型的发展和应用

      • 从单轮对话到多轮交互

      • 大模型在理解图片和阅读论文中的应用

    • 大模型的未来展望

      • 期望大模型成为全天候助手

  • 长文本处理的解决方案

    • 改进架构以降低复杂度

    • 利用有限的GPU资源进行快速训练

    • 介绍前沿技术如Mamba(SSM)和稀疏架构

  • 稀疏注意力机制

    • 滑动窗口机制

    • 全局注意力机制

    • 基于内容的注意力选择

  • 线性注意力机制

    • 通过核函数替换softmax

    • 将transformer转换为RNN公式

    • 简化计算和存储需求

  • SSM(Mamba)

    • 使用State Space Model

    • 并行化处理序列信息

    • 降低复杂度到线性

  • 模型优缺点分析

    • 全注意力机制

    • 稀疏注意力机制

    • 基于记忆的模型和线性传播

  • 高效实现

    • 位置编码的改进

    • 序列并行的思路

    • 利用多GPU处理长文本

  • Scaling Law

    • 模型性能与参数、数据量和计算量的关系

    • 利用小模型预测大模型性能

    • 预测模型表现的局限性和潜在危害

  • 总结和未来展望

    • 大模型训练的挑战和解决方案

    • 对未来无限长序列模型的思考

内容总结

一句话总结

本文深入探讨了大型语言模型在处理长文本和Scaling Law方面的挑战与解决方案,强调了模型复杂度、计算资源和数据处理的重要性。

观点与结论

  • 大型语言模型在处理长文本时面临内存和计算量的显著增加。

  • 稀疏注意力机制和线性注意力机制是降低模型复杂度的有效方法。

  • Scaling Law可以帮助预测和优化大模型的性能。

  • 大模型的未来发展需要考虑无限长序列的处理能力和高质量训练数据的需求。

自问自答

  1. 为什么大型语言模型在处理长文本时会遇到困难?

    • 因为长文本的序列长度增加会导致内存和计算量的显著增加。

  2. 稀疏注意力机制是如何工作的?

    • 它通过只关注部分token,忽略其他token,从而降低计算复杂度。

  3. 线性注意力机制与传统注意力机制有何不同?

    • 线性注意力机制通过核函数替换softmax,简化了计算和存储需求。

  4. Scaling Law是什么?

    • 它是一种预测大模型性能的方法,通过小模型性能来预测大模型的表现。

  5. 大模型的未来发展方向是什么?

    • 需要考虑无限长序列的处理能力和高质量训练数据的需求。

关键词标签

  • 大型语言模型

  • 长文本处理

  • Scaling Law

  • 稀疏注意力机制

  • 线性注意力机制

  • Scaling Law

适合阅读人群

  • 人工智能研究人员

  • 数据科学家

  • 机器学习工程师

  • 计算机科学学生

术语解释

  • 长文本:指包含大量词汇或信息的文本,如书籍、长篇文章等。

  • Scaling Law:指模型在处理复杂任务时所需的计算和认知资源。

  • 稀疏注意力机制:一种注意力机制,只关注部分token,忽略其他token,以降低计算复杂度。

  • 线性注意力机制:通过核函数替换softmax,将transformer转换为RNN公式,简化计算和存储需求。

  • Scaling Law:一种预测大模型性能的方法,通过小模型性能来预测大模型的表现。

视频来源

bilibili: readlecture.cn

讲座回顾

  • 介绍了长文本和Scaling Law两个研究方向。

  • 强调了大型语言模型在日常生活中的应用。

  • 提到实际生活中需要处理超长文本的场景。

各位同学好,接下来我给大家介绍一下长文本和Scaling Law这两个部分。我会尽量加快速度,争取在12点之前让大家去吃饭。这两部分其实是目前非常火热的研究方向。首先,我们来关注长文本。通过之前的课程介绍,大家已经能够初步体会到大型语言模型在我们日常生活中的广泛应用。然而,在实际生活中,我们经常遇到需要大型语言模型处理超长文本的场景。

  • 一个人一天能听到的单词数量大约是3万左右。

  • 《哈利波特》系列七本书总共包含100多万个词语,平均每本书约15万个词语。

  • 一个小时的视频包含约8万多帧,每帧在1080P分辨率下承载丰富信息。

我在这里举了几个例子。首先,一个人一天能听到的单词数量大约是3万左右。接下来,我们要让大型语言模型帮助我们阅读书籍,以《哈利波特》系列为例。该系列七本书总共包含100多万个词语,平均每本书约15万个词语。此外,一个小时的视频,虽然看似短暂,但实际上包含了丰富的内容。一个小时的视频,即60分钟乘以60秒,每秒钟24帧,总共约有8万多帧。如果视频分辨率为1080P,那么每一帧都承载着丰富的信息。在这种情况下,我们的大模型至少需要处理数万、数百万甚至数千万的序列长度数据。

  • 当前对处理长文本序列的需求非常迫切。

  • 现有大型模型如Llama、Mistral和GPT-4分别支持8K、32K和128K长度。

  • 这些模型通常处理约10万Token的文本量级。

  • 随着需求增长,对长文本处理能力的要求也在提升。

实际上,当前对处理长文本序列的需求已极为迫切。与现有大型模型相比,例如常见的Llama模型支持8K长度,Mistral模型支持32K长度,而GPT-4则支持128K长度。这些模型通常处理约10万Token的文本量级。然而,随着需求的不断增长,我们对长文本处理能力的要求也在持续提升。

  • 大模型发展前,对话通常是单轮的,即发送查询后接收输出即结束。

  • 从GPT-3.5到GPT-4.0,对话模式转变为多轮交互,允许用户进行多次提问。

  • 多轮交互的应用包括让AI帮助理解图片和阅读论文,未来还将用于解决问题。

在大模型发展之前,我们可能更多地进行单轮对话,发送一个查询(query),然后接收一个输出,之后便结束对话。从GPT-3.5到GPT-4.0,我们现在开始有了多轮交互,例如,让AI帮助理解一张图片,我们可能会有多次提问。此外,让它帮助阅读一篇论文,未来我们也会利用它来解决问题。

  • 大模型的发展前景被寄予厚望。

  • 大模型被期望成为全天候的助手,如《钢铁侠》中的贾维斯。

  • 大模型将全天候陪伴用户,深入了解并协助解决各种问题。

在众多问题中,交互不断进行。进一步地,大模型的发展前景值得期待,例如,大家可能都熟悉《钢铁侠》中的角色贾维斯。贾维斯是钢铁侠从小到大的亲密助手。在这样的背景下,我们对大模型的未来寄予厚望,期望它能够成为全天候的存在。它将全天24小时、全年365天陪伴在我们身边,深入了解我们面临的所有问题。

在当前背景下,未来我们必然需要大模型来处理无限长的输入文本。长文本输入的重要性显而易见。然而,目前大模型的长度为何受到限制?这实际上涉及到对长序列处理的深入探讨。

  • Attention机制通过映射输入序列为QKV(Query, Key, Value)进行计算。

  • 使用点积计算得到Softmax值。

  • 序列长度为N时,矩阵大小为N乘N。

  • 序列长度增加会导致内存和计算量的显著增加。

  • 计算复杂度为O(N^2)。

可以回顾一下Attention的计算公式。实际上,Attention机制将输入序列映射为QKV,然后通过点积计算得到Softmax值,正如图中所示。这里的序列长度是N,矩阵大小为N乘N。例如,如果序列长度为4K,那么矩阵大小为4K乘4K,即16万。如果序列长度进一步增加到128K,这将导致内存和计算量的显著增加。此外,计算复杂度为O(N^2)。

  • 当前运算基于FP16,每个数值需加两个字节。

  • 128K的Attention Mask需加字节数未明确给出。

  • 模型每层有32层,即4层,每个Attention有不同的Attention Head。

  • 处理长序列时,OpenBMB的计算复杂度高,显存需求可达数百G。

  • 核心问题是如何降低OpenBMB的计算复杂度。

  • 将介绍两个方面的知识以解决此问题。

现在我们大家的运算都是基于FP16,一个数值需要加两个字节。假设是一个128K的Attention Mask,大概需要加多少个字节?在每一层上,每个模型可能有32层,即4层。每一个Attention里面就会有不同的Attention Head。在这种情况下,大家可以算一下,对于处理一个很长的序列来说,计算复杂度,其实好几百个G的显存都是很正常的一个需求。因此,核心大模型要解决的问题就是如何降低计算复杂度。接下来,我会核心去给大家介绍两个方面的知识。

  • 讨论了改进架构以降低复杂度的必要性。

  • 强调了长文本处理中训练过程的复杂性和耗时性。

  • 提出了有效利用GPU资源以加速训练的重要性。

  • 提到了长文本技术的快速发展和需要深入学习的内容。

  • 介绍了前沿技术Mamba(SSM)和稀疏架构,包括神经网络和自注意力机制的稀疏性。

首先,我们探讨如何改进架构以降低O(n^2)的复杂度。其次,针对长文本处理,即使降低了复杂度,整个训练过程仍然十分复杂。无论是O(log(n)还是O(n),模型的训练都极为耗时。因此,我们需要充分利用有限的GPU资源,以实现快速训练。当前,长文本技术发展迅猛,我介绍的几个部分仅是其中一小部分,还有许多内容值得深入学习。此外,我们还将讨论前沿技术,特别是Mamba(即SSM),并介绍稀疏架构。稀疏架构不仅包括神经网络的稀疏性,还涉及自注意力机制的稀疏性。例如,在阅读一本书时,这种机制能够帮助我们更高效地处理信息。

我认识你这个人,了解你这个人,我需要知道你之前所有的历史吗?好像也不需要。

我们在理解当前Token时,发现之前的许多Token大多是无用的,我们仅需少数Token来辅助理解。

  • 将人生比作长文本,强调关注最相关的近期信息。

  • 在录取决策中,只考虑高中成绩,忽略小学和初中表现。

  • 自注意力机制原本计算所有token的相关性,Sparse Attention机制只关注部分token,降低复杂度。

将人的一生比作长文本,假设你们在高考中被清华大学录取,决定是否录取你时,我不需要了解你小学和初中的情况,只需知道你高中的学习表现。如果你高中成绩优秀,那么你就会被录取。这一思想的核心在于,我只关注与当前最相关的内容,即最接近的上下文,通过计算这些内容来理解长文本。如图所示,自注意力机制原本要求在每个token上计算与前面所有token的相关性,然后进行计算。而Sparse Attention机制则只关注部分蓝色区域,忽略白色部分。这样,原本的复杂度可能因此降低。

通常使用的机制有三种,第一种是滑动窗口(Sliding Window),即只关注最近的几个token,例如当前的token。

  • 描述了三种注意力机制:

    • 局部注意力机制:只关注前面的特定Token,忽略更远的Token。

    • 全局注意力机制:将特定Token设置为全局评选,使后续所有Token都能记住它们。

    • 基于内容的注意力选择:根据Token之间的相似性来决定关注哪些Token。

  • 提到吸附注意力机制在GPT模型中的应用。

然后我只关注前面的两个Token,以帮助理解。如果再往前,我会认为距离太远,不再感兴趣,因此将其忽略。另外一种机制称为全局注意力机制,即全局评选。在这种情况下,我希望永远记住这两个Token,希望后续所有Token都能记住它们。因此,我将其设置为全局评选,使后续所有Token都能看到它们。还有一种更直观的机制,是基于内容的注意力选择。在这种机制中,我根据相似性来决定当前Token应关注之前的哪些Token,而不是依据预设的形式。实际上,这包括三种机制。吸附注意力机制在GPT中也有应用。

在BERT架构和双向模型的架构中,这种技术其实已经被广泛研究。当然,随着技术的发展,到目前为止,在GPT架构中,被广泛采用的技术只剩下三种。这种吸收注意力架构最早也是由OpenAI提出的。

  • Sparse Transformer是一种基于滑动窗口机制的变体技术。

  • 该技术中,每个Token只关注前面的若干Token,并且每N个Token只选择一个进行关注。

  • 随着序列长度的增加,Sparse Transformer实现了O(Nlog N)的复杂度增长。

  • 这种注意力架构从预训练阶段开始设计,有效降低了计算复杂度。

  • 已有相关工作进一步发展了Sparse Transformer技术。

他们在这个领域提出了一种名为Sparse Transformer的技术。实际上,这种技术是滑动窗口机制的一种变体,即每个当前的Token只关注前面的若干个Token,并且再往前看时,每N个Token只选择一个进行关注。这样,随着序列长度的增加,它大致相当于一个局部注意力机制,同时对前面的文本进行切片,从而实现一个O(Nlog N)的增长。在这种情况下,它从预训练阶段开始,即从一开始预训练时就设计了这种注意力架构,使其将N方的复杂度降低到Nlog N。此外,目前已有相关工作进一步发展了这一技术。

  • 稀疏注意力机制无需在预训练阶段引入。

  • 可直接应用于使用稠密注意力机制的大型模型。

  • 稠密注意力机制中,每个token使用前面所有token,导致计算量限制。

  • 举例说明:4K模型处理5K文本时,有1K文本无法处理。

实际上,这种稀疏注意力机制并不需要在预训练阶段就引入。我们可以直接将其应用于当前使用稠密注意力机制训练的大型模型中。在这种稠密机制中,每个token都会使用前面所有的token,这会导致计算量的限制。例如,如果我们训练了一个4K的模型来处理5K的文本,就会有一K的文本无法被处理。

  • 调整预训练范围可能导致模型整体崩溃。

  • 提出使用滑动窗口(Sliding Window)和全局函数(Global Function)的注意力机制。

  • 这种结合机制适用于密集训练模型,能有效处理长文本。

  • 具体应用中,模型会关注前几个Token并结合全局函数。

它实际上是调整了预训练的范围,这会导致模型整体崩溃。在这种情况下,人们提出了滑动窗口或Sliding Window的注意力机制,结合Global Function的注意力机制,可以直接应用于密集训练的模型中,从而取得良好的长文本注意效果。也就是说,如果假设预训练长度大约为四个Token,那么模型会关注前面的三个Token,并结合Global Function。

  • GPT模型中的初始token被称为Begin Authentic。

  • 该特殊token提供初始的注意力机制。

  • 现代模型采用相对位置编码,仅能告知token间的相对位置距离,无法提供更多信息。

这种最初的token其实是有其讲究的。在GPT模型中,最初的token被称为Begin Authentic,这是一个特殊的token。文章中提到,这种特殊token之所以重要,是因为它提供了初始的注意力机制。由于现代模型采用相对位置编码,这种编码仅能告知两个token之间的相对位置距离,例如距离为2,但仅凭相对位置编码,无法提供更多信息。

  • 特殊token的位置与功能:文中提到的特殊token固定在文本开头,提供绝对位置信息,与文本有相对距离编码。

  • 注意力机制的应用:当前注意力机制主要采用滑动窗口,可在预训练阶段引入,降低模型复杂度,适用于处理更高分辨率的数据。

  • 基于记忆的模型:基于记忆的模型(如RNN)模仿人类记忆机制,被视为基于模块的模型。

因此,仅凭全文的理解是不够的,因为我还想知道这个token及其context在文章中的具体位置,无论是开头还是结尾,这对理解整个文本都有一定的帮助。他提到的这种special token,与文本有一个相对的距离编码,并提供给这个token一个绝对位置的信息,因为它固定在文本的最开头。例如,如果你与它的距离为10,那么你就在第10个位置。当然,这也是一种假设,有兴趣的读者可以查阅相关论文。核心结论是,当前的注意力机制主要以sliding window为主,可以在预训练阶段引入,从而降低复杂度。这可以直接应用于当前的稠密模型中,使得一个4K的模型能够处理8K或16K的数据。此外,sliding window目前广受关注,而基于memory的模型,如RNN,可以被视为基于模块的模型,其最初的假设是模仿人类的记忆机制。

  • 人脑无法逐字逐句记住所有阅读内容,但会形成印象和记忆。

  • 记忆模块的研究旨在处理长文本时存储已处理的token。

  • 处理当前token时,从记忆模块提取相关内容生成输出,并更新记忆模块。

  • 通过限制记忆模块大小,有效处理长文本。

我们不可能通过阅读一本书来逐字逐句地记住所有内容。然而,人脑会形成某些印象和记忆。因此,记忆模块的研究内容在于,在处理长文本的过程中,将已处理过的token存储到记忆模块中。在处理当前token时,会从记忆模块中提取与当前token相关的内容以生成输出。同时,会根据当前内容进一步更新记忆模块。这样,通过限制记忆模块的大小,可以有效地处理长文本。

  • 使用基于内存的方法传递单元状态。

  • 采用滑动窗口GED方法存储所有令牌到记忆模块。

  • 在计算当前令牌时,从记忆模块中高效查询最相关的内容以辅助理解。

  • 介绍了一种基于记忆模块的模型。

这个思想其实非常直接,在RNN中经常被使用。大家可以回想一下,RNN不就是处理一个token吗?然后我会根据这个State的状态,产生输出,并同时进行进一步的更新。在将当前单元的状态传递给下一个单元时,实际上使用的是一种基于内存的方法。我的工作核心是借鉴了这一理念,即通过滑动窗口GED作为基础,将之前遇到的所有令牌存储到一个庞大的记忆模块中。在每次计算当前令牌时,进行高效查询,从众多记忆单元中选出与当前内容最相关的,以辅助理解。这种基于记忆模块的模型有很多,这里也介绍一种。

  • 讨论了滑动窗口GD机制和Memory Based Model。

  • 这些方法源自Attention机制,目的是降低N方的复杂度。

  • 现在进入下一个阶段:Linear Attention。

然后我们就进入到了下一个阶段,即Linear Attention。这意味着我们刚才主要讨论了滑动窗口GD机制和Memory Based Model,这些方法都是从Attention机制出发,旨在降低N方的复杂度。

  • RNN是最早用于处理序列信息的神经网络模型,其处理过程是线性的,即串行处理。

  • RNN不支持并行计算,导致在现代算力丰富的环境下,GPU利用率低,计算效率不高。

  • RNN存在梯度爆炸和梯度消失的问题,限制了模型规模的增长和语言理解能力的提升。

回想一下,RNN,我们最早提出来的,在神经网络中,最早用于处理序列信息的模型,它本质上不是一个N方的模型。让我们回顾一下,我们有一个初始的隐藏状态,每次输入一个token,我们就会更新这个隐藏状态,产生一个输出。这个隐藏状态会传递给下一个token,下一个token处理时,又根据当前的隐藏状态去处理,当前的token产生当前的输出,再更新隐藏状态。然后大家可以看到这个过程,其实很显然是一个线性的过程,就是一个串行的过程。那为什么我们要继续替换它?为什么我们变成传统?对吧?然后不知道昨天大家有没有感受,其实就是核心一个点。就是说我们现在的算力非常丰富,那么RNN的这种模型有个很重要的缺陷,它不支持并行计算。比如说我们在训练的过程中,训练的过程就是说我必须先算这个token的输出,然后才能再算下一个token的输出,再算下一个token的输出。就不像attention,attention的话就是说我所有的token它的这个输出是一次性就并行能产生出来的,对吧?那这样的话其实就RNN即使我们现在的算力h100,然后未来可能什么这个会有更强的这么一个算力,我继续用RNN的话,我可能这个GPU利用率也只能到10%、20%,根本就打不完这个计算量。核心因为我根本就没法去做并行,然后这个模型也没办法变得越来越大。然后当然了,它里面还有一些非线性,还说过多导致它这个梯度爆炸、梯度消失的问题。那其实所有的这些都导致了RNN或者现在的SM的模型,我没有办法去做scaling,我没有办法把它变成一个这个10B、100B的模型,然后增加它这个模型对于语言的理解能力。

  • Attention机制的公式:基于softmax,涉及当前token与之前所有token的key进行点积,计算相似性后对v进行加权求和,过程并行但复杂度为平方级。

  • 复杂度原因:由于softmax要求每个新token与所有之前的key进行点积,导致必须存储所有context中token的key。

  • 改进方法:提出用核函数替换softmax,通过映射Qt,减少存储需求,只需存储K的核,而非所有K。

  • 进一步转化:将公式转化为类似RNN的形式,每次新token只需更新当前状态和归一化系数,显著简化计算和存储。

我们现在回到attention的公式,可以看到attention的公式其实就是一个softmax的公式,即当前的token与之前的所有token的key进行点积,然后得到相似性,相似性之后再对v进行加权求和。这个过程其实是并行的。然而,它的平方级复杂度来自于其不可线性处理的特点,即不能单独处理每个token,也不能递推处理,这主要是因为softmax的限制。因为softmax要求Qt必须与每个key进行点积,导致必须存储之前所有context中token的key,因为每个新token来时都需要进行一遍点积和softmax运算。

因此,有人提出将softmax替换掉。替换的方法是使用一个核函数,这个核函数实际上是对Qt进行映射,可以是MLP或其他函数。这个Exp的核心是计算Q和K的相似性。通过这种映射,Qt可以被提取出来。这样做的好处是,计算Qt时不需要存储所有的K,只需存储所有K的核。这样,整体的存储就不再是线性增长的,而是只需要计算一个固定大小的Q, Ki乘以Vi的矩阵的核,即一个固定大小的存储。

进一步转化,当前的state S等于St-1加上K乘以Vt,再加上一个矩阵,这个矩阵可以写成一个归一化因子Z。因此,整个公式的写法变成了一个RNN的写法。每次来一个新的token,只需要更新当前的影状态和归一化系数,然后产生输出。通过这种巧妙的变换,将softmax拆解后,整个transformer变成了一个能够写成RNN的公式。这样做的好处是显著简化了计算和存储的需求。

  • RNN的推理阶段:在推理阶段,RNN可以逐个处理token,使用固定大小的矩阵(st-1)和向量(Gt)作为存储。

  • 存储和时间复杂度:存储和时间复杂度都变为O(1),但保留了并行计算的能力。

  • 线性注意力:通过公式变换,将传统的注意力机制变为线性注意力,从而实现训练和处理的并行化。

  • 新型模型:通过替换注意力公式并重新训练,得到一个新型的线性注意力模型。

一个是我能写成RNN,意味着什么?意味着假设我是在这个做推理的阶段。在做推理的阶段,你给我一个token往里塞的时候,我就可以一个token一个token处理。然后我的这个整体的存储,就叫存st-1,就是一个固定大小的一个矩阵,一个Gt,一个固定大小的这么一个向量。对,那我的存储变成O1了,然后我的这个时间上的缩达度也变成一个O1的。但是呢,我又能保留这么一种形式,这个形式有什么好处?可以做并行。对吧,就是我这个整体上的,我的这个模型在这个圈形过程当中的计算,我还是可并行的。就是我训练可并行,处理还是O1。那就把这个attention给它变成了,所以我们现在叫linear attention,就是这么一个公式的变换。然后就从头这个把这个attention公式替换一下,然后从头开始搞一训练,能得到一个新型的模型。好,这个就是现在这个现行attention,暴火现行attention。

  • SSM(Mamba)的核心:基于State Space Model,一个控制学理论中的线性模型。

  • 模型表达形式:涉及XT(当前输入)、YT(当前输出)和HT(当前隐状态),通过ABC线性矩阵相互关联。

  • 公式优势:具有递推和离散化积分的两种表达方式。

  • 离散化过程:复杂且难以理解,涉及大量推导。

  • 应用与效果:将State Space Model应用于处理序列信息,形成RNN公式,具有并行化形式,能处理序列输入并产生序列输出。

  • Mamba2的发现:证明了SSM和Linear Tension在数学形式上的可转化性。

因此,我们进行了这样的改动。进一步地,所谓的SSM,即Mamba的工作,基于什么呢?这个过程非常抽象且复杂,但其核心是三个公式。首先,它采用了State Space Model,这是一个控制学理论中常见的线性模型。其表达形式大致如下:XT代表当前输入,YT代表当前输出,HT代表当前的隐状态。这三个变量通过ABC线性矩阵相互关联。为什么要使用这个公式?因为它具有两种表达方式的优势。你可以通过递推和离散化积分来推导出这个公式。这个离散化的过程是Mamba中难以理解的部分,涉及大量推导。由于详细讲解可能需要一个小时,我们在此略过,直接给出结论。它将State Space Model应用于当前,处理序列信息,包括输入、输出和隐状态。通过一系列变换,它能得到一个公式,即输出依赖于隐变量,隐变量由当前时间步的变量和输入得到。这形成了一个RNN公式,即输出等于隐状态和XZ的简单信息函数。具体推导请参考相关文献。这个RNN的好处是它具有并行化形式,可以处理序列输入并产生序列输出。通过将HT代入公式,可以简单地得到结果,只需计算几个系数。这些系数通过傅里叶变换和卷积,可以在并行化中进行计算。总结来说,这个思想是套用了一个控制学理论的公式,具有两种表达方式:一种是递归式的RNN写法,另一种是并行化写法,实现了可并行化的RNN。最近发布的Mamba2,大量篇幅证明了SSM和Linear Tension在数学形式上是可转化的。

这种陷阱模型,即错误模型,其优势在于复杂度。

可以被降低为ON,并且同时具备RNN所不具备的并行化特性,这是其一个显著优点。具体效果上,处理长文本时,我们仅需进行一次计算即可完成后续处理。

  • 讨论了三类模型的优缺点。

  • 提到了Full-attention模型,即全注意力机制,具有稠密的注意力特点。

  • 强调了实验结果未展示的原因,即听众可能不了解实验设定,难以理解结果。

我们再总结一下,分析一下,刚才大家一直听了一些理论,实验结果也没给大家放,因为给大家放的话大家可能没有了解实验设定,也不太理解。我们总结一下三类模型的优缺点。首先是Full-attention,是全注意力机制,就是稠密的注意力。还有一个优点呢?

  • 方法描述:存储每个token的信息以优化长文本建模。

  • 优点:在长文本建模方面效果最佳。

  • 缺点:需要巨大的计算和存储开销,不实用。

  • 应用限制:full attention只能处理几十k到几百k的场景。

  • 对比方法:Sparse attention只保留最近的token,速度快但丢失大量token信息。

因为我将每个token的信息全部存储下来,因此在长文本建模方面效果最佳。然而,这种方法的缺点是需要巨大的计算和存储开销,这在实际应用中非常不实用。因此,我们的full attention可能只能处理几十k到几百k的场景,在现有技术条件下。相比之下,Sparse attention只保留最近的token,丢弃大部分token,虽然速度快,但问题在于丢失的token信息无法保留。

  • 阅读后只能记住最后4K token的内容,之前的阅读信息丢失。

  • 线性传播SSM模型具有隐藏状态,即记忆功能。

  • 线性传播SSM模型高效,实现线性复杂度。

  • 线性传播SSM模型能不断更新记忆单元,进行信息压缩,优于稀疏传播。

它的信息会直接丢失,无法被记忆。例如,当我阅读小说时,尽管我确实从头读到尾,但读完后你问我问题,我只能回答关于最后4K token的内容,这相当于白读。这个问题非常严重。进一步来看,基于记忆的模型和线性传播或SSM,可以看到线性传播SSM实际上有一个隐藏状态,这个隐藏状态就是记忆。因此,我将它与基于记忆的模型放在一起。它的一个优点是高效,能够实现线性复杂度。而且,它比稀疏传播有一个优势,即它实际上不断更新记忆单元,因此它会进行信息压缩,将稀疏传播中原本丢弃的token压缩到一个固定的大小。这种压缩势必会有一个问题,我认为没有用的东西就是一个思想。

这些就是线性层,有些层不线性。这样的话它就保留了一个好处,虽然我现在具有n-form复杂度,但是我大部分的情况下,大部分的层都已经变成了线性的复杂度。

它未能解决复杂度问题,仅解决了复杂度前端的常数项问题。进一步探讨高效实现的具体含义,即通过何种方式达到高效。简而言之,这是关于如何实现效率的方法论。

在预训练阶段,即使我将模型设计得再复杂,仍需设定一个最大长度。例如,若将其最大长度设定为4K,但考虑到实际应用中存在大量长文本场景,如128K的文本长度。

能否将模型应用于128K的上下文中?答案是直接使用肯定不行。因为从图中可以看到,假设训练长度为4,即序列0123。

然后我就会有一个位置编码,我只见过0、1、2、3这四个位置编码,对于4、5、6的位置编码其实是未见过的,模型对未见过的东西基本上会崩溃,会失效。针对该模型无法处理的情况,目前已有多种工作致力于对位置编码进行改进。其中,较为常见的两种方法包括:

  • 降采样方法:通过将位置编码间隔缩小,如从0、1、2、3变为0.5、1、1.5、2、2.5、3,使文本长度翻倍。

  • 复用位置编码:通过重复使用每个位置编码,如0、0、1、1、2、2、3、3,同样使文本长度翻倍。

  • 训练成本降低:先训练一个较小的模型(如4K),通过调整位置编码使其在更大规模(如8K)上表现良好,再基于此模型进一步训练,从而降低训练成本。

  • 模型扩展实例:许多大型模型(如1000K)是通过从小模型(如32K)逐步扩展而来。

这种思路首先称为downscaling,即对位置编码进行降采样。例如,原本位置编码为0、1、2、3,间隔为1,通过降采样后变为0.5、1、1.5、2、2.5、3,这样文本长度立即扩大一倍,从而能处理更长的文本。另一种思路是复用位置编码,即原本每个位置只使用一次,现在每个位置近似使用两次,如0、0、1、1、2、2、3、3,同样使文本长度扩大一倍。这些方法的好处在于,以前要得到一个8K的模型,可能需要从8K开始训练,而现在可以先训练一个4K模型,通过位置编码的调整,使4K模型在8K上的表现尚可,然后基于此4K模型,再训练一小部分数据,使其成为一个有效的8K模型,从而降低训练成本。这是一种快速获得长文本模型的方法,目前市面上许多1000K的模型也是通过这种方式,从一个32K的模型逐步扩展而来。

  • 数据处理方法:从32K逐步扩展到64K,再到128K,以减少开销。

  • 序列并行方法:改进底层架构,将一个序列拆分为多个段落,每个GPU处理一段。

  • 具体应用:对于128K模型,如果GPU只能处理4K,则将64K模型分割成多个段落。

在处理数据时,我们首先将三十二K逐步扩展至六十四K,再至一百二十八K,通过这种方式可以显著减少常用本预计链的开销。另一种方法是采用序列并行的思路,从底层架构进行改进。具体来说,以前一个序列只能容纳一个GPU,现在我们将一个序列拆分为多个段落,例如,一个128K的模型,如果一个GPU只能处理4K,那么对于64K的模型,我们将其分割成多个段落,每个GPU负责计算其中的一段。

  • 实验中,计算完成后通过传递KV向量进行数据交换。

  • 实验最初在TPU上进行,3B模型原本只能处理最长10K的长度。

  • 通过新的实现方式,处理能力提升至10兆,但开销增加数百倍。

  • 这种提升相当于利用多张TPU同时处理一个任务。

一小段计算完成后,它们之间会传递KV(Key和Value)向量。通过这个实验,我们可以看到这张表显示的实现方式。原本,例如,提出者是在TPU上进行的实验,一个3B模型可能只能处理最长10K的长度。但通过这种方式,处理能力扩展到了10兆(即百万),开销增加了数百倍不止。这相当于能够利用多张TPU同时处理一个任务。

  • 当前研究集中在特定架构上,但长文本处理存在挑战。

  • 讨论了处理无限长文本的模型,如训练到128K。

  • 即使模型容量增加,如达到一兆,也无法记忆人类一生的数据。

总结一下,刚才提到的架构目前研究较多,但长文本处理仍面临诸多挑战。例如,处理无限长文本的模型,我们一直在讨论将模型训练到128K,但即便如此,128K又能如何?即使达到一兆又如何?人类一生的时间有限,它能记忆我们一生的数据吗?显然是不可能的。

在这种情况下,我们应如何设计一种面向无限长序列的模型呢?另一个关键点是高质量的训练数据。目前,长序列数据相对稀缺。因此,我们之前提到,大部分可用数据来源于网页数据。

  • 数据量虽少但质量高,如何利用这些数据训练模型是一个挑战。

  • 大模型的强大源于其大量的数据和参数,符合尺度定律(Scaling Law)。

  • 尺度定律成为许多公司和个人的第一性原理,强调模型需要不断扩大。

  • 开发大模型的策略包括积累算力、数据和选择强模型,目标是超越现有领先者如OpenAI。

数据实际上就是一个页面,可能几千个token就差不多了。然而,常规数据大部分是什么?数据。但数据的量又很少。我们如何利用这种非常少量的高质量数据来训练一个常规模型?然后就是如何进行训练和推理。好的,接下来是Scaling Law。刚才丁宁老师提到,大模型的不断增长,实际上符合一个称为尺度定律的概念,即Scaling Law。这个概念现在被很多人和公司频繁提及,我们公司的第一性原理就是尺度定律,模型需要做得越来越大。这实际上就是在讨论这个概念。快速回顾一下,现在大模型为何强大?因为它数据多,因为它参数多。核心就是这两个概念。因此,这个思路非常直接。现在假设你要开一家公司,要做非常好的大模型,思路是什么?思路很简单,就是要积累足够多的算力,足够多的数据,选择一个足够强的模型,打败OpenAI。但问题在于,具体应该怎么做呢?

如何进行训练?我的思路非常简单,即验证一个特定的事项。具体步骤如下:首先,收集大量预训练语料。这些语料来源广泛,包括但不限于Wikipedia、GitHub上的代码以及各类书籍。

然后可以从互联网上获取大量数据。然而,这些数据的质量参差不齐。虽然不能说全部不好,但确实存在许多质量低下的内容,如杂乱无章的文章和大量广告。因此,在长时间的使用过程中,需要谨慎筛选。

在互联网上存在大量质量参差不齐的数据,这些数据对模型性能可能产生负面影响。因此,从第一步开始,我们就面临着选择合适数据集的挑战。接下来,第二步是设计模型架构。通常,这一步骤涉及使用计算机来实现。

  • Decoder-Only架构的选择问题:包括模型深度与中间维度的选择、Attention Head的数量设置等。

  • 训练过程中的参数设置:涉及Language学习率的设定、每次迭代的数据处理量、学习率的调整策略等。

  • 历史训练方法的回顾:提到使用Grid Search进行暴力搜索,但这种方法在参数数量庞大时不实用。

  • 小模型与大模型的超参数适用性问题:指出小模型的超参数不一定适用于大模型,特别是在学习率设置上存在差异。

这个Decoder-Only架构有很多选择。例如,同样是10B模型,是应该增加深度还是扩大中间维度?每个Attention Head应该设置多少个?每层需要多少个Attention Head?这些问题都需要仔细考虑。接下来,我们开始编写代码并进行训练。但如何设置Language学习率?每次迭代需要处理多少数据?学习率应如何调整?每一步都充满挑战。

回顾过去,训练神经网络时,我们通常采用暴力搜索法,即对每个参数设置几个可能的值,逐一尝试。这种方法被称为Grid Search。例如,对超参数一和超参数二设置不同的值,然后测试其性能,选择性能最佳的配置。然而,这种方法并不实用,尤其是当参数数量庞大时。例如,当GPT-3出现时,其参数数量达到一千多亿,训练成本高达四百多万美元。即使只有两个超参数,每个有四个选项,组合起来也有十六种训练方法,每种方法都需要巨额资金。

另一种方法是尝试在小模型上进行实验,然后将小模型的超参数应用于大模型。但问题是,小模型的超参数是否适用于大模型?例如,在训练CNN时,学习率通常设置为0.1、0.2等较大数值,而在微调BERT模型时,学习率则降至1e-5。显然,小模型和大模型的超参数并不一致。这使得我们陷入了困境。

  • GPT-4模型提出了一种名为“predictable scaling”的概念。

  • 该概念通过一张图表展示,图表底部表示计算量,1代表GPT-4模型,0.001表示使用GPT-4千分之一的计算量。

  • 图表还展示了模型的性能,说明了GPT-4模型的性能相关信息。

那么我们该如何获得一个GPT-4模型呢?实际上,GPT-4已经给出了答案。它提出了一种名为“predictable scaling”的概念。这意味着什么呢?它提供了一张图表,图表底部展示了计算量,相当于在这个图表中,它有一个归一化的计算量。图中的1代表绿点,即GPT-4模型。而0.001则表示可以使用GPT-4千分之一的计算量来得到的结果。图表还展示了模型的表现。通过这张图,GPT-4说明了其性能的相关信息。

  • 研究采用极小规模模型评估性能,预测GPT-4表现。

  • 观察到平滑且完美的趋势,预测结果极为准确。

  • 使用GPT-4计算量的万分之一到千分之一进行预测。

  • 预测方法为“Scaling Law”,利用小模型性能预测大模型表现。

  • 该方法提高模型性能预测和优化的效率。

在本次研究中,我们采用了极小规模的模型来评估其性能,并据此预测GPT-4的表现。观察到的曲线显示了一个极其平滑且完美的趋势,最终的预测结果也极为准确。这一发现表明,我们几乎可以使用GPT-4计算量的万分之一到千分之一来预测其性能。这一预测方法被称为“Scaling Law”,即利用一系列高效的小模型性能来预测未来使用大量数据和计算资源的大模型的表现。简而言之,这一概念使我们能够更有效地进行模型性能的预测和优化。

例如,我们训练一个超大型的模型。

  • 主题介绍:今天的实验旨在揭示Scaling Law,用于评估超大模型的表现。

  • 历史背景:在大模型出现前,人们已理解Scaling Law的重要性,特别是在深度学习中,大数据驱动的重要性已被认识。

  • 数学建模:2017年百度未发表的工作首次将Scaling Law数学化,指出模型性能与参数和数据量之间存在特定关系。

  • 应用领域:实验涉及四种任务,包括机器翻译。

今天我们将进行一系列实验,以揭示一个规律,即Scaling Law。通过这一法则,我们能够了解GPT-4的表现如何,并评估训练超大模型的效果。在介绍Scaling Law之前,我们应认识到,在大模型出现之前,人们已经深刻理解了Scaling Law的概念。在深度学习时代,尚未进入预训练模型阶段时,我们就已明白大数据驱动的重要性,即数据量越大,模型规模越大,性能越好。这一认识虽广为人知,但直到2017年,百度的一项未发表工作才首次将其数学化建模。该工作指出,模型性能与模型参数和数据量之间存在一种幂律关系。稍后,我将详细解释这一关系。

  • 在机器翻译、图像分类、语言模型和语音识别等领域,少量数据即可获得一定模型表现。

  • 这种表现遵循幂律分布,可用于预测大量数据训练模型的表现。

  • OpenAI将此规律形式化并应用于大型长模型,发现Scaling Law缺乏数学支撑,是一种经验规律。

  • 验证损失是衡量模型表现的关键指标。

此外,我们还涉及了四种任务,包括机器翻译、图像分类、语言模型和语音识别等领域,我们可以观察到,即使使用非常少量的数据,也能获得一定的模型表现。基于这一表现,我们可以直接预测使用大量数据训练模型的表现,这实际上遵循一种幂律分布。然而,这一现象在当时并未引起广泛关注。直到OpenAI将这一规律更加形式化地建模,并应用于基于Transformer的大型长模型中,他们发现(并非证明)整个Scaling Law缺乏数学支撑,它实际上是一种经验规律。他们发现,所有的纵轴都是验证损失,即模型的表现。

他发现参数量的增加、数据量的增加、计算量的增加这三者和最终模型的表现呈现一个非常完美的幂律分布。所谓幂律分布,即是指L(损失)与X(参数数量、数据量或计算量)之间的关系符合幂律函数。

  • 研究探讨了变量、参数量、数据量和计算量之间的幂律关系。

  • 在对数坐标下,这些变量之间呈现出线性关系。

  • 实验表明,参数量的增加、数据量的增加和计算量的增加与模型损失之间存在良好的幂律关系。

  • 实验设计简单,主要研究参数量与模型表现之间的关系。

  • 实验中选取了不同参数量(从0.1B到0.001B)进行训练,直至达到预期效果。

在研究中,我们探讨了变量、参数量、数据量和计算量之间的关系,这被称为一个幂律。之所以这条线看起来如此直且美观,是因为在对数坐标下,两个对数之间呈现出线性关系。通过对数轴,我们可以看到从十的五次方到七次方再到九次方,这些都是在对数轴上的表示。这证明了参数量的增加、数据量的增加和计算量的增加,最终都与模型的损失(loss)呈现出良好的幂律关系。

实验设计相对简单,主要研究参数量与最终表现之间的关系。我们训练了一系列模型,以参数量为例,研究其与表现的关系。我们选取了一系列参数量,从0.1B到0.001B等不同值,进行训练,直至达到预期效果。

  • 研究中发现损失函数呈现幂律分布。

  • 实验固定数据量范围(100G到1T或10G),训练大模型以拟合数据。

  • 在模型过拟合前,通过实验得出不同参数、数据量和计算量的模型损失。

  • 发现损失遵循幂律定律,且此规律扩展到多个领域(数学、图片、文本、视频、唇语)。

  • 总结模型损失为数据分布的信息熵加上一个幂函数,包含常数sc和is,变量s。

在研究中,我们发现损失函数呈现出一种良好的幂律分布。同样地,对于数据量,我们固定在一个较大的范围内,如100G到1T的数据量,或者10G的数据量,训练一个较大的模型,使其能够较好地拟合数据。在模型过拟合之前,损失量是多少,我们通过实验得出了一系列不同参数量、不同数据量和不同计算量的模型的损失,并发现了一个幂律定律,这是一个非常好的幂律分布。

进一步地,这个规律被扩展到了多个领域,包括数学、图片、文本、视频和唇语等,都存在这样的规律。最终,我们总结出模型的损失是数据分布上的信息熵加上一个幂函数,其中sc是一个常数,is也是一个常数,s是我们的变量。

这个S可以代表三个指标,即参数数量、数据量和计算量。通过这些指标,我们可以预测一个使用实际数据训练出来的1000B模型,其效果如何。

  • 使用小规模数据(1G)训练模型。

  • 使用不同规模的模型(1B和0.1B)进行训练。

  • 通过训练得到一个函数,用于推定大型模型的表现。

  • 讨论了该函数的应用和推论。

我只需要训练一系列的数据,可能使用1G数据,然后用1B模型,甚至0.1B模型,然后训练出来一系列的数据,拟合出这个函数,最终能够推定得到我们这个非常大的模型,然后它的表现。对,然后这个就是总结的,得到了这么一个秘诀函数。那么进一步的我们这个东西要怎么用呢?然后我们就可以得到一个推论。

就是说,刚才其实提到了,假设一个场景,就是你开了这家公司。一个月之后,将发布一个产品。此时,你手头有1000张GPU,可以计算出在发布前所需的时间和资源。

  • 描述了根据算力(FLOPS)预测模型损失(loss)的过程。

  • 根据预测的loss,推算出模型大小和所需数据量。

  • 计划在一个月内训练一个10亿参数的模型,并准备相应数据。

  • 引用了DeepMind的Scaling Law,指出模型参数和数据量与计算量呈幂律关系。

截至目前,您总共拥有多少算力,即每秒浮点运算次数(FLOPS)。在一个月内,您能计算多少FLOPS。在这种情况下,您可以根据Scaling Law预测出最终模型的损失(loss)。一旦确定了最终的loss,您可以进一步推算出模型应有多大,以及应采用多少数据量。此时,您可以安排团队,例如,我推算出我需要1TB的数据,团队应开始准备这些数据。同时,我计划在一个月内训练一个10亿参数的模型,大家应按此规模进行准备。这样,我们就能有计划地、有预期地得到这个模型。这一规律实际上是由DeepMind提出的,他们在文章中进一步将这一过程公式化,即给定一个计算量(FLOPS),即我们有多少GPU资源可用多少天,然后给定一个计算量,训练出的最优模型,其参数数量和数据量都呈幂律关系,都是对数轴上的幂律关系。在这种情况下,我们可以更有效地规划和执行模型训练。

  • 随着GPU数量的增加,能够训练更大规模的模型。

  • 合理规划数据量,使训练过程经济高效且科学合理。

  • OpenBnB、一面B及实验室联合研究,成功训练miniCPM模型。

  • 通过实验预测最优模型大小和学习率,提出最优学习率调度方案。

  • 最终训练出2.4B参数的模型,展示计算量与性能的关系。

在未来的发展中,我们可以预见,随着GPU数量的增加,我们将能够训练更大规模的模型,并合理规划所需的数据量。这种做法不仅经济高效,而且科学合理。基于这一理念,OpenBnB、一面B以及我们实验室联合开展了一项研究,成功训练了一个名为miniCPM的模型。通过一系列实验,我们预测出了最优的模型大小和学习率,并提出了最优的学习率调度方案。最终,我们训练了一个2.4B参数的模型。这一成果体现在图中,图中展示了计算量与最终性能之间的关系。

  • 通过缩放定律实验,可以构建参数少且效果最优的模型。

  • 缩放定律涉及密度函数和密度分布,概念相对简单。

  • 缩放定律与涌现能力有关,但与永线能力(模型参数增加时的不平滑跃迁)存在冲突。

在相同的资源条件下,我们能够达到一个最优模型,该模型仅需较少的参数。这是通过各种缩放定律(scaling law)的实验,预测出各种参数,并进行一系列数据配比实验得出的结果。回顾第一节课,刘老师提出的概念,即通过这些缩放定律的实验,我们可以迅速构建一个知识密度最高的模型,用最小的参数达到最佳效果。缩放定律本质上涉及密度函数和密度分布,这一概念相对简单。进一步地,我们已经讨论了缩放定律与涌现能力(emergent ability)的关系。为什么会提及这一点?回顾永线能力,即随着模型参数量的增加,其表现会出现非常不平滑的跃迁,这与我们刚才提到的缩放定律存在冲突。

我们讨论的是,随着参数的增加,模型的表现应当是可预期的,而不应出现突然的提升。那么,这种现象是如何产生的呢?

我们进一步探讨Scaling Law与TaskPerformance的计算。Scaling Law拟合的是Loss,即语言模型的损失函数。

loss的概念是什么?语言模型的loss实际上是指逐个token。

这条数据出现的概率是多少?实际上,它拟合的是概率值。当前这条数据的分布,我拟合的准确性如何?

例如,以准确性(accuracy)为例,当给定一个输入时,输出是如何产生的呢?输出实际上是根据语言模型生成的分布进行一次采样得到的。这次采样得到的回答随后与标准答案进行比对,以评估准确性。

  • 问题的核心在于理解模型的表现。

  • “对”和“不对”分别对应1和0。

  • Scaling Law拟合概率分布。

  • 模型预测正确答案的概率,目标是使概率尽可能高。

  • 概率值平滑且可预测,但采样出的回答不一定正确。

  • 模型表现差时,正确回答的概率可能很低。

这个问题的核心在于,我们是否正确地理解了模型的表现。例如,当我们说“对”时,我们指的是1,而“不对”则是0。总结来说,我们已经能够大致感受到这种区别。具体来说,Scaling Law拟合的是一个概率分布。假设我们建立了一个模型来预测正确答案的概率,那么这个模型的表现就是使这个概率尽可能高。这个概率值是平滑的,可以根据损失函数(loss)来预测。然而,当我们从这个平滑的分布中采样一个回答并与目标进行对比时,问题就出现了。这是因为,尽管概率值是平滑且可预测的,但根据这个概率采样出的回答并不一定正确。例如,如果模型的表现能力很差,那么它正确回答问题的概率可能只有1%。

  • 低概率采样导致模型表现不佳,即使参数增加,初始阶段采样结果仍可能错误。

  • 当模型参数增加到一定程度(如40%),采样结果突然正确,准确率达到100%。

  • 评价指标不连续,因为只采样一次,准确率非零即一。

  • 测试集大小影响模型性能评估,小测试集难以准确反映低概率的正确率。

  • 提出的“pass until”方法通过反复采样直到答对,以评估模型对单条数据的正确率。

即使采样一次,如果概率只有1%,那么模型表现很可能为零。随着模型参数的增加,概率从1%逐渐增长到9%或8%,但采样结果仍不正确。当参数增加到40%时,再次采样,模型突然表现正确,这表明在模型参数较小时,从低概率中采样,结果大概率是错误的。随着概率值的增加,采样时发现模型表现有所提升,准确率达到了100%。这一现象的核心问题在于计算任务性能时,评价指标不连续,因为只采样一次,且准确率非零即一,存在不连续状态。此外,测试集太小也是一个问题。如果测试集很大,即使采样一次,若数据量达到1万条,即使只有1%的正确率,采样1万次也能得到100次正确回答,从而拟合出模型性能。但现实中,测试集通常较小,如只有50条数据,即使有1%的正确率,采样出正确回答的概率也很低。因此,实验室的一项工作提出了“pass until”方法,即对一条数据反复采样,直到答对一次,通过这种方式,可以大概率地了解模型对某条数据的正确率,从而推断出其性能。

在这种情况下,即使模型概率值很小,我也能得到一个值。这显示了一个区别:当模型规模较小时,我的概率值很低,因此我进行了采样。

基本上无法采样出结果,数值始终为零。然而,随着模型规模的扩大,我开始能够进行采样。因此,该模型表现出突生现象,其性能也随之提升。

  • 即使模型规模小,持续采样能观察到性能略高于零,使任务性能可预测。

  • 介绍了scaling law的两个概念:定义和与emergent ability的差距。

  • scaling law采用幂律分布,但缺乏数学证明和科学解释,主要依赖实验和假设。

在这种情况下,假设我持续采样,即使模型规模较小,也能观察到其性能略高于零。因此,我能够建模出这些极其微小的值。这使得任务性能再次变得可预测。这个概念大致如此。关于scaling law,主要介绍了两个概念:什么是scaling law,以及为什么scaling law与我们在任务性能中观察到的emergent ability存在差距。未来,我刚才提到的scaling law仍处于初步尝试阶段,许多问题仍有待解决。首先,scaling law为何采用幂律分布的函数形式,目前尚无数学证明或充分的科学解释,更多是通过实验和假设来探索。

关于预测模型表现的第二个方面,我们探讨了模型的局限性和潜在危害。例如,当前许多人担忧大型模型可能会误导我们,甚至可能通过欺诈手段从我们的钱包中骗取更多的资金,以此来训练更多的模型。

  • 模型能力的预测问题:讨论了模型能力是否可以被预测,特别是关于模型产生不良思想的可能性。

  • Predictable Scaling:提出了一种方法来预测模型何时可能产生不良思想。

  • Task Performance的可预测性:指出任务表现有时是可预测的,但并非总是如此。

  • Inverse Scaling现象:描述了一个现象,即模型规模增大时,表现反而变差,但达到一定规模后表现又变好,原因不明。

让自己变得越来越强。那么这种能力是否有可能被预测出来呢?假设模型目前较小,可能尚未具备这种能力。我们可以通过Predictable Scaling来预测模型何时会产生不良思想。此外,刚才提到的Task Performance也可能是可预测的。然而,这并非绝对,很多时候它仍然是不可预测的。这一点在GPT-4的文章中有所体现,其中提到了一个所谓的Inverse Scaling现象,即模型越大,表现反而越差。尽管模型规模不断扩大,但其预测能力却并未随之提升。然而,当GPT-4达到一定规模时,其表现又变得优异。这一现象的原因尚不明确,有待进一步探索和研究。

  • 讨论了大模型的训练过程,包括预训练和Post Training。

  • 目前主要对预训练阶段进行了Scaling研究。

  • 提出了对SFT和RHF阶段进行预测的可能性,以评估训练后的表现。

  • 提供了相关阅读材料供会后深入研究。

最后一个部分,我们刚才进行了交流,大模型的训练包括预训练和Post Training。目前我们仅对预训练阶段进行了Scaling研究,那么对于SFT和RHF阶段,我们是否可以同样进行预测,以评估这些数据训练后的表现。这是我们今天与郑浩老师讨论的四个部分中的一些重要阅读材料,大家可以在会后进行深入阅读。

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

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

相关文章

KubeSphere安装mysql8.4.0

背景 KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,完全开源,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。 安装组件前提&am…

Metasploit渗透测试之攻击终端设备和绕过安全软件

概述 在之前,重点讨论了针对服务器端的利用。但在当下,最成功的攻击都是针对终端的;原因是,随着大部分安全预算和关注都转向面向互联网的服务器和服务,越来越难找到可利用的服务,或者至少是那些还没有被破…

阿里商品发布框架如何覆盖海量规则

1688商品发布系统升级发品框架GPF,面对商品模型复杂度极高,发布的海量场景、多重业务逻辑如何覆盖? 本文从手工测试到自动化测试,以及完善的质量保障方案一一解答。 1、项目背景 1688商品发布系统运行多年,架构逐步…

OFDM学习-IP核学习-FIFO IP核和FFT IP核在vavido中的配置以及使用

FIFO IP核和FFT IP核在vavido中的配置以及使用 前言一、FFT IP核配置过程二、FIFO IP核配置过程总结 前言 记录一下OFDM学习中遇到的ip核使用方法,个人之前主要用Quatus,之前用ip核也比较少,记录一下配置过程吧以及一些参数的含义&#xff0…

【linux】Microsoft Edge 的 Bookmarks 文件存储位置

在 Linux 系统中,Microsoft Edge 的书签(Bookmarks)文件存储在用户的配置目录下。具体路径通常如下: ~/.config/microsoft-edge/Default/Bookmarks说明: 路径解释: ~ 表示当前用户的主目录。.config 是一个…

代替AD作为身份认证组件,深信服零信任aTrust与宁盾身份目录实现互操作

9月25日,经深信服科技股份有限公司和上海宁盾信息科技有限公司共同严格测试:宁盾身份目录服务软件能够与深信服零信任访问控制系统 aTrust 兼容对接运行,双方相互兼容,共同为企事业单位提供身份和零信任管理需求。 本次测试包含了…

笔记整理—linux网络部分(2)Linux网络框架

前文说过,在OSI中将网络分为7层,这是理论上将其分为7层,但实际上可以将其分为4层。如TCP协议就是将其分为4层。理论只是提出一种指导意见,但不是行业范本。 驱动层只关系有没有接到包,不关心包经过多少次转发&#xff…

Java 实战虚拟机 进阶 (一 万字)

实战 Java 虚拟机-高级篇 什么是 GraalVM GraalVM 是 Oracle 官方推出的一款 **高性能JDK,**使用它享受比 OpenJDK 或者 OracleJDK 更好的性能。 GraalVM 的官方网址:https://www.graalvm.org/官方标语:Build faster, smaller, leaner appli…

搭子小程序:全新在线找搭子,满足社交

搭子作为一种新的社交方式,为大众带来的各种陪伴型的社交模式,不管是饭搭子、健身、遛狗、学习等,都可以找到适合自己的搭子。搭子主打各个领域的陪伴,双方都能够在社交相处中保持着边界感,不涉及情感纠葛等&#xff0…

群晖前面加了雷池社区版,安装失败,然后无法识别出用户真实访问IP

有nas的相信对公网都不模式,在现在基础上传带宽能有100兆的时代,有公网代表着家里有一个小服务器,像百度网盘,优酷这种在线服务都能部署为私有化服务。但现在运营商几乎不可能提供公网ip,要么自己买个云服务器做内网穿…

【实战篇】用SkyWalking排查线上[xxl-job xxl-rpc remoting error]问题

一、组件简介和问题描述 SkyWalking 简介 Apache SkyWalking 是一个开源的 APM(应用性能管理)工具,专注于微服务、云原生和容器化环境。它提供了分布式追踪、性能监控和依赖分析等功能,帮助开发者快速定位和解决性能瓶颈和故障。…

矢量线段摆正-二维旋转

用途:通过一些算法,生成了一些矢量线段,但是没有保持绝对的水平、垂直,需要校正。 如下图所示,白色线为初始的矢量线段,只是能达到大致水平,红色线段为校正后,此时,红色…

Hive优化:Hive的执行计划、分桶、MapJoin、数据倾斜

文章目录 1. hive的执行计划1.1 为什么使用EXPLAIN1.2 使用EXPLAIN的步骤1.3 EXPLAIN在什么场合使用 2. 分桶2.1 为什么要使用分桶 3. Map Join3.1 Map Join3.1.1 大小表关联3.1.2 不等连接 3.2 Bucket-MapJoin3.2.1 作用3.2.2 条件 3.3 SMB Join3.3.1 作用 4. 数据倾斜4.1 表连…

nginx过滤模块怎么生效的

在nginx中,如果你要开发一个过滤模块,config中必须要加 HTTP_FILTER_MODULES$HTTP_FILTER_MODULES xxx 否则,即使在postconfiguration回调中加了ngx_http_top_header_filtermy_xxxx_filter_handle,最终my_xxxx_filter_handle也不…

c语言必备知识-->文件操作(内存与磁盘交互)

引言:本篇文章主要的内容是关于c语言文件相关的知识点,包括相应的代码实操,及文件操作时常用的接口讲解。 本篇文章用来解决如何将内存中的数据永久保存到磁盘当中,并且如何从磁盘读取内容放到我们内存当中。 我将讲解如下知识点: 1:文件(是什么,为什么要用,) 2:常用…

《Spring Cloud Config与Bus整合实现微服务配置自动刷新》

目录 Config与Bus整合自动刷新步骤1:安装RabbitMQ并启动RabbitMQ的安装 步骤2:创建项目创建Eureka Server创建config-server 步骤3: 添加依赖步骤4:Config Client步骤5:测试运行问题一问题二 总结 Config与Bus整合自动…

Java爬虫:从入门到精通实战指南

在信息技术飞速发展的今天,数据已成为最宝贵的资源之一。Java作为一种成熟且功能强大的编程语言,不仅在企业级应用开发中占据主导地位,也成为了编写爬虫程序的理想选择。Java爬虫能够自动化地从网页或API中提取数据,为数据分析、机…

一篇文章带你走进Java集合中的HashMap

文章目录 一、了解常见的数据结构二叉平衡树AVL树红黑树 二、HashMap的实现原理HashMap的jdk1.7和jdk1.8有什么区别? 三、HashMap put的具体流程四、HashMap的扩容机制五、HashMap的寻址算法**第一步:** 计算对象的hashCode第二步: 二次哈希第…

基于springboot的学习平台系统

springbootjava学习平台作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的,前后端分离。 开发语言:Java数据库&#xff1a…

2024第七届全国大学生数学竞赛暨数学精英挑战赛第二场,第一场获奖名单已公布

第七届全国大学生数学竞赛暨数学精英挑战赛(原网络挑战赛)由浙江应用数学研究会组织举办。自2018年起已经连续举办6届,吸引来自全国900余所高校选手参赛,近三年累计参赛人数1.5万人。2024年,第七届全国大学生数学竞赛暨…