【深度学习:MPT-30B】提高开源基础模型的标准

在这里插入图片描述

【深度学习:MPT-30B】提高开源基础模型的标准

    • MPT-30B家族
      • MPT-30B (Base)
      • MPT-30B-Instruct
      • MPT-30B-Chat
      • 使用 MosaicML Inference 部署 MPT-30B 模型
      • 通过 MosaicML 培训定制 MPT-30B
        • LLM Foundry
      • 下一步是什么?
    • 附录
      • 致谢
      • 数据
        • MPT-30B 8k 上下文窗口微调数据
        • MPT-30B-指令微调数据
        • MPT-30B-聊天微调数据
    • 评估
      • Falcon 代码评估免责声明

隆重推出 MPT-30B,它是我们开源模型基础系列中功能更强大的新成员,在 NVIDIA H100 Tensor Core GPU 上使用 8k 上下文长度进行训练。

在这里尝试 HuggingFace 上的 MPT-30B-Chat!

自 5 月份推出 MPT-7B 以来,ML 社区热切地接受开源 MosaicML 基础系列模型。 MPT-7B 基础、-Instruct、-Chat 和 -StoryWriter 模型的总下载量已超过 300 万次!

我们对社区使用 MPT-7B 构建的内容感到不知所措。强调几个:LLaVA-MPT 为 MPT 添加了视觉理解,GGML 在 Apple Silicon 和 CPU 上优化 MPT,GPT4All 允许您使用 MPT 作为后端模型在笔记本电脑上运行类似 GPT4 的聊天机器人。

今天,我们很高兴通过 MPT-30B 扩展 MosaicML 基础系列,MPT-30B 是一种获得商业用途许可的新型开源模型,其功能明显比 MPT-7B 更强大,并且性能优于原始的 GPT-3。此外,我们还发布了两个经过微调的变体:MPT-30B-Instruct 和 MPT-30B-Chat,它们构建在 MPT-30B 之上,分别擅长单轮指令跟踪和多轮对话。

所有 MPT-30B 模型都具有与其他 LLM 不同的特殊功能,包括训练时的 8k 令牌上下文窗口、通过 ALiBi 支持更长的上下文,以及通过 FlashAttention 实现高效的推理 + 训练性能。由于其预训练数据混合,MPT-30B 系列还具有强大的编码能力。该模型已扩展到 NVIDIA H100 GPU 上的 8k 上下文窗口,使其(据我们所知)成为第一个在 H100 GPU 上训练的法学硕士,现在可供 MosaicML 客户使用!

MPT-30B 的尺寸也经过专门选择,以便轻松部署在单个 GPU 上 - 1x NVIDIA A100-80GB(16 位精度)或 1x NVIDIA A100-40GB(8 位精度)。其他类似的 LLM(例如 Falcon-40B)具有更大的参数数量,并且无法在单个数据中心 GPU 上提供服务(目前);这需要 2 个以上的 GPU,从而增加了最低推理系统成本。

如果您想开始在生产中使用 MPT-30B,可以通过多种方法使用 MosaicML 平台对其进行自定义和部署。

  • MosaicML 培训。 通过微调、特定领域预训练或从头开始训练,使用您的私人数据定制 MPT-30B。您始终拥有最终模型权重,并且您的数据永远不会存储在我们的平台上。定价按 GPU 分钟计算。

  • MosaicML 推理。 使用我们的 Python API 与我们托管的 MPT-30B-Instruct(和 MPT-7B-Instruct)端点进行对话,并按每 1K 代币的标准定价。

我们很高兴看到我们的社区和客户接下来使用 MPT-30B 构建什么。要了解有关模型以及如何使用 MosaicML 平台自定义模型的更多信息,请继续阅读!

MPT-30B家族

Mosaic Pretrained Transformer (MPT) 模型是 GPT 风格的仅解码器变压器,具有多项改进,包括更高的速度、更高的稳定性和更长的上下文长度。得益于这些改进,客户可以有效地训练 MPT 模型 (40-60% MFU),而不会偏离损失峰值,并且可以通过标准 HuggingFace 管道和 FasterTransformer 为 MPT 模型提供服务。

