当前位置: 首页 > news >正文

50强网站建设公司想要做个公司网站

50强网站建设公司,想要做个公司网站,天眼查企业法人,外贸soho自己建站BLOOM#xff1a;一个176B参数且可开放获取的多语言模型《BLOOM: A 176B-Parameter Open-Access Multilingual Language Model》论文地址#xff1a;https://arxiv.org/pdf/2211.05100.pdf 相关博客 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍 【自然…BLOOM一个176B参数且可开放获取的多语言模型《BLOOM: A 176B-Parameter Open-Access Multilingual Language Model》论文地址https://arxiv.org/pdf/2211.05100.pdf 相关博客 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍 【自然语言处理】【大模型】BLOOM一个176B参数且可开放获取的多语言模型 【自然语言处理】【大模型】PaLM基于Pathways的大语言模型 【自然语言处理】【chatGPT系列】大语言模型可以自我改进 【自然语言处理】【ChatGPT系列】WebGPT基于人类反馈的浏览器辅助问答 【自然语言处理】【ChatGPT系列】FLAN微调语言模型是Zero-Shot学习器 【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里 【自然语言处理】【ChatGPT系列】Chain of Thought从大模型中引导出推理能力 【自然语言处理】【ChatGPT系列】InstructGPT遵循人类反馈指令来训练语言模型 【自然语言处理】【ChatGPT系列】大模型的涌现能力 一、简介 ​ 预训练语言模型已经成为了现代自然语言处理pipeline中的基石因为其在少量的标注数据上产生更好的结果。随着ELMo、ULMFiT、GPT和BERT的开发使用预训练模型在下游任务上微调的范式被广泛使用。随后发现预训练语言模型在没有任何额外训练的情况下任务能执行有用的任务进一步证明了其实用性。此外根据经验观察语言模型的性能随着模型的增大而增加(有时是可预测的有时是突然的)这也导致了模型规模越来越多的趋势。抛开环境的问题训练大语言模型(LLM)的代价仅有资源丰富的组织可以负担的起。此外直至最终大多数LLM都没有公开发布。因此大多数的研究社区都被排除在LLM的开发之外。这在不公开发布导致的具体后果例如大多数LLM主要是在英文文本上训练的。 ​ 为了解决这些问题我们提出了BigScience Large Open-science Open-access Multilingual Language Model(BLOOM)。BLOOM是在46种自然语言和13种编程语言上训练的1760亿参数语言模型其是由数百名研究人员合作开发和发布的。训练BLOOM的计算力是由来自于法国公共拨款的GENCI和IDRIS利用了IDRIS的Jean Zay超级计算机。为了构建BLOOM对于每个组件进行了详细的设计包括训练数据、模型架构和训练目标、以及分布式学习的工程策略。我们也执行了模型容量的分析。我们的总体目标不仅是公开发布一个能够和近期开发的系统相媲美的大规模多语言的语言模型而且还记录其开发中的协调过程。 二、BLOOM 1. 训练数据 ​ BLOOM是在一个称为ROOTS的语料上训练的其是一个由498个Hugging Face数据集组成的语料。共计1.61TB的文本包含46种自然语言和13种编程语言。上图3展示了该数据集的高层概览上表1则详细列出了每种语言及其语属、语系和宏观区域。除了产生了语料库之外该过程也带来了许多组织和技术工具的开发和发布。 1.1 数据管理 ​ 大型文本语料库是由人创建且关于人的。不同的人或者机构可以合法地拥有这些数据称为这些数据的权利所有任。随着机器学习开发人员将这些数据收集并整理成为越来越大的数据集时考虑数据相关的利益方对于开发也越来越重要包括开发这、数据主体和权利所有人。 ​ BigScience旨在结合技术、法律、社会学等多学科知识来解决这些问题。该组织在两个不同时间尺度上关注两个主要的目标设计一个长期的国际数据治理结构该结构会优先考虑数据权利所有人并为BigScience项目直接使用的数据提供具体建议。第一个目标的进展在Jernite et al.工作中展示其进一步激发了数据管理的需求并描述了一个由数据托管人、权利所有人和其他参与方组成的网络。这些参与者的交互旨在考虑数据和算法上的隐私、知识产权和用户权利。特别地这种方法依赖于数据提供者和数据主机之间的结构化协议从而指定数据的用途。 ​ 虽然无法在项目开始到模型训练这相对短暂时间内建立一个完整的国际组织但是我们也努力从这个过程中吸取了经验教训(1) BigScience会尽量从数据提供者那里获得明确的数据使用许可(2) 在预处理的最终阶段之前保持单源独立并维护其可追溯性。(3) 对构成整个语料库的各个数据源采用一种组合发布的方式从而促进可复用性和后续的研究。在Hugging Face的组织BigScience Data中可以访问并可视化ROOTS语料库资源。 1.2 数据源 ​ 确定了数据管理策略接下来就是决定训练语言的构成。本阶段由若干个目标驱动这些目标有着内在的冲突。这些内存的冲突包括构建一个使世界上尽可能多的人可以访问的语言模型同时也需要有足够知识来管理与先前规模相当数据集的语言来改善标准文档以及遵循数据和算法的主体权利。 语言的选择 基于这些考虑我们采用渐进的方式来选择语料库中包含的语言。首先列出8个世界上使用人数最多的语言在项目早期积极推广这些语言并邀请该语言的流利使用者加入项目。然后根据社区的建议将原始选择中的Swahili扩展至Niger-Congo语言类别Hindi和Urdu扩展至Indic languages。最终我们提出若某个语言有多于3个流利语言使用者参与则可以添加至支持列表。 源的选择 语料库的最大部分是由研讨会参与者和研究团队策划的他们共同编写了BigScience Catalogue涵盖了各种处理后或者未处理的语言列表。这采用了由Machine Learning Tokyo、Masakhane和LatinX in AI等社区所组织的hackathons形式。作为这些源的补充其他的工作组参与者编译了特定语言的资源例如Arabic-focused Masader repository。这种自下而上的方法共确定了252个源每种语言至少有21个源。此外为了增加西班牙语、中文、法语和英语资源的地理覆盖范围参与者通过pseudocrawl确定了被添加至语料中语言的本地相关网址。 GitHub代码 通过Google’s BigQuer上的GitHub数据集合来进一步补充该目录中的编程语言数据集然后使用精准匹配进行去重。 OSCAR 为了不偏离使用网页作为预训练数据源的标准研究并且满足BLOOM尺寸计算代价的数据量需求我们进一步使用版本为21.09的OSCAR作为数据源对应于2021年2月的Common Crawl快照其占用了最终语料的38%。 1.3 数据预处理 ​ 在确定了数据源之后数据处理涉及多个数据管理的步骤。上图2可以看到构建ROOTS的pipeline总体视图。在这个过程中开发的所有工具都可以在GitHub上找到。 获得源数据 第一步涉及到从确定的数据源中获得文本数据这包含从各种格式的NLP数据集中下载和提取文本字段、从档案中抓取和处理大量的PDF文件、从目录中的192个网站条目和数据工作组成员选择的另一些地理上不同的456个网站中提取和预处理文本。后者需要开发新工具来从Common Crawl WARC文件中的HTML中抽取文本。我们能够从539个网络的所有URL中找到并提取可用的数据。 质量过滤 在获得文本后我们发现大多数源中包含了大量的非自然语言例如预处理错误、SEO页面或者垃圾。为了过滤非自然语言我们定义了一组质量指标其中高质量文本被定义为“由人类为人类编写的”不区分内容或者语法的先验判断。重要的是这些指标以两种主要的方法来适应每个源的需求。首先它们的参数例如阈值和支持项列表是由每个语言的流利使用者单独选择的。第二、我们首先检测每个独立的源来确定哪些指标最有可能确定出非自然语言。这两个过程都是由工具进行支持来可视化影响。 去重和隐私编辑 最终我们使用两种重复步骤来移除几乎重复的文档并编辑了从OSCAR语料中确定出的个人身份信息。因为其被认为是最高隐私风险的来源这促使我们使用基于正则表达式的编辑即使表达式有一些假阳性的问题。 1.4 Prompted数据集 ​ 多任务提示微调(也称为instruction tuning)涉及到对预训练语言模型的微调微调的数据集由通过自然语言提示构成的大量不同任务组成。T0证明了在多任务混合的prompted数据集上微调的模型具有强大的zero-shot泛化能力。此外T0优于那些数量级大但是没有经过这种微调的语言模型。受这些结果启发我们探索了使用现有自然语言数据集来进行多任务prompted微调。 ​ T0是在Public Pool of Prompt(P3)子集上进行训练的其是一个各种现有的、开源的应用自然语言数据集的prompt集合。该prompt集合是通过BigScience合作者参与的一系列黑客马拉松创建的其中黑客马拉松参与者为170数据集编写了2000的prompt。P3中的数据集覆盖了各种自然语言任务包括情感分析、问答、自然语言推理并且排除了有害的内容或者非自然语言。PromptSource一个开源工具包促进了自然语言prompt的创建、共享和使用。 ​ 对BLOOM预训练之后我们应用相同的大规模多任务微调使BLOOM具有多语言zero-shot任务泛化能力。我们称得到的模型为BLOOMZ。为了训练BLOOMZ我们扩展了P3来包含非英语中新数据集和新任务例如翻译。这产生了xP3它是83个数据集的提升集合覆盖46种语言和16中任务。正如上图4所述xP3反映了ROOTS的语言分布。xP3中的任务包含跨语言和单语言。我们使用PromptSource来收集这些prompts为prompt添加额外的元数据例如输入和目标语言。为了研究多语言prompt的重要性我们还将xP3中的英语提示用机器翻译为相应的数据集语言来生成一个称为xP3mt的集合。 2. 模型架构 2.1 设计方法 ​ 架构设计的选择空间非常大不可能完全探索。一种选择是完全复制现有大模型的架构。另一方面大量改进现有架构的工作很少被采纳采用一些推荐的实践可以产生一个更好的模型。我们采用中间立场选择已经被证明了可扩展性良好的模型家族以及在公开可用的工具和代码库中合理支持的模型家族。我们针对模型的组件和超参数进行了消融实验寻求最大限度的利用我们最终的计算预算。 消融实验设计 LLM的主要吸引力是其以zero/few-shot的方式执行任务的能力足够大的模型可以简单的从in-context指令和例子执行新的任务不需要在监督样本上训练。由于对100B模型微调很麻烦我们评估架构决策专注在zero-shot泛化能力上并且不考虑迁移学习。具体来说我们衡量了不同任务集合的zero-shot表现29个任务来自于EleutherAI Language Model Evaluation Harness(EAI-Eval)9个任务来自T0的验证集(T0-Eval)。两者之间有很大的重叠T0-Eval中仅有一个任务是不在EAI-Eval尽管两者的所有prompt都不同。 此外也使用更小的模型进行了消融实验。使用6.7B模型对预训练目标进行消融实验使用1.3B模型对位置嵌入、激活函数和layer normalization进行消融实验。近期Dettmers在大于6.7B的模型上发现了相变观察到了异常特征出现。那么在1.3B规模上是否能够外推自最终模型尺寸上 超出范围的架构 我们没有考虑mixture-of-experts(MoE)因为缺乏适合大规模训练它的广泛使用的基于GPU的代码库。类似地我们也没有考虑state-space模型。在设计BLOOM时它们在自然语言任务中一种表现不佳。这两种方法都很有前景现在证明了在大规模MoE上有竞争力的结果并在较小规模上使用具有H3的state-space模型。 2.2 架构和预训练目标 ​ 虽然大多数现代语言模型都是基于Transformer架构但是架构实现之间存在着显著的不同。显然原始的Transformer是基于encoder-decoder架构的许多流行的模型仅选择encoder-only或者decoder-only方法。当前所有超过100B参数的state-of-the-art模型都是decoder-only模型。这与Raffel等人的发现相反在迁移学习方面encoder-decoder模型显著优于decoder-only模型。 ​ 在我们工作之前文献缺乏不同架构和预训练目标的系统性评估zero-shot泛化能力。我们在Wang et al.(2022a)等人的工作中探索了这个问题其探索了encoder-decoder和decoder-only架构以及与causal、prefix和masked language modeling预训练模型的相互作用。我们的结果显示经过预训练之后causal decoder-only模型的表现最好验证了state-of-the-art LLM的选择。 2.3 建模细节 ​ 在选择架构和预训练目标之外对原始Transformer架构提出了许多的更改。例如可选的位置嵌入方案或者新颖的激活函数。我们执行了一系列的实验来评估每个修改在Le Scao et al.的causal decoder-only模型上。我们在BLOOM中采用了两种变化 ALiBi位置嵌入 相比于在embedding层添加位置信息ALiBi直接基于keys和queries的距离来衰减注意力分数。虽然ALiBi的最初动机是它能够外推至更长的序列我们发现其在原始序列长度上也能够带来更平衡的训练以及更好的下游表现超越了可学习embeddings和旋转embeddings。 Embedding LayerNorm 在训练104B参数模型的初步试验中我们尝试在嵌入层后立即进行layer normalization正如bitsandbytes库及其StableEmbedding层所推荐的那样。我们发现这可以显著的改善训练稳定性。尽管我们在Le Scao et al.工作中发现其对zero-shot泛化有惩罚但我们还是在BLOOM的第一个embedding层后添加了额外的layer normalization层来避免训练不稳定性。注意初步的104B实验中使用float16而最终的训练上使用bfloat16。因为float16一直被认为是训练LLM时观察的许多不稳定的原因。bfloat16有可能缓解对embedding LayerNorm的需要。 上图5中展示了BLOOM的全部架构。 3. Tokenization ​ tokenizer的设计选择通常被忽略倾向于默认设置。举例来说OPT和GPT-3都使用GPT-2的tokenizer训练用于English。由于BLOOM训练数据的多样性本质需要谨慎的设计选择来确保tokenizer以无损的方式来编码句子。 3.1 验证 ​ 我们将本文使用的tokenizer(Acs,2019)与现有的单语言tokenizer进行比较作为完整性检测的指标。Fertility被定义为每个单词或者每个数据集被tokenizer创造的subword数量我们使用感兴趣语言的Universal Dependencies 2.9和OSCAR子集来衡量。在一个语言上有非常高的Fertility相比于单语言tokenizer可能表明在下游多语言上的性能下降。我们的目标是在将我们的多语言tokenizer与对应但语言tokenizer进行比较时确保每种语言的fertility能力较低不超过10个百分点。在所有的实验中Hugging Face Tokenizers库被用来设计和训练测试的tokenizers。 3.2 tokenizer训练数据 ​ 我们最初使用ROOTS的非重复子集。然而一项在tokenizer的词表上的定性研究揭示了训练数据的问题。例如在早期版本的tokenizer上我们发现完整URLs存储为tokens这是由几个包含大量重复的文档导致的。这个问题促使我们移除tokenizer训练数据中的重复行。 3.3 词表大小 ​ 大的词表尺寸能够降低过度分割某些句子的风险特别是对低资源语言。我们使用150k和250k词表尺寸来执行验证实验以便与现有的多语言建模文献进行比较。与单语言tokenizer相比我们最终确定的词表尺寸是250k tokens来达到最初的fertility目标。因为词表尺寸决定了embedding矩阵的尺寸为了GPU效率embedding尺寸必须被128整除为了使用张量并行必须被4整除。我们最终使用了250680词表尺寸具有200个为未来应用保留的token例如使用占位token剔除私有信息。 3.4 Byte-level BPE ​ tokenizer是一个使用Byte Pair Encoding(BPE)算法进行训练的、可学习的子词tokenzier。为了在tokenization的过程中不丢失信息tokenizer从bytes开始创建合并而不是以字符作为最小单位。这种方式tokenization永远不会产生未知的tokens因为所有256个字节都可以被包含在tokenizer的词表中。此外Byte-level BPE最大化了语言之间的词表共享。 3.5 规范化 ​ 在BPE算法上游为了尽可能地获得最通用的模型没有对文本进行规范化。在所有情况下添加诸如NFKC这样的unicode规范化并不能减少fertility超过0.8%但是代价是使模型不那么通用。例如导致222^222和22以相同方法被编码。 3.6 Pre-tokenizer ​ 我们的pre-tokenization有两个目标产生文本的第一个划分并且限制由BPE算法产生的令牌序列的最大长度。pre-tokenization规模使用的是下面的正则表达式?[^(\S|[.,!?...。、|_])]其将单词分开同时保留所有的字符特别是对编程语言至关重要的空格和换行符序列。我们不使用在其他tokenizers中常见的以英文为中心的划分。我们也没有在数字上使用划分这导致了Arabic和code的问题。 4. 工程 4.1 硬件 ​ 模型在Jean Zay上训练其是由法国政府资助的超级计算机归属于GENCI所有由法国国家科学研究中心(CNRS)的国家计算中心IDRIS运行。训练BLOOM花费了3.5个月才完成并消耗了1082990计算小时。在48个节点上进行训练每个有8 NVIDIA A100 80GB GPUs(总共384个GPUs)由于在训练过程中硬件可能损坏我们也保留了4个备用节点。这些节点装备了2x AMD EPYC 7543 32-Core CPUs和512 GB的RAM而存储采用混合全闪存和硬盘驱动的SpectrumScale(GPFS)并行文件系统。 4.2 框架 ​ BLOOM使用Megatron-DeepSpeed训练一个用于大规模分布式训练的框架。其由两部分组成Megatron-LM提供Transformer实现、张量并行和数据加载原语而DeepSpeed提供ZeRO优化器、模型流水线、通过分布式训练组件。这个框架允许我们使用3D并行来高效训练—融合了三种互补的分布式深度学习方法。这些方法描述如下 数据并行(Data parallelism, DP) 复制多份模型每个副本被放置在不同设备上并输入数据分片。该过程是并行完成的所有模型副本在每个训练step结束时同步。 张量并行(Tensor parallelism, TP) 跨多个设备来划分模型的独立层。这种方式我们不把整个激活张量或者梯度张量放在单个GPU上而是把这个张量的碎片放在单个GPU上。该技术有时被称为水平并行或者层内模型并行。 流水线并行(Pipeline parallelism, PP) 在多个GPU上划分模型的层每个GPU仅放置模型层的一小部分。这有时也称为垂直并行。 ​ 最终Zero Redundancy Optimizer(ZeRO)运行不同的进程仅持有部分数据(参数、梯度和优化器状态)以及一个训练step所需要的数据。我们使用ZeRO stage 1意味着仅优化器状态以这种方法进行分片。 ​ 上面描述的四个组件组合在一起可以扩展至数百个GPU具有极高的GPU利用率。我们能在A100 GPU的最快配置下实现156 TFLOPs实现了理论峰值312 TFLOPs的一半。 4.3 浮点数格式 ​ 在初步的实验中104B参数模型在NVIDIA V100 GPUs我们观察到数值不稳定导致不可逆的训练发散。我们假设这些不稳定来自于最初使用的IEEE float16动态范围非常有限的16-bit浮点数格式可能导致溢出。我们最终获得了支持bfloat16格式的权限其具有同float32相同的动态范围。另一方面bfloat16精度仍然低很多这促使我们使用混合精度训练。该技术在float32精度上执行精度敏感的操作例如梯度累积和softmax余下的操作则使用低精度这允许实现高表现和训练稳定性之间的平衡。最终我们以bfloat16混合精度执行最终的训练其被证明解决了训练不稳定的问题。 4.4 融合CUDA核 ​ 一般来说GPU无法在检索数据同时执行这些计算。此外现代GPU的计算性能远远高于每个操作(被称为GPU编程中的核)所需的内存传输速度。核融合是一种基于GPU计算的优化方法通过在一次内核调用中执行多个连续操作。该方法提供了一种最小化数据传输的方法中间结果留在GPU寄存器中而不是复制到VRAM从而节省开销。 ​ 我们使用了Megatron-LM提供了几个定制化融合CUDA核。首先我们使用一个优化核来执行LayerNorm以及用核来融合各种缩放、掩码和softmax操作的各种组合。使用Pytorch的JIT功能将一个偏差项添加至GeLU激活中。作为一个使用融合核的例子在GeLU操作中添加偏差项不会增加额外的时间因为该操作受内存限制与GPU VRAM和寄存器之间的数据传输相比额外的计算可以忽略不计。因此融合这两个操作基本上减少了它们的运行时间。 4.5 额外的挑战 ​ 扩展至384个GPU需要两个修改禁止异步CUDA内核启动(为了方便调试和防止死锁)并将参数组划分至更小的子组(以避免过多的CPU内存分配)。 ​ 在训练过程中我们面临硬件故障的问题平均来说每周有1-2个GPU故障。由于备份节点可用并自动使用并且每三个小时保存一次checkpoint因此这不会显著影响训练吞吐量。在数据loader中Pytorch死锁bug和磁盘空间故障会导致5-10h的停机时间。考虑到工程问题相对稀疏而且由于只有一次损失峰值该模型很快就恢复了因此人工干预的必要性低于类似项目。 5. 训练 预训练模型 我们使用上表3中详细描述的超参数来训练BLOOM的6个尺寸变体。架构和超参数来自于我们的实验结果(Le Scao et al.)和先前的训练大语言模型(Brown et al.)。非176B模型的深度和宽度大致遵循先前的文献(Brown et al.)偏离的3B和7.1B只是为了更容易适合我们训练设置。由于更大的多语言词表BLOOM的embedding参数尺寸更大。在开发104B参数模型的过程中我们使用了不同的Adam β\betaβ参数、权重衰减和梯度裁剪来对目标稳定性进行实验但没有发现其有帮助。对于所有模型我们在410B tokens使用cosine学习率衰减调度在计算允许的情况下将其作为训练长度的上限并对375M tokens进行warmup。我们使用权重衰减、梯度裁剪不使用dropout。ROOTS数据集包含341B tokens的文本。然而基于训练期间发布的修订scaling laws我们决定在重复数据上对大模型进行额外25B tokens的训练。由于warmup tokens decay tokens大于总的token数量所以学习率衰减始终未达到终点。 多任务微调 微调的BLOOMZ模型维持了与BLOOM模型相同架构超参数。微调的超参数大致基于T0和FLAN。学习率则是将对应预训练模型的最小学习率加倍然后再四舍五入。对于较小的变体全局batch size乘以4来增加吞吐量。模型在13B tokens上进行微调最优checkpoint根据独立的验证集选择。经过1-6B tokens微调后性能趋于平稳。 对比微调 我们还使用了SGPT Bi-Encoder方案对1.3B和7.1B参数的BLOOM模型进行对比微调以训练产生高质量文本嵌入的模型。我们创建了用于多语言信息检索的SGPT-BLOOM-1.7B-msmarco以及用于多语言语义相似度的SGPT-BLOOM-1.7B-nli。然而近期的基准测试发现这种模型也能够推广到各种其他的嵌入任务例如bitext挖掘、重排或者下游分类的特征抽取。 6. 发布 ​ 开放性是BLOOM开发的核心并且我们希望确保社区可以轻易的使用它。 6.1 Model Card ​ 遵循发布机器学习模型的最优实践BLOOM模型连同详细的Model Card一起发布其描述了技术规范、训练细节、预期用途、范围外用途和模型的局限。跨工作组的参与者共同来产生最终的Model Card和每个checkpoint的card。 6.2 Licensing ​ 考虑到BLOOM可能带来的潜在有害用例我选择了不受限制的开发访问和负责任的使用之间取得平衡包括行为使用准则来限制模型对潜在有害用例的应用。这些条款通常被包含在Responsible AI Licenses(RAIL)“社区在发布模型时所采用的Licenses。与BLOOM开始时采用的RAIL license显著区别是它分离了源代码和模型”。它还包括了模型的使用和“派生工作”的详细定义来确保明确识别通过prompting、微调、蒸馏、logits使用和概率分布的下游使用。该license包含13项行为使用限制这些限制根据BLOOM Model Card描述的预期用途和限制以及BigScience道德章程来确定。该license免费提供模型用户只要遵守条款就可以自由使用模型。BLOOM的源代码已经在Apache 2.0开源许可证下提供访问。 三、评估 ​ 评估主要专注在zero-shot和few-shot设置。我们的目标是呈现出BLOOM与现有LLMs相比的准确图景。由于这些模型的规模基于prompt的方法和few-shot in-context learning要比微调更加常见。 1. 实验设计 1.1 Prompts ​ 基于最近关于prompt对于语言模型性能影响的研究我们决定建立一个语言模型评估套件该套件允许我们改变基础任务数据以及用于“上下文”化任务的prompting。我们的prompt是先于BLOOM发布开发的没有使用模型进行任何先验改进。我们以这种方式设计prompt的目的是模拟新用户期望BLOOM的zero-shot或者one-shot结果。 ​ 我们使用promptsource来为每个任务生成多个prompt。我们遵循Sanh et al.(2022)使用的流程prompt是由众包生成的因此能够看到prompt的不同长度和风格。为了提升质量和明确性对每个prompt执行多个同行评审。 ​ 上表5展示了一些用于WMT’14任务的最终prompt。由于资源限制我们还为许多没有包含在本文中的任务生成prompt。所有任务的所有prompt都可以公开访问。 1.2 基础设施 ​ 我们的框架通过集成promptsource库来扩展EleutherAI’s Language Model Evaluation Harness。我们发布了Prompted Language Model Evaluation Harness作为开源库供人们使用。我们使用这个框架来运行实验和聚合结果。 1.3 数据集 SuperGLUE 我们使用SuperGLUE分类任务评估套件的子集特别是Ax-b、Ax-g、BoolQ、CB、WiC、WSC和RTE任务。我们排除了余下的任务因为它们需要的计算量比我们所考虑的所有任务加起来还多一个量级。这些任务是纯英文的主要是为了方便与先前的工作比较。我们也注意到这些任务上使用zero-shot和one-shot prompted设置的性能没有被广泛报告。T0的第一个例外但是模型是instruction-tuned因此不能直接和BLOOM以及OPT进行比较。对于每个任务我们从promptsource中随机挑选5个样本然后在prompt集合上评估所有的模型。 Machine Translation(MT) 我们在三个数据集上评估BLOOMWMT14 eng↔fre\text{eng}\leftrightarrow\text{fre}eng↔fre和eng↔hin\text{eng}\leftrightarrow\text{hin}eng↔hin、Flores-101和DiaBLa。我们使用BLEU实现的sacrebleu进行评估。在生成过程使用贪心解码直至EOS token对于1-shot则添加 \n###\n。 Summarization 我们在WikiLingua数据集上评估摘要。WikiLingua是多语言摘要数据集由WikiHow文章和逐步的摘要对。与BLOOM尺寸相当的模型通常没有报告one-shot条件自然语言生成。PaLM是第一个例外其报告了WikiLingua然而仅考察了模型的英文摘要能力。作为对比我们通过评估源语言的抽象摘要来测试BLOOM的多语言能力。我们专注在9种语言(阿拉伯语、英语、西班牙语、法语、印地语、葡萄牙语、越南语和中文)这些都是BigScience的目标。 1.4 Baseline模型 mGPT在60种语言上训练的GPT风格的模型GPT-Neo、GPT-J-6B、GPT-NeoX在Pile上训练的GPT风格模型族T0在P3数据集上经过多任务promoted微调的T5变体OPT一个GPT风格模型在混合数据集上训练XGLM在CC100变体上训练的GPT风格多语言模型M2M在Wikipedia和mC4上使用masked和causal目标函数训练的encoder-decoder模型mTk-Instruct在Super-NaturalInstructions数据集上进行多任务prompted微调的T5变体Codex在来自GitHub的代码上微调的GPT模型GPT-fr在法语文本上训练的GPT风格模型 2. Zero-Shot效果 ​ 在自然语言理解和生成任务中我们发现预训练语言模型的zero-shot性能都接近随机。上图7展示了zero-shot的性能。 2.1 SuperGLUE ​ 在SuperGLUE上虽然在一些独立的prompt上展示了大概10个点的性能改善但是各个prompt的平均改善接近随机。除了T0模型其展现出很强的效果。然而这个模型是在多任务设置中微调的为了改善zero-shot prompting的效果。 2.2 机器翻译 ​ 在zero-shot设置中机器翻译的结果非常糟糕。生成结果有两个主要的问题(1) 过度生成(2) 不能够产生正确的语言。 3. One-Shot结果 3.1 SuperGLUE ​ 上图7展示也展示了one-shot的效果。相比于zero-shot的效果所有prompt和模型在SuperGLUE上one-shot效果变异性降低了。总的来说one-shot的设置下并没有显著的改善模型的精度仍然是接近随机的。我们对不同模型尺寸的BLOOM进行额外的分析。作为baseline我们还衡量了相似大小OPT模型的one-shot准确率。OPT和BLOOM模型族随规模轻微改善。BLOOM-176B在Ax-B、CB和WiC上优于OPT-175B。 3.2 机器翻译 ​ 在1-shot设置中我们使用XGLM prompt在Flores-101开发测试集上测试集中语言方向。我们从相同数据集中随机选择1-shot样本这可能与过去的工作不同。我们按照高资源语言对、高至中资源语言对、低资源语言对以及Romance语言族分离不同的结果。根据语言在ROOTS中比例将语言分类为低、中、高资源。对于高资源和中高资源语言对我们与具有615M参数的M2M-124模型的监督结果进行比较。此外我们比较了XGLM(7.5B) 1-shot结果和32-shot AlexaTM结果。**对于高资源语言翻译以及高资源语言至中资源语言的翻译结果都不错。**这表明BLOOM具有良好的多语言能力。相比于监督的M2M模型在1-shot设置中通常结果相当甚至更好在许多情况下结果与AlexaTM相当。 ​ **许多低资源语言的翻译质量都很好与监督M2M模型相当甚至更好。**然而在Swahili和Yoruba之间的效果相当糟糕因为在BLOOM训练数据中存在不足。 3.3 摘要 ​ 上图9展示了BLOOM和OPT-175B的one-shot结果比较。每个点表示一个pre-prompt分数。关键结论是BLOOM在多语言摘要方面比OPT获得了更高的性能并且随着模型参数增加而性能增加。我们怀疑这是由于BLOOM的多语言训练。 4. 多任务微调 ​ 基于最近在多任务微调上的工作我们探索使用多语言多任务微调来改善BLOOM模型的zero-shot效果。我们使用xP3语料来在BLOOM上执行多语言多任务微调。我们发现zero-shot表现的能力显著增强。上图10我们比较了BLOOM和XLGM模型与多任务微调BLOOMZ、T0和mTk-Instruct的zero-shot效果。BLOOM和XGLM的表现解决随机基线。经过多语言多任务微调(BLOOMZ)zero-shot的效果显著改善。尽管在多任务上进行了微调由于T0是单语言英语模型它在多语言数据集上表现很差。然而由Muennighoff et al.提供的额外结果表明当控制大小和架构在xP3的英文数据集上微调的模型仍然优于T0。这可以是由于T0微调的数据集(P3)包含的数据集和prompt的多样性低于xP3。 5. 代码生成 ​ BLOOM预训练语料ROOTS包含大约11%的代码。上表9展示了BLOOM在HumanEval上基准结果。我们发现预训练的BLOOM的效果与在Pile上训练的类似大小的GPT模型。Pile包含英文数据和大约13%的代码这类似于ROOTS中的代码数据源和比例。Codex模型其单独在代码上进行微调比其他的模型强的多。相比于BLOOM模型多任务微调的BLOOMZ模型并没有显著改善。我们假设这是因为微调数据集xP3并没有包含大量的纯代码。
http://www.dnsts.com.cn/news/85094.html

