返回介绍

数学基础

统计学习

深度学习

工具

Scala

四十八、GPT-NeoX-20B [2022]

发布于 2023-07-17 23:38:25 字数 58054 浏览 0 评论 0 收藏 0

  1. 在过去的几年里,围绕自然语言处理的大型语言模型(large language model: LLM )的研究出现了爆炸性增长,主要是由基于Transformer 的语言模型的令人印象深刻的性能所推动,如 BERTGPT-2GPT-3T5。这些研究的最有影响的成果之一是:发现大型语言模型的性能和参数数量呈现可预测的幂律(power law )关系,其中诸如宽深比( width/depth ratio )等结构细节在很大范围内对性能的影响很小(《Scaling laws for neural language models》)。其结果是大量的研究集中在将 Transformer 模型扩展到更大的规模上,从而产生了超过 500B 参数的稠密模型,这是在几年前几乎无法想象的里程碑。

    稠密模型指的是类似于 GPT-3 这种,没有采用 mixture-of-experts 的模型。

    今天,有几十个公开宣布的大型语言模型,最大的 LLM 的参数比 GPT-2 多两个数量级,即使在这个规模,也有近十种不同的模型。然而,这些模型几乎都是受保护的大型组织的知识产权,并且被限制在商业 API ,只能根据 request 来提供使用,或者根本不能供外部人员使用。据我们所知,唯一免费公开的比 GPT-2 更大的稠密的自回归语言模型是 GPT-Neo2.7B 参数)、GPT-J-6BMegatron-11BPangu-a-13B 以及最近发布的 FairSeq 模型(2.7B6.7B13B参数)。

    在论文 《GPT-NeoX-20B: An Open-Source Autoregressive Language Model》 中,作者介绍了 GPT-NeoX-20B ,一个 20B 参数的开源的自回归语言模型。作者通过 permissive license 向公众免费开放模型权重,其动机是相信开放 LLM 对于推动广泛领域的研究至关重要,特别是在人工智能安全、机制上的可解释性、以及研究 LLM 能力如何扩展等方面。LLM 的许多最有趣的能力只有在超过一定数量的参数时才会涌现,而且它们有许多属性根本无法在较小的模型中研究。虽然安全问题经常被作为保持模型权重私有化的理由,但作者认为这不足以防止滥用,而且对于能够获得 SOTA 语言模型的少数组织之外的研究人员来说,这在很大程度上限制了探究和研究 LLM 的能力。此外,作者在整个训练过程中以均匀的 1000 步的间隔提供 partially trained checkpoint 。作者希望通过免费提供在整个训练过程中的广泛的 checkpoint ,从而促进对 LLMtraining dynamics 的研究,以及上述的人工智能安全性和可解释性等领域的研究。

    在研究 GPT-NeoX-20B 的过程中,作者发现了几个值得注意的现象,与已有的文献不一致:

    • 作者在一个包含重复数据的数据集上进行训练,训练超过一个 epoch ,但没有看到性能损失的证据。

    • 虽然 《 Measuring massive multitask language understanding》 声称, few-shot prompting 并不能提高他们任务的性能,但作者发现,这实际上是 GPT-3 特有的现象,并不适用于 GPT-NeoX-20BFairSeq 模型。

    • 最后,作者发现 GPT-NeoX-20B 是一个强大的 few-shot learner ,与规模相当的 GPT-3 模型和 FairSeq 模型相比,从 few-shot examples 中获得的性能提升要大得多。作者看到 GPT-J-6B 也是如此,作者假设这可能是由于 GPT-J-6B 选择了相同的训练数据。

    最后,训练和评估代码在 https://github.com/EleutherAI/gpt-neox 上公开,也可以在那里找到下载整个训练过程中模型权重的链接。

48.1 模型设计和实现

  1. GPT-NeoX-20B 是一个 autoregressive transformer decoder model ,其结构基本遵循 GPT-3 的结构,但有一些明显的改变,如下所述。我们的模型有 20B 参数,其中 19.9B 参数是"non-embedding" 参数,《Scaling laws for neural language models》认为这是用于 scaling laws analysis 的适当数量。我们的模型有 44 层,隐层维度大小为 6144 ,有 64head