MPT-30B (Base)

MPT-30B是商业Apache 2.0许可的开源基础模型,其质量超过了GPT-3(来自原始论文),并且与LLaMa-30B和Falcon-40B等其他开源模型具有竞争力。

使用我们公开提供的 LLM Foundry 代码库,我们在 2 个月的时间内训练了 MPT-30B,随着硬件可用性的变化在多个不同的 NVIDIA A100 集群之间进行转换,平均 MFU >46%。 6 月中旬,在我们从 CoreWeave 收到第一批 256 个 NVIDIA H100 GPU 后,我们将 MPT-30B 无缝移动到新集群,以恢复平均 MFU >35% 的 H100 训练。据我们所知,MPT-30B 是第一个在 H100 GPU 上(部分)训练的公共模型!我们发现每个 GPU 的吞吐量增加了 2.44 倍,并且我们预计随着 H100 软件的成熟,这种加速也会增加。

如前所述,MPT-30B 使用 8k 个 token 的长上下文窗口进行训练(LLaMa 和 Falcon 为 2k),并且可以通过 ALiBi 或微调处理任意长的上下文窗口。为了有效地在 MPT-30B 中构建 8k 支持,我们首先使用 2k 令牌长的序列对 1T 令牌进行预训练,并使用 8k 令牌长的序列继续训练额外的 50B 令牌。

MPT-30B 预训练使用的数据组合与 MPT-7B 非常相似(有关详细信息,请参阅 MPT-7B 博客文章)。对于 2k 上下文窗口预训练,我们使用来自与 MPT-7B 模型相同的 10 个数据子集的 1T 标记(表 1),但比例略有不同。

在这里插入图片描述

表 1:MPT-30B 预训练的数据组合。我们从 10 个不同的开源文本语料库中收集了 1T 个预训练数据 token。我们使用 EleutherAI GPT-NeoX-20B 分词器对文本进行分词,并根据上述比率进行采样。

对于 8k 上下文窗口微调,我们从用于 2k 上下文窗口预训练的相同 10 个子集创建了两个数据混合(图 1)。第一个 8k 微调组合与 2k 预训练组合类似,但我们将代码的相对比例增加了 2.5 倍。为了创建第二个 8k 微调组合(我们将其称为“长序列”组合),我们从 10 个预训练数据子集中提取了长度≥ 4096 个标记的所有序列。然后我们对这两种数据混合的组合进行微调。有关 8k 上下文窗口微调数据的更多详细信息,请参阅附录。

在这里插入图片描述

图 1:8k 上下文窗口微调的数据子集分布。对于 8k 上下文窗口微调,我们采用每个数据子集并提取具有 ≥ 4096 个标记的所有样本,以创建新的“长序列”数据混合。然后,我们对长序列和原始数据混合的组合进行微调。

图2中,我们测量了这六大核心能力,发现MPT-30B在各个方面都比MPT-7B有显着提升。在图 3 中,我们对类似大小的 MPT、LLaMa 和 Falcon 模型进行了相同的比较。总体而言,我们发现不同系列的 7B 型号非常相似。但 LLaMa-30B 和 Falcon-40B 的文本能力略高于 MPT-30B,这与它们较大的预训练预算是一致的:

  • MPT-30B FLOPs ~= 6 * 30e9 [参数] * 1.05e12 [令牌] = 1.89e23 FLOPs
  • LLaMa-30B FLOPs ~= 6 * 32.5e9 [params] * 1.4e12 [tokens] = 2.73e23 FLOPs (多1.44倍)
  • Falcon-40B FLOPs ~= 6 * 40e9 [参数] * 1e12 [令牌] = 2.40e23 FLOps (1.27 倍以上)

另一方面,我们发现 MPT-30B 在编程方面明显更好,这归功于其包含大量代码的预训练数据混合。我们在表 2 中进一步深入探讨了编程能力,其中我们将 MPT-30B、MPT-30B-Instruct 和 MPT-30B-Chat 的 HumanEval 分数与现有开源模型(包括为代码生成而设计的模型)进行了比较。我们发现 MPT-30B 模型的编程能力非常强,MPT-30B-Chat 的性能优于除 WizardCoder 之外的所有模型。我们希望这种文本和编程功能的结合将使 MPT-30B 模型成为社区的流行选择。