相关文章:

  • 多个微信管理系统台州网站排名优化价格
  • 深圳网站设计公司哪家工艺好个人建个网站需要多少钱
  • 建筑网站图片网站制作专业
  • 北京网站建设价家具设计师要学哪些软件
  • 网站团队的建设wordpress展览会
  • 湖北企业响应式网站建设价位wordpress写文章页面无法显示
  • 宝塔做网站可以用什么端口网站域名费用交给谁
  • 西青网站文化建设wordpress写文章更新失败
  • 静态网站可以申请域名吗重庆推广网站排名公司
  • 为什么招聘网站不能用自己做的简历godday网站建设
  • 网站页面布局设计思路基于.net的个人网站开发实录
  • wordpress线上聊天插件seo是如何做优化的
  • 网站开发保密合同wordpress 自动 采集
  • 建设网站困难的解决办法广东东莞大益队
  • 网站功能模块表格wordpress 二手市场
  • 企业手机端网站源码下载全新装修效果图大全
  • 专业电商网站设计网站大全下载
  • 毕设做网站怎么命题红安建设局官方网站
  • 网站建设岗位工作职责临沂市建设安全管理网站
  • 电商网站首页图片能去百度上班意味着什么
  • 网站建设金网科技沈阳专业做网站方案
  • 网站上的图是怎么做的网站开发属于知识产权吗
  • 仙桃有哪些做网站的公司用手机可以做网站
  • 怎么做示爱的网站项目式学习
  • 苏州市住房和城乡建设局网站首页有哪些网站是可以接单做任务的
  • 百度网站推广怎么做寻找网站优化公司
  • dedecms企业网站模板免费下载wordpress媒体库现实不全
  • 廉政建设网站线上课程
  • 网站模块报价网站建设swot分析
  • 西安seo网站推广优化酒店微网站建设