48.1.1 模型架构

  1. 虽然我们的架构与 GPT-3 基本相似,但也有一些明显的区别。在本节中,我们对这些不同之处进行了 high-level 的概述,但请读者参考 GPT-3 的原始论文以了解模型架构的全部细节。我们的模型架构几乎与 GPT-J 相同,但我们选择使用 GPT-3 作为参考,因为没有关于 GPT-J 设计的典型出版物作为参考。

  2. Rotary Positional Embeddings:我们使用 rotary embedding《RoFormer: Enhanced transformer with rotary position embedding》),而不是 GPT 模型中使用的 learned positional embedding ,这是基于我们之前在训练 LLM 中使用 rotary embedding 的积极的经验。 rotary embeddingstatic relative positional embedding 的一种形式。简而言之,它们扭曲了emebdding 空间,使位置m$ m $ 的 token 对位置n$ n $ 的 token 的注意力线性地依赖于mn$ m-n $ 。

    更正式地说,标准的多头注意力方程为:

    (14)softmax(1dn,m(Wqxm)(Wkxn))

    其中:

    • xm$ \mathbf {\vec x}_m $ 和xn$ \mathbf {\vec x}_n $ 分别为位置m$ m $ 和位置n$ n $ 的 token embedding

      注意:通常而言,通过在 token embedding 上添加 positional embedding 从而得到xm$ \mathbf{\vec x}_m $ 和xn$ \mathbf{\vec x}_n $

    • Wq,Wk$ \mathbf W_q, \mathbf W_k $ 分别为 query 投影矩阵和 key 投影矩阵。

    rotary embedding 将这个方程修改为:

    (15)softmax(1dn,mxmWqRΘ,(nm)dWkxn)

    其中:RΘ,(nm)d$ \mathbf R_{\Theta,(n-m)}^d $ 为一个d×d$ d\times d $ 的块对角矩阵(block diagonal matrix ),其中第i$ i $ 个 block 是一个 2D rotation,旋转角度为xθi$ x\theta_i $ 。Θ={θi=100002i/d0i(d1)/2}$ \Theta=\left\{\theta_i = 10000^{-2i/d}\mid 0\le i\le (d-1)/2\right\} $ 为超参数。

    (16)Rm=[cos(mθ1)sin(mθ1)0000sin(mθ1)cos(mθ1)000000cos(mθ2)sin(mθ2)0000sin(mθ2)cos(mθ2)000000cos(mθd/2)sin(mθd/2)0000sin(mθd/2)cos(mθd/2)]Rd×d

    其中,m$ m $ 为绝对位置。

    虽然 《RoFormer: Enhanced transformer with rotary position embedding》rotary embedding 应用于整个 embedding 向量,但我们遵从 《GPT-J-6B: A6 billion parameter autoregressive language model》,而是只将 rotary embedding 应用于 embedding 向量维度的前 25% 。我们的初步实验表明,这在性能和计算效率上取得了最佳平衡。

  3. 并行计算 Attention Layer + FF Layer:我们并行地计算注意力层和前馈层(Feed-Forward: FF ),并将结果相加,而不是串行地运行。这主要是为了提高效率,因为在 op-sharding 的情况下,每个残差加法(residual addition )都需要在前向传递和后向传递中进行一次 all-reduce《Megatron-LM: Training multi-billion parameter language models using model parallelism》)。通过并行计算 AttentionFF ,可以在执行单个 all-reduce 之前对结果进行局部规约(reduce )。在Mesh Transformer JAX 中,这导致了 15% 的吞吐量增加,同时在训练的早期,与串行地运行它们的损失曲线相当。

    由于我们代码中的一个疏忽,我们无意中应用了两个独立的 Layer Norm ,而不是像 GPT-J-6B 那样使用一个 tied layer normtied layer norm 的方式为:

    (17)x+Attn(LN1(x))+FF(LN1(x))

    相反,我们的代码实现为:

    (18)x+Attn(LN1(x))+FF(LN2(x))

    不幸的是,这只是在我们训练到很远的时候才注意到,无法重新开始。随后的小规模实验表明,untied layer norm 对性能没有影响,但为了透明性起见,我们还是希望强调这一点。

  4. 初始化:对于残差前的 Feed-Forward output layers ,我们使用了 《Mesh-Transformer-JAX: Model parallel implementation of transformer languagemodel with JAX》 中介绍的初始化方案,2Ld$ \frac{2}{L\sqrt d} $ 。这可以防止 activation 随着深度和宽度的增加而增长,分子为 2 可以补偿注意力层和前馈层被组织为并行的事实。

    对于所有其他层,我们使用 《Transformers without tears: Improving the normalization of self-attention》small init 方案2d+4d$ \sqrt{\frac{2}{d + 4d}} $ 。

  5. 所有的 Dense 层:虽然 GPT-3 使用 《Generating long sequences with sparse transformers》介绍的技术交替使用 dense 层和 sparse 层,但我们却选择完全使用 dense 层来降低实现的复杂性。