最后,在表 3 中,我们展示了 MPT-30B 如何在原始 GPT-3 论文中提供的较小评估指标集上优于 GPT-3。最初发布后大约 3 年,我们很自豪能够以更小的模型(GPT-3 参数的 17%)和显着更少的训练计算(GPT-3 FLOPs 的 60%)超越这个著名的基线。

如需更详细的评估数据,或者如果您想重现我们的结果,您可以在此处查看我们在 LLM Foundry 评估工具中使用的原始数据和脚本。请注意,我们仍在完善 HumanEval 方法,并将很快通过 Composer 和 LLM-Foundry 发布。

在这里插入图片描述

图 2 -MPT-7B 与 MPT-30B。我们的新 MPT-30B 型号比之前的 MPT-7B 型号有了显着改进

在这里插入图片描述

图 3 - MPT、LLaMa 与 Falcon 模型。左:比较具有 70 亿个参数的模型。右图:比较具有 30 到 400 亿个参数的模型。

在这里插入图片描述

表 2:MPT-30B 模型的零样本精度(pass @ 1)与 HumanEval(Python 编码问题语料库)上的通用和 GPT 蒸馏代码生成模型的比较。我们发现 MPT-30B 模型的性能大幅优于 LLaMa-30B 和 Falcon-40B,甚至优于许多专用编码模型(例如 StarCoder)。有关 Falcon-40B-Instruct 和 Falcon-40B 的免责声明,请参阅附录。外部来源:[1]、[2]、[3]、[4]、[5]

在这里插入图片描述

表 3:MPT-30B 与 GPT-3 在九项情境学习 (ICL) 任务上的零样本准确率。我们发现 MPT-30B 在九个指标中的六个指标上优于 GPT-3。 GPT-3 编号是从原始论文中复制的。

MPT-30B-Instruct

在这里插入图片描述

图 4:MPT-30B-Instruct 的示例指令和完成。

LLM 预训练教导模型根据提供的输入继续生成文本。但在实践中,用户希望法学硕士将输入视为要遵循的说明。指令微调是训练法学硕士遵循指令的过程。通过减少对巧妙提示工程的依赖,指令微调使法学硕士更容易获得、直观且立即可用。指令微调的进展是由 FLAN、P3、Alpaca 和 Dolly-15k 等开源数据集推动的。

我们创建了一个商业可用的、遵循指令的模型变体,称为 MPT-30B-Instruct。我们喜欢 Dolly 的商业许可,但我们想添加更多训练数据,因此我们使用 Anthropic 的 Helpful & Harmless 数据集的子集来增强 Dolly,将数据集大小加倍,同时保留商业 CC-By-SA-3.0 许可。然后,为了利用 MPT-30B 的 8,192 个 token 上下文长度,我们使用一些开源数据集进一步增强了数据:CompetitionMath、GradeSchoolMath、DialogSum、DuoRC、QASPER、QuALITY、SummScreen 和 Spider。

这个新的指令跟踪数据集是对我们用于训练 MPT-7B-Instruct 的数据集的改进,我们计划在不久的将来发布更新的 MPT-7B-Instruct-v2,使其与 MPT-30B 持平-指导。

MPT-30B-Chat

在这里插入图片描述

图 5:与 MPT-30B-Chat 的示例对话。

我们还创建了 MPT-30B-Chat,这是 MPT-30B 的对话版本。 MPT-30B-Chat 已经在大量聊天数据集上进行了微调,确保它为各种对话任务和应用程序做好了准备。组合微调数据集由 15.4 亿个 token 组成,模型训练了 6 个 epoch。数据集采用ChatML格式,提供了一种便捷、标准化的方式将系统消息传递给模型,有助于防止恶意提示注入。

MPT-30B-Chat 是一个研究工件,不适合商业用途,因此我们相应地使用了非商业 CC-By-NC-SA-4.0 许可证。我们发布它是因为它展示了 MPT-30B 与大型、高质量微调数据集结合时的强大功能。

尽管被训练为通用会话模型,MPT-30B-Chat 的编程能力也令人惊讶,在 HumanEval 上得分为 37.2%;这使得它凌驾于WizardCoder 之外的几乎所有开源模型之上。更多详情请参见上表2!

使用 MosaicML Inference 部署 MPT-30B 模型

随着 MosaicML 推理服务的推出,我们为 MPT 和 Llama 等开源模型提供低延迟、高吞吐量的托管。您可以使用我们的推理软件堆栈在 MosaicML 硬件或您自己的私有硬件上为这些模型提供服务。借助 MosaicML Inference,您可以向 MosaicML 托管的端点发送 MPT-7B-Instruct、MPT-30B-Instruct 以及其他开源文本生成和嵌入模型的 API 请求。这些端点按代币定价,并且比相同质量的同类 OpenAI API 便宜得多(见图 6)。 MosaicML Inference 是快速制作人工智能功能原型的绝佳选择。如果可以接受与第三方 API 共享数据,那么它也可能是一个合适的选择。

在这里插入图片描述

图 6:使用 MosaicML Inference 查询 MPT-30B 或 MPT-7B 模型比使用 OpenAI API 便宜 4 倍,并且质量相当。

通过 MosaicML 培训定制 MPT-30B

MPT-30B 具有开箱即用的强大生成能力。但为了在特定任务中获得最佳性能,我们建议对您的私人数据进行微调 MPT-30B。这个过程可以在几个小时内完成,只需几百美元。

对于更高级的用例,例如自定义语言、自定义域(例如 Replit 的代码生成模型)或自定义任务(长文档问答),您可以通过添加特定于域的预训练或从头开始训练自定义模型。

LLM Foundry

为了使自定义语言模型的训练尽可能简单,我们将可用于生产的训练代码开源为 LLM Foundry。这与我们的 NLP 团队用于构建 MPT-7B 和 MPT-30B 的代码库完全相同。该存储库使用 Composer、StreamingDataset 和 FSDP 在任意数量的 GPU 上训练任意大小的自定义模型。它还可以直接从您的私有对象存储流式传输数据,并轻松将模型导出到 HuggingFace、ONNX 或 FasterTransformer。 LLM Foundry 已经在云端 A100 和 H100 上经过了实际考验,我们正在快速增加对更多硬件选项的支持。

LLM Foundry 还包括用于根据标准评估指标和/或自定义数据评估模型的脚本。得益于我们的多 GPU 和 FSDP 支持,评估速度非常快 - 您可以在几分钟内离线测量评估指标,甚至可以在训练期间实时测量评估指标,从而为您提供有关模型性能的即时反馈。

无论您想要进行小型微调运行还是从头开始训练大型模型,LLM Foundry 都能高效处理所有这些工作负载。查看我们的公开训练表现和推理表现表!

作为 MosaicML 的客户,您还可以访问最新的配方,以确保您的训练运行稳定(无损失峰值)以及我们的 MCLI 编排软件。后者可以优雅地处理硬件故障和自动恢复,这样您就不会浪费计算或需要照顾您的运行。

下一步是什么?

准备好试用我们的新型 MPT-30B 系列了吗?请注意,我们的 Foundation 系列模型完全受 MosaicML 平台支持,为您提供工具和专业知识,以便您在选择的安全云上轻松高效地构建、定制和部署。在此处注册演示。请继续关注我们的基础系列中的更多型号!

附录

致谢

我们衷心感谢 OCI 的朋友,他们托管了我们用来完成 MPT-30B 初级训练阶段的 NVIDIA A100 GPU。

我们还要衷心感谢 CoreWeave 的朋友,他们托管了我们用来完成 MPT-30B 8k 上下文训练阶段的 NVIDIA H100 GPU,并在我们加快新 GPU 架构的速度时为我们提供了支持。

我们还衷心感谢 AI2 的朋友,他们在我们开发 MPT 系列模型时分享了非常宝贵的技术专业知识。

数据

MPT-30B 8k 上下文窗口微调数据