48.1.2 其它

  1. 软件库:我们的模型是使用建立在 MegatronDeep-Speed基础上的代码库进行训练的,以促进高效和直接地训练具有数百亿个参数的大型语言模型。我们使用官方的 PyTorch v1.10.0 发布的二进制包,用 CUDA 11.1 编译。该软件包与 NCCL 2.10.3 捆绑在一起,从而用于分布式通信。

  2. 硬件:我们在 12Supermicro AS-4124GO-NART 服务器上训练 GPT-NeoX-20B ,每台服务器有 8NVIDIA A100-SXM4-40GB GPU ,并配置了两个 AMD EPYC 7532 CPU 。所有的 GPU 都可以通过四个 ConnectX-6 HCA 中的一个直接访问 InfiniBand switched fabric ,从而用于 GPU Direct RDMA 。两个 NVIDIA MQM8700-HS2R 交换机通过 16 条链路连接,构成了这个InfiniBand 网络的主干,每个节点的 CPU socket 有一条链路连接到每个交换机。

    下图显示了一个节点的简化概览,该节点为训练而配置。

48.2 训练

  1. 由于对 20B 参数的模型进行超参数调优的难度很大,我们选择使用 GPT-3 的超参数值来指导我们对超参数的选择。

    • 由于 GPT-3 没有以我们的 20B 规模训练一个模型,我们在他们的 13B 模型和 175B 模型的学习率之间进行插值,得出的学习率为 0.97e-5

    • 基于较小的模型上的实验结果,我们选择 0.01weight decay

    • 为了达到更高的训练吞吐量,我们选择使用与 GPT-3175B 模型相同的 batch size:大约 3.15M token ,或者 1538 个上下文其中每个上下文 2048 token (即,batch size = 1538,序列长度 2048),总共训练 150k 步,采用余弦学习率调度从而在训练结束时衰减到原始学习率的 10%

    • 我们使用 AdamW 优化器,其中(β1,β2)=(0.9,0.95),ϵ=108$ (\beta_1,\beta_2) = (0.9, 0.95), \epsilon = 10^{-8} $ 。我们用 ZeRO optimizer 来扩展 AdamW,通过将 optimizer states 切分到各台 worker机器上从而来减少内存消耗。

    • 由于这种规模的模型权重和优化器状态不适合在单个 GPU 上使用,我们使用 Megatron-LM 介绍的张量并行方案、与 PipeDream 介绍的流水线并行方案相结合,从而在一组 GPU 上分配模型。

    • 为了训练 GPT-NeoX-20B ,我们发现,考虑到我们的硬件设置,分配模型的最有效方式是将张量并行大小设置为 2 、将流水线并行大小设置为 4 。 这允许最密集的通信过程,张量并行、流水线并行发生在一个节点内,而数据并行通信发生在节点边界上。通过这种方式,我们能够实现并保持每个 GPU117 TFLOPS 的效率。

  2. 训练数据:GPT-NeoX-20B 是在 Pile上训练的,这是一个专门为训练大型语言模型而设计的大规模的数据集。它由 22 个数据源的数据组成,粗略地分为 5 个类别:

    • 学术写作: Pubmed Abstracts and PubMed CentralarXivFreeLawUSPTO BackgroundsPhilPapersNIH Exporter

    • 网络爬取和互联网资源:CommonCrawlOpenWebTextStackExchangeWikipedia (English)

    • 散文: BookCorpusBibliotikProject Gutenberg

    • 对话: Youtube subtitlesUbuntu IRCOpenSubtitlesHacker NewsEuroParl

    • 其它杂项: GitHubDeepMind Mathematics datasetEnron Emails

    总的来说,Pile 数据由超过 825GB 的原始文本数据组成。数据来源的多样性反映了我们对通用语言模型的渴望。某些数据子集被升采样以获得更平衡的数据分布。相比之下,GPT-3 的训练数据包括网络爬取(web-scrape )数据、books 数据集、Wikipedia 。当把这项工作中的结果与 GPT-3 进行比较时,训练数据几乎肯定是最大的、已知的 unknown factor 。关于 Pile 的全部细节可以在技术报告 《The Pile: An 800GB dataset of diverse text for language modeling》 和相关数据表 《Datasheet for the Pile》 中找到。

    特别值得注意的是,Pile 包含了 StackExchange 的爬取,并被预处理成 Q/A 形式。关于微调数据的句法结构对下游性能的影响,有大量的、不断增长的工作。虽然到目前为止还没有专注于 prompted pretraining 的系统工作,但最近的工作 《Neural language models are effective plagiarists》 观察到,PileStackExchange 子集的格式化( formulation )似乎严重影响了 code generation

  3. Tokenization:对于 GPT-NeoX-20B ,我们使用了与 GPT-2 类似的 BPE-based tokenizer ,总的词表规模同样为 50257

    tokenizer 有三个主要变化:

    • 首先,我们在 Pile 的基础上训练一个新的 BPE tokenizer ,利用其不同的文本来源来构建一个更通用的 tokenizer

    • 第二,GPT-2 tokenizer 将字符串开始处的 tokenization 视为 non-space-delimited token 。与 GPT-2 tokenizer 相比,GPTNeoX-20B tokenizer 无论如何都要应用一致的 space delimitation。这解决了关于 tokenization input 的前缀空格符存在与否的不一致问题。 下图中可以看到一个例子。

    • 第三,我们的 tokenizer 包含用于重复空格符的 token ,其中重复空格符的数量从 1 个空格到 24 个空格。这使得 GPT-NeoX-20B tokenizer 能够使用较少的 token 对具有大量空格的文本进行 tokenize ,例如,程序源代码、或 arXiv LATEX 源代码文件。

      例如,NeoX-20B 可以将连续的 4 个空格视为一个 token ,这在 python 代码中经常见到。相比之下,GPT-34 个空格视为四个 token,每个空格一个 token

    GPT-NeoX-20B tokenizerGPT-2 tokenizer50257token 中共享 36938 个,重叠度为 73.5% 。总体而言,GPT-NeoX-20B tokenizer 使用更少的 token 数量来 tokenize Pile 验证集,但是使用了更多的 tokentokennize C4 数据集。

    tokenization 对比的例子(全部的示例参考论文附录):

  4. 数据重复:在过去的两年里,训练自回归语言模型时的标准做法是只训练一个 epoch 。最近的研究声称,看到了更进一步地对训练数据去重的好处。特别是,除了 GPT-3Jurassic-1 之外,每个公开的大型语言模型要么使用某种形式的数据去重,要么没有足够详细地讨论训练数据被做了什么处理。

    Pile 最初被制作时,唯一存在的比 GPT-NeoX-20B 更大的语言模型是 GPT-3 ,它对其训练数据的高质量子集进行了升采样。随后 Pile 被发布,由于缺乏大规模消融实验的资源、并且在较小的数据规模上缺乏明显的影响,我们选择按原样使用 Pile 。如下图所示,即使在 20B 的参数规模下,我们也没有看到跨越一个 epoch 边界后,测试损失和验证损失出现恶化。

    不幸的是,那些声称从数据去重中看到改进的论文,没有一篇论文发布了证明这一点的 trained models ,这使得复现和确认他们的结果很困难。《Deduplicating training data makes language models better》 发布了他们使用的数据去重的代码,我们打算在未来用它来更详细地探索这个问题。

    值得注意的是,即使在 losstask evaluation 方面没有改善,但仍有令人信服的理由为任何投入生产的模型对训练数据去重。具体而言,系统分析表明,在减少训练数据的泄漏方面有很大的好处。