对于 8k 上下文窗口微调,我们采用每个数据子集并提取具有至少 4096 个标记的所有样本,以创建新的“长序列”数据混合。然后,我们对长序列和原始数据混合的组合进行微调。

在这里插入图片描述

MPT-30B-指令微调数据

在这里插入图片描述

MPT-30B-聊天微调数据

聊天微调数据。请注意,每个标记出现了 6 次。这些代币计数包括提示及其目标响应,因此并非所有 1.54B 代币都会产生损失。

在这里插入图片描述

评估

在这里插入图片描述
MPT-30B 与我们的代码评估套件上的开源模型。我们在代码提示的 HumanEval 数据集上测试每个模型,使用零样本评估和使用 pass@1 指标的基准测试,或者仅允许生成一个可能的代码延续时模型通过的测试用例的百分比。我们还提供引用的外部值来验证我们内部代码评估套件的可复制性,该套件将在 Composer/LLM-Foundry 的未来版本中作为开源发布。

Falcon 代码评估免责声明

在我们的评估框架中,Falcon-40B 和 Falcon-40B-Instruct 似乎是类似大小模型中的异常值。虽然我们的大多数自我评估分数与外部结果相匹配,但我们的 Falcon-40B-Instruct 通过率明显低于 WizardCoder 中报告的通过率。我们对所有模型使用相同的提示和 LLM Foundry 评估工具。如果您对如何更好地提示/使用Falcon-40B或更多我们可以参考的外部HumanEval分数有建议,请联系我们!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OrangePi Zero2 智能家居】阿里云人脸识别方案

一、接入阿里云 二、C语言调用阿里云人脸识别接口 三、System V消息队列和POSIX 消息队列 一、接入阿里云 在之前树莓派的人脸识别方案采用了翔云平台的方案去1V1上传比对两张人脸比对,这种方案是可行,可 以继续采用。但为了接触更多了云平台方案&…

常用工具类-Collections

常用工具类-Collections 排序操作查找操作填充操作判断集合是否有交集不可变集合 java.util.Collections类是一个工具类,它包含了一些静态方法,用于操作集合(如列表和映射)。这个类主要用于创建不可修改的集合、填充集合、替换元素…

「优选算法刷题」:数青蛙

一、题目 给你一个字符串 croakOfFrogs,它表示不同青蛙发出的蛙鸣声(字符串 "croak" )的组合。由于同一时间可以有多只青蛙呱呱作响,所以 croakOfFrogs 中会混合多个 “croak” 。 请你返回模拟字符串中所有蛙鸣所需不…

如何启动若依框架

Mysql安装 一、下载 链接:https://pan.baidu.com/s/1s8-Y1ooaRtwP9KnmP3rxlQ?pwd1234 提取码:1234 二、安装(解压) 下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹)&…

网络原理(一)

💕"Echo"💕 作者:Mylvzi 文章主要内容:网络原理(一) 一. 应用层 应用层是和程序员联系最密切的一层,对于应用层来说,程序员可以自定义应用层协议,应用层的协议一般要约定好以下两部分内容: 根据需求,明确要传输哪些信…

MySQL进阶45讲【19】幻读是什么,幻读会产生什么问题?

1 前言 在MySQL进阶45讲【3】事务隔离的恩恩怨怨这篇文章中,我们有提到过幻读的概念,为了更好地介绍幻读,我们先创建一个表,并添加一些数据,建表和初始化语句如下: CREATE TABLE t ( id int(11) NOTNULL,…

「C++ 类和对象篇 10」初始化列表

目录 一、什么是初始化列表? 二、为什么需要初始化列表? 三、初始化列表怎么使用? 3.1 在构造函数中使用初始化列表 3.2 注意 3.3 结论 3.4 应用场景 四、初始化列表的初始化顺序 五、另一种初始化成员变量的方法 【总结】 一、什么是初始化…

【深度学习】:滴滴出行-交通场景目标检测

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 代码和报告均为本人自己实现(实验满分),只展示主要任务实验结果,如果需要详细的实验报告或者代码可以私聊博主,接实验技术指导1对1 有任…

单目深度估计任意未标记数据:释放大规模数据潜力 | 开源日报 No.166

LiheYoung/Depth-Anything Stars: 2.6k License: Apache-2.0 Depth-Anything 是一个释放大规模未标记数据力量的项目,可以对任意未标记数据进行单目深度估计。 该项目主要功能、关键特性和核心优势包括: 相对深度估计度量深度估计更好的深度条件控制网…

【Java八股面试系列】并发编程-并发关键字,线程池

目录 并发关键字 Synchronized synchronized最主要的三种使用方式: 具体使用:双重校验锁单例模式 synchronized 底层实现原理? synchronized锁的优化 偏向锁 轻量级锁 重量级锁 Mark Word 与 Monitor 之间的关系 总结 偏向锁、轻量…

阿里百秀移动端首页

技术选型 方案:采取响应式页面开发方案技术: bootstrap框架设计图∶设计图采用1280px设计尺寸 屏幕划分分析 屏幕缩放发现中屏幕和大屏幕布局是一致的。因此我们列定义为col-md-就可以了,md是大于等于970以上的屏幕缩放发现小屏幕布局发生变化,因此我…

ArcGIS学习(四)坐标系-1

ArcGIS学习(四)坐标系 大家平时在处理数据的时候肯定经常遇到坐标系相关的问题。最常见的就是同一个地区的两个数据,导入ArcGIS内却对不上;也肯定听到过坐标系相关的一些词语,比如地理坐标系投影坐标系、投影、WGS1984坐标、CGCS2000坐标系、火星坐标系、百度坐标系等。 …

架构(十二)动态Excel

一、引言 作者最近的平台项目需要生成excel,excel的导入导出是常用的功能,但是作者想做成动态的,不要固定模板,那就看看怎么实现。 二、后端 先捋一下原理,前后端的交互看起来是制定好的接口,其实根本上是…

算法学习——华为机考题库9(HJ56 - HJ63)

算法学习——华为机考题库9(HJ56 - HJ63) HJ56 完全数计算 描述 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 它所有的真因子(即除了自身以外的约数)的和&…

基于idea解决springweb项目的Java文件无法执行问题

前言 上一篇文章的话介绍了spring以及创建spring项目,但是因为有宝子私聊我说创建的项目那个JAVA文件显示灰色还有一个红点,问我怎么解决下面我来简答的写一下怎么修改配置让他正常的运行 配置 原因好像是因为基于maven的JAVA项目构架,对应…

主干网络篇 | YOLOv5/v7 更换主干网络为 VGG13 / VGG16 / VGG19 | 对比实验必备

论文地址:https://arxiv.org/pdf/1409.1556.pdf 在这项工作中,我们研究了卷积网络深度对其在大规模图像识别环境中准确性的影响。我们的主要贡献是对使用非常小(33)卷积滤波器的架构的不断增加深度的网络进行了彻底评估,这表明通过将深度推进到16-19个权重层,可以在先前…

【漏洞复现】狮子鱼CMS某SQL注入漏洞

Nx01 产品简介 狮子鱼CMS(Content Management System)是一种网站管理系统,它旨在帮助用户更轻松地创建和管理网站。该系统拥有用户友好的界面和丰富的功能,包括页面管理、博客、新闻、产品展示等。通过简单直观的管理界面&#xf…

怎么把视频音乐提取成mp3?分享详细工具和方法!

在数字媒体时代,音乐已经成为我们生活中不可或缺的一部分。有时候,我们会在社交媒体、视频分享网站或在线视频平台上看到一些非常喜欢的视频音乐,想要将其保存为MP3格式以便随时随地聆听。那么,如何从视频中提取音乐并转换为MP3格…

SpringBoot源码解读与原理分析(七)BeanFactory

文章目录 3 SpringBoot的IOC容器3.1 SpringFramework的IOC容器3.1.1 BeanFactory3.1.1.1 BeanFactory根接口3.1.1.2 HierarchicalBeanFactory3.1.1.3 ListableBeanFactory3.1.1.4 AutowireCapableBeanFactory3.1.1.5 ConfigurableBeanFactory3.1.1.6 AbstractBeanFactory3.1.1.…