48.3 实验

  1. 为了评估我们的模型,我们使用 EleutherAI Language Model Evaluation Harness《A framework for few-shot language model evaluation》),这是一个用于语言模型评估的开源代码库,支持许多模型的 API 。由于我们的目标是使一个强大的模型可以公开访问,我们与至少有 10B 个参数可以公开访问的英语语言模型进行比较。我们与 OpenAI API 上的 GPT-3 模型、开源的FairSeq 稠密模型、以及 GPT-J-6B 进行比较。我们不与 T5 或其衍生模型进行比较,因为我们的评估方法假定这些模型是自回归的。虽然有一个已经公开发布的 Megatron-11B checkpoint ,但发布的代码是不能用的,我们也没能让模型运行起来。我们没有与任何 mixture-of-experts: MOE 模型进行比较,因为没有任何公开的 MoE 模型能达到与 10B 参数的稠密模型相当的性能。

    GPT-3 API 模型的规模没有得到官方确认,但我们遵循《A framework for few-shot language model evaluation》 ,认为 GPT-3 模型的规模为 350M (Ada)1.3B (Babbage)6.7B (Curie)175B (Da Vinci) 。我们将 GPT-J-6BGPT-NeoX-20B 都归入 GPT-NeoX 模型的范畴,因为这两个模型都是用相同的架构训练的,并且是在同一个数据集上训练的。然而,我们用虚线将它们连接起来,以反映这两个模型不是像 FairSeqGPT-3 模型那样在两个不同的尺度上训练的同一模型,它们是用不同的代码库、不同的 tokenizer 、以及不同数量的 token 来训练的。

    我们报告了两个 baseline :人类水平性能、随机性能。所有的图表都包含代表两个标准差的 error bar ,表明每个点周围的 95% 的置信区间。对于一些图,标准差非常小,以至于区间不明显。

  2. 我们在一组不同的 standard language model evaluation dataset 上评估我们的模型。我们将评估数据集为三个主要类别:自然语言任务、基于知识的高级任务、以及数学任务。我们对 GPT-J-6BGPT-NeoX-20BFairSeq 模型进行了 zero-shotfive-shot 评估,但由于资金限制,只对 GPT-3 模型进行了 zero-shot 评估。由于篇幅限制,这里只展示了一个有代表性的结果子集,其余的在原始论文的附录中。

    • 自然语言任务:我们在一系列不同的 standard language model evaluation dataset 上评估我们的模型:ANLIARCHeadQA (English)HellaSwagLAMBDADALogiQAOpenBookQAPiQAPROSTQA4MRESciQTriviaQAWinogrande、以及Winograd Schemas Challenge (WSC)SuperGlue 版。

    • 数学任务:解决数学问题是一个在人工智能研究中有着悠久历史的领域,尽管大型语言模型在算术任务、以及用自然语言表述的数学问题上往往表现得相当糟糕。我们对 MATH 测试数据集以及 GPT-3 介绍的数字算术问题进行评估。请注意,MATH 测试数据集通常都会进行微调,但由于计算上的限制,我们在这里只对模型进行 zero-shotfive-shot 评估。

    • 基于知识的高级任务:我们还对我们的模型回答事实问题( factual question )的能力感兴趣,这种事实问题需要高级知识。为了做到这一点,我们使用了 《Measuring massive multitask language understanding》 开发的各种不同领域的选择题数据集。按照这个数据集的通常做法,我们聚焦于按学科领域聚合的结果: 如下图所示,包括人文、社会科学、STEM 和杂项。我们从 《Measuring massive multitask language understanding》five-shot GPT-3 结果出发,报告了 five-shot 的性能,以便与以前的工作相比较。

  3. 自然语言任务的结果:虽然 GPT-NeoX-20B 在某些任务(如 ARCLAMBADAPIQAPROST)上优于 FairSeq 13B,但在其他任务(如 HellaSwagLogiQAzero-shot)上表现不佳。总的来说,在我们所做的 32 项评估中,我们在 22 项任务中表现优异,在 4 项任务中表现不佳,在 6 项任务中处于误差范围之内。

    到目前为止,我们最弱的表现是在 HellaSwag上,在 zero-shotfive-shot 的评估中,我们的得分都比 FairSeq 13B 低四个标准差。同样,GPT-JHellaSwag 上的表现在 zero-shot 中比 FairSeq 6.7B 低三个标准差,在 five-shot 中低六个标准差。我们发现这种巨大的性能损失在很大程度上是无法解释的;虽然我们最初认为 Pile 中大量的非散文的数据子集是罪魁祸首,但我们注意到 GPT-JGPT-NeoX 在非常相似的 Lambada 任务上比FairSeq 模型的性能要好得多,而且差距大致相同。

  4. 数学:虽然 GPT-3FairSeq 模型在算术任务上的表现通常相当接近,但它们的表现一直被 GPT-JGPT-NeoX 所超越。我们猜测,这可以追溯到训练数据中普遍存在的数学方程,但我们警告说,人们不应该认为这意味着在 Pile 上训练会产生更好的 out-of-distribution 的算术推理。《Impact of pretraining term frequencies on few-shot reasoning》 表明,Pile 中的数学方程的频率与 GPT-J 在该方程上的表现有很强的相关性,我们认为这在 GPT-NeoX 20BFairSeqGPT-3 中没有理由不存在。遗憾的是,我们无法研究 FairSeqGPT-3 模型中的这种效应,因为作者没有公布他们的训练数据。

  5. 基于知识的高级任务:虽然 GPT-NeoXFairSeq 模型在 five-shot 的情况下,与 GPT-3 相比,在 MMLU 上都表现出优势的性能(Figure 7 ),但在 zero-shot 的情况下,它们的性能要接近很多( 原始论文附录中的Table 10 ~ 13 )。《Measuring mathematical problem solving with the MATH dataset》声称发现,相对于 zero-shotfew-shot 并不能提高性能,但他们只研究了 GPT-3 。相比之下,我们发现 GPT-NeoXFairSeq 模型在只有 5 个样本的情况下确实有很大的改善。我们认为这是一个警告,不要只根据一个模型得出关于评价指标的强烈结论,并鼓励研究人员开发新的 evaluation benchmark 从而利用多个不同类别的模型,以避免将他们的结论过度适用于一个特定的模型。

  6. 强大的 Few-Shot Learning:我们的实验表明,GPT-J-6BGPT-NeoX-20Bfews-hot 评估中获得的好处大大超过 FairSeq 模型。当从 0-shot 评估到 5-shot 评估时,GPT-J-6B 提高了 0.0526GPT-NeoX-20B 提高了 0.0598 ,而 FairSeq 6.7B13B 模型分别提高了 0.00510.0183 。这一结果在统计学上是显著的,并且对 prompting 的扰动是鲁棒的。虽然我们目前对此没有特别的解释,但我们认为这是对我们模型的强烈推荐。虽然由于资金限制,我们没有对 GPT-3 进行系统的 five-shot 评估,但 Table 10 ~ 13 (参考原始论文中的附录)和 Figure 7 中显示的性能变化进一步支持了 GPT-J-6BGPT-NeoX-20B 能够从 five-shot examples 中获得明显的收益的说法。

48.4 讨论

  1. 局限性:

    • 训练的最佳超参数:超参数调优是一个昂贵的过程,对于几十亿参数的模型来说,全面进行调优往往是不可行的。由于上述局限性,我们选择了根据较小规模的实验、以及根据以前发表的工作( GPT-3 )的超参数的插值(针对我们的模型规模),从而选择超参数。然而,我们的模型架构和 training setup 的几个方面(包括数据和 tokenizer),都与 GPT-3 有很大分歧。因此,几乎可以肯定的是,我们的模型所使用的超参数不再是最佳的,而且有可能从来都不是最佳的。

    • 缺乏 Coding Evaluation:在这个模型的开发过程中,我们做出的许多设计选择都是为了提高 coding task 的性能。然而,我们低估了现有 coding benchmark《Evaluating large language models trained on code》)的难度和成本,因此无法在该领域评估模型。我们希望在未来能做到这一点。

    • Data Duplication:最后,缺乏数据去重也可能对下游性能产生影响。最近的工作表明,训练数据的去重会对困惑度产生很大影响(《Deduplicating training data makes language models better》)。虽然我们的实验没有显示出这种迹象,但由于有很多研究者发现了相反的结果,所以很难否定数据去重。

  2. 发布一个 20B 参数的 LLM:目前的研究现状是,大型语言模型只是人们训练和发表文章的东西,但并没有实际发布。据我们所知,GPT-NeoX-20B 是有史以来公开发布的最大、性能最强的稠密语言模型。各个团体对不发布大型语言模型提出了各种理由,但最主要的理由是:宣称公众对 LLM 的访问会造成伤害。

    发布这个模型是我们让研究人员广泛使用 GPT-NeoX-20B 的工作的开始,而不是结束。由于模型的大小,在两个 RTX 3090Ti 或单个 A6000 GPU 上进行推理是最经济的,而微调需要明显更多的计算。真正促进 LLM 的广泛使用意味着除了模型本身之外,还要促进 computing infrastructure 的广泛使用。我们计划通过继续努力降低我们模型的推理成本,以及与研究人员合作,提供他们在我们的模型上进行实验所需的 computing infrastructure ,从而在这个问题上取得进展。我们强烈鼓励那些对研究 GPT-NeoX-20B 感兴趣、但缺乏必要的 infrastructure 的研究人员主动与我们联系,讨论我们如何为你助力。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文