Databricks 推出开源 LLM 模型 DBRX,程序员可本地部署使用,是 OpenAI 专属模式的替代方案。
今天,我们很高兴地介绍 DBRX,一个由 Databricks 创建的开源通用 LLM。在一系列标准基准测试中,DBRX 为已建立的开源 LLM 创造了新的最先进水平。此外,它为构建自己 LLM 的开放社区和企业提供了以前仅限于闭源模型 API 的能力;根据我们的测试,它超越了 GPT-3.5,与 Gemini 1.0 Pro 具有竞争力。它是一个特别强大的代码模型,在编程上超越了 CodeLLaMA-70B 等专门模型,同时作为通用 LLM 也有很强的表现。
这种最先进的质量伴随着训练和推理性能的显著改进。DBRX 通过其细粒度混合专家(MoE)架构推进了开源模型中效率的最新水平。推理速度比 LLaMA2-70B 快 2 倍,DBRX 在总参数和活跃参数数量上约为 Grok-1 的 40%。当托管在 Databricks Model Serving 上时,DBRX 可以生成高达 150 tok/s/user 的文本。我们的客户将发现训练 MoE 的 FLOP 效率也比训练 dense 模型的效率高约 2 倍,能达到相同的最终模型质量。整体而言,我们的 DBRX 配方(包括预训练数据、模型架构和优化策略)能够以近 4 倍更少的计算量实现与我们上一代 MPT 模型相当的质量。
基础模型(DBRX Base)和微调模型(DBRX Instruct)的权重已在 Hugging Face 上以开源许可证提供。从今天起,DBRX 可供 Databricks 客户通过 API 使用,Databricks 客户可以使用我们构建它所用的相同工具和科学,从零开始预训练自己的 DBRX 级别模型或在我们的某个检查点基础上继续训练。DBRX 已集成到我们的 GenAI 驱动产品中,在 SQL 等应用中的早期推出已超越 GPT-3.5 Turbo,并正在挑战 GPT-4 Turbo。在 RAG 任务中,它也是开源模型和 GPT-3.5 Turbo 中的领先模型。
训练混合专家模型很困难。我们必须克服各种科学和性能挑战,以构建一个足够强大的管道,能够以高效的方式反复训练 DBRX 级别的模型。现在我们已经做到了,我们拥有一个独一无二的训练堆栈,允许任何企业从零开始训练世界级的 MoE 基础模型。我们期待与客户分享这种能力,并与社区分享我们学到的经验。
立即从 Hugging Face 下载 DBRX(DBRX Base、DBRX Instruct),或在我们的 HF Space 中试用 DBRX Instruct,或查看我们的 github 模型库:databricks/dbrx。
DBRX 是一个基于 Transformer 的纯解码器大语言模型(LLM),使用 next-token 预测进行训练。它采用细粒度混合专家(MoE)架构,总参数为 132B,其中 36B 参数在任何输入上都是活跃的。它在 12T 个文本和代码数据 token 上进行了预训练。与 Mixtral 和 Grok-1 等其他开源 MoE 模型相比,DBRX 是细粒度的,意味着它使用了更多数量的较小专家。DBRX 有 16 个专家并选择 4 个,而 Mixtral 和 Grok-1 各有 8 个专家并选择 2 个。这提供了 65 倍更多的专家组合可能性,我们发现这可以改进模型质量。DBRX 使用旋转位置编码(RoPE)、门控线性单元(GLU)和分组查询注意力(GQA)。它使用 GPT-4 tokenizer,如 tiktoken 库中所提供的。我们基于详尽的评估和缩放实验做出了这些选择。
DBRX 在 12T 精心策划的数据 token 和 32k token 的最大上下文长度上进行了预训练。我们估计这些数据在 token 对 token 的基础上至少比我们用于预训练 MPT 模型系列的数据好 2 倍。这个新数据集是使用 Databricks 工具的完整套件开发的,包括用于数据处理的 Apache Spark 和 Databricks notebooks、用于数据管理和治理的 Unity Catalog,以及用于实验跟踪的 MLflow。我们在预训练中使用了课程学习,在训练过程中改变数据混合的方式,我们发现这大大改进了模型质量。
表 1 显示了 DBRX Instruct 和领先的已建立开源模型的质量。DBRX Instruct 在复合基准测试、编程和数学基准测试以及 MMLU 上处于领先地位。它在标准基准测试上超越了所有聊天或指令微调模型。
我们在两个复合基准测试上评估了 DBRX Instruct 和同级模型:Hugging Face Open LLM Leaderboard(ARC-Challenge、HellaSwag、MMLU、TruthfulQA、WinoGrande 和 GSM8k 的平均值)和 Databricks Model Gauntlet(一个包含 30 多个任务的套件,跨越六个类别:世界知识、常识推理、语言理解、阅读理解、符号问题求解和编程)。
在我们评估的模型中,DBRX Instruct 在两个复合基准测试中得分最高:Hugging Face Open LLM Leaderboard(74.5% vs. 排名第二的 Mixtral Instruct 的 72.7%)和 Databricks Gauntlet(66.8% vs. 排名第二的 Mixtral Instruct 的 60.7%)。
DBRX Instruct 在编程和数学方面表现特别强。在 HumanEval 上的得分高于我们评估的其他开源模型(70.1% vs. Grok-1 的 63.2%、Mixtral Instruct 的 54.8% 和最佳性能的 LLaMA2-70B 变体的 32.2%),在 GSM8k 上的得分也是如此(66.9% vs. Grok-1 的 62.9%、Mixtral Instruct 的 61.1% 和最佳性能的 LLaMA2-70B 变体的 54.1%)。DBRX 的表现超越了这些基准测试中的次优模型 Grok-1,尽管 Grok-1 的参数数量多 2.4 倍。在 HumanEval 上,DBRX Instruct 甚至超越了 CodeLLaMA-70B Instruct——一个为编程明确构建的模型,尽管 DBRX Instruct 是为通用目的设计的(70.1% vs. Meta 在 CodeLLaMA 博客中报告的 67.8%)。
DBRX Instruct 在 MMLU 上的得分高于我们考虑的所有其他模型,达到 73.7%。
| Open LLM Leaderboard | ARC-challenge 25-shot | GSM8k CoT 5-shot maj@13 | Gauntlet (30+ 多样化任务的平均值) |
|---|---|---|---|
| DBRX Instruct | 74.5 | 87.5 | 66.8 |
| Mixtral Instruct | 72.7 | 87.0 | 60.7 |
| ...其他模型... | ... | ... | ... |
表 1. DBRX Instruct 和领先开源模型的质量。有关数字如何收集的详细信息,请参见脚注。最高得分用粗体和下划线标出。
表 2 显示了 DBRX Instruct 和领先闭源模型的质量。根据各模型创建者报告的分数,DBRX Instruct 超越了 GPT-3.5(如 GPT-4 论文中所述),与 Gemini 1.0 Pro 和 Mistral Medium 具有竞争力。
在我们考虑的几乎所有基准测试中,DBRX Instruct 超越或最多与 GPT-3.5 相当。DBRX Instruct 在通用知识(由 MMLU 测量,73.7% vs. 70.0%)和常识推理(由 HellaSwag 的 89.0% vs. 85.5% 和 WinoGrande 的 81.8% vs. 81.6% 测量)上表现优于 GPT-3.5。DBRX Instruct 在编程和数学推理上特别闪耀,如 HumanEval(70.1% vs. 48.1%)和 GSM8k(72.8% vs. 57.1%)所测量的。
DBRX Instruct 与 Gemini 1.0 Pro 和 Mistral Medium 具有竞争力。DBRX Instruct 在 Inflection Corrected MTBench、MMLU、HellaSwag 和 HumanEval 上的得分高于 Gemini 1.0 Pro,而 Gemini 1.0 Pro 在 GSM8k 上更强。DBRX Instruct 和 Mistral Medium 在 HellaSwag 上的得分相似,而 Mistral Medium 在 Winogrande 和 MMLU 上更强,DBRX Instruct 在 HumanEval、GSM8k 和 Inflection Corrected MTBench 上更强。
| MT Bench (Inflection corrected, n=5) | HumanEval 0-Shot pass@1 (编程) |
|---|---|
| DBRX Instruct | ... |
| GPT-3.5 | ... |
| ...其他模型... | ... |
表 2. DBRX Instruct 和领先闭源模型的质量。除了 Inflection Corrected MTBench(我们在模型端点上自己测量)外,数字均由各模型创建者在其各自的白皮书中报告。请参见脚注以获取其他详细信息。
DBRX Instruct 使用高达 32K token 的上下文窗口进行了训练。表 3 将其性能与 Mixtral Instruct 和最新版本的 GPT-3.5 Turbo 和 GPT-4 Turbo API 在一套长上下文基准测试上的性能进行了比较(来自《Lost in the Middle》论文的 KV-Pairs 和 HotpotQAXL,这是 HotPotQA 的修改版本,将任务扩展到更长的序列长度)。GPT-4 Turbo 在这些任务中总体上是最好的模型。但是,除了一个例外,DBRX Instruct 在所有上下文长度和序列的所有部分上的表现都优于 GPT-3.5 Turbo。DBRX Instruct 和 Mixtral Instruct 的整体性能相似。
| Answer in Beginning Third of Context | Answer in Middle Third of Context | Answer in Last Third of Context |
|---|---|---|
| DBRX Instruct | ... | ... |
| Mixtral Instruct | ... | ... |
| GPT-3.5 Turbo | ... | ... |
| GPT-4 Turbo | ... | ... |
表 3. KV-Pairs 和 HotpotQAXL 基准测试中模型的平均性能。加粗部分为最高分。带下划线的为除 GPT-4 Turbo 外的最高分。GPT-3.5 Turbo 支持的最大上下文长度为 16K,因此我们无法在 32K 处进行评估。*GPT-3.5 Turbo 的序列开头、中间和末尾的平均值仅包括上下文长度至 16K 的结果。
利用模型上下文最流行的方式之一是检索增强生成(RAG)。在 RAG 中,与提示相关的内容从数据库中检索出来,与提示一起呈现,为模型提供比原本更多的信息。表 4 显示了 DBRX 在两个 RAG 基准测试——Natural Questions 和 HotPotQA——上的质量表现。在这两个基准测试中,模型被提供了从 Wikipedia 文章语料库中使用嵌入模型 bge-large-en-v1.5 检索的前 10 篇段落。DBRX Instruct 在性能上与 Mixtral Instruct 和 LLaMA2-70B Chat 等开源模型以及当前版本的 GPT-3.5 Turbo 相当。
表 4. 当每个模型被提供从 Wikipedia 语料库中使用 bge-large-en-v1.5 检索的前 10 篇段落时的模型性能。准确度通过匹配模型答案内容来衡量。加粗部分为最高分。带下划线的为除 GPT-4 Turbo 外的最高分。
模型质量必须放在模型训练和使用效率的背景下考量。这在 Databricks 尤其重要,因为我们构建像 DBRX 这样的模型,是为了为客户建立一个训练自己基础模型的流程。
我们发现训练混合专家模型在训练的计算效率方面有显著改进(表 5)。例如,DBRX 家族中一个较小的成员——DBRX MoE-B(总参数 23.5B,激活参数 6.6B)——所需的 FLOPs 比 LLaMA2-13B 少 1.7 倍,就能在 Databricks LLM Gauntlet 上达到 45.5% 的分数,而 LLaMA2-13B 的分数是 43.8%。DBRX MoE-B 的激活参数数量也仅为 LLaMA2-13B 的一半。
从整体来看,我们的端到端 LLM 预训练管道在过去十个月中的计算效率提高了近 4 倍。2023 年 5 月 5 日,我们发布了 MPT-7B,这是一个 7B 参数模型,在 1T 个 token 上训练,在 Databricks LLM Gauntlet 上达到了 30.9% 的分数。DBRX 家族中的 DBRX MoE-A(总参数 7.7B,激活参数 2.2B)以 3.7 倍更少的 FLOPs 在 Databricks Gauntlet 上达到了 30.5% 的分数。这种效率是多项改进的结果,包括采用 MoE 架构、网络的其他架构优化、更好的优化策略、更好的 tokenization,以及——非常重要的——更好的预训练数据。
单独来看,更好的预训练数据对模型质量产生了显著的影响。我们使用 DBRX 预训练数据在 1T 个 token 上训练了一个 7B 模型(称为 DBRX Dense-A)。它在 Databricks Gauntlet 上达到了 39.0%,而 MPT-7B 为 30.9%。我们估计我们的新预训练数据在 token-for-token 基础上至少比用于训练 MPT-7B 的数据好 2 倍。换句话说,达到相同的模型质量所需的 token 数量减少了一半。我们通过在 500B 个 token 上训练 DBRX Dense-A 来验证这一点;它在 Databricks Gauntlet 上的表现超过了 MPT-7B,达到了 32.1%。除了更好的数据质量外,对这种 token 效率的另一个重要贡献可能是 GPT-4 tokenizer,它具有大的词汇表,被认为在 token 效率方面尤其出色。这些关于改进数据质量的经验直接转化为我们的客户用于在自己的数据上训练基础模型的实践和工具。
DBRX Dense-A (1T tokens)
DBRX Dense-A (500B tokens)
表 5. 我们用来验证 DBRX MoE 架构和端到端训练管道训练效率的几个测试文章的详细信息
图 2 展示了使用 NVIDIA TensorRT-LLM 和我们优化的服务基础设施以及 16 位精度为 DBRX 和类似模型提供服务的端到端推理效率。我们希望这个基准测试尽可能准确地反映真实世界的使用情况,包括多个用户同时访问同一推理服务器。我们每秒生成一个新用户,每个用户请求包含大约 2000 个 token 的提示,每个响应包含 256 个 token。
一般来说,MoE 模型的推理速度比其总参数数量所暗示的要快。这是因为它们对每个输入使用相对较少的参数。我们发现 DBRX 在这方面也不例外。DBRX 推理吞吐量比 132B 的非 MoE 模型高 2-3 倍。
推理效率和模型质量通常处于矛盾关系:更大的模型通常达到更高的质量,但更小的模型在推理时更高效。采用 MoE 架构使得在模型质量和推理效率之间获得更好的权衡成为可能,这比密集模型通常能够实现的要好得多。例如,DBRX 的质量不仅高于 LLaMA2-70B,而且——由于只有约一半的激活参数——DBRX 推理吞吐量最快可提高 2 倍(图 2)。Mixtral 是 MoE 模型改进 Pareto 前沿上的另一个点:它比 DBRX 更小,相应地质量更低,但推理吞吐量更高。Databricks 基础模型 API 的用户在我们优化的模型服务平台上使用 8 位量化时,可以期待 DBRX 达到每秒 150 个 token 的吞吐量。
DBRX 在 3072 个 NVIDIA H100 上进行了训练,通过 3.2Tbps Infiniband 连接。构建 DBRX 的主要过程——包括预训练、后训练、评估、红队测试和优化——花费了三个月。这是数月科学研究、数据集研究和扩展实验的延续,更不用说 Databricks 多年的 LLM 开发,包括 MPT 和 Dolly 项目以及我们与客户一起构建并投入生产的数千个模型。
为了构建 DBRX,我们利用了与我们的客户可用的同一套 Databricks 工具。我们使用 Unity Catalog 管理和治理我们的训练数据。我们使用新获得的 Lilac AI 探索这些数据。我们使用 Apache Spark™ 和 Databricks 笔记本处理和清洁这些数据。我们使用优化版本的开源训练库来训练 DBRX:MegaBlocks、LLM Foundry、Composer 和 Streaming。我们使用 Databricks Training 服务在数千个 GPU 上大规模管理模型训练和微调。我们使用 MLflow 记录我们的结果。我们通过 Databricks Model Serving 和 Inference Tables 收集人类反馈以改进质量和安全性。我们使用 Databricks Playground 手动试验模型。我们发现 Databricks 工具在各自的用途方面都是一流的,我们受益于这些工具都是统一产品体验的一部分这一事实。
如果您想立即开始使用 DBRX,可以通过 Databricks 基础模型 API 轻松上手。您可以通过我们的按量付费定价快速开始,并从我们的 AI Playground 聊天界面查询模型。对于生产应用,我们提供预配置吞吐量选项,以提供性能保证、对微调模型的支持以及额外的安全和合规功能。要私下托管 DBRX,您可以从 Databricks Marketplace 下载模型,并在 Model Serving 上部署。
在 Databricks,我们相信每个企业都应该有能力在新兴生成式 AI 世界中掌控自己的数据和前景。DBRX 是我们下一代生成式 AI 产品的核心支柱,我们期待我们的客户在利用 DBRX 的功能和我们用来构建它的工具方面的激动人心的旅程。在过去的一年里,我们与客户一起训练了数千个 LLM。DBRX 只是 Databricks 为广泛应用(从内部功能到我们客户的雄心勃勃的用例)构建的强大而高效模型的一个示例。
与任何新模型一样,DBRX 的旅程才刚刚开始,最好的工作将由那些在其基础上构建的人来完成:企业和开源社区。这也只是我们在 DBRX 上工作的开始,您应该期待更多即将推出。
DBRX 的开发由之前构建 MPT 模型家族的 Mosaic 团队领导,与来自 Databricks 各地的数十名工程师、律师、采购和财务专家、项目经理、营销人员、设计师和其他贡献者合作。我们感谢我们的同事、朋友、家人和社区在过去几个月中的耐心和支持。
在创建 DBRX 的过程中,我们站在开源和学术社区的巨人肩膀上。通过公开发布 DBRX,我们旨在反哺社区,希望未来能够携手打造更伟大的技术。基于这一想法,我们诚恳地感谢 Trevor Gale 及其 MegaBlocks 项目的工作与合作(Trevor 的博士导师是 Databricks CTO Matei Zaharia)、PyTorch 团队和 FSDP 项目、NVIDIA 和 TensorRT-LLM 项目、vLLM 团队与项目、EleutherAI 及其 LLM 评估项目、Lilac AI 的 Daniel Smilkov 和 Nikhil Thorat,以及我们在 Allen Institute for Artificial Intelligence(AI2)的朋友们。
Databricks 是数据与 AI 公司。全球超过 10,000 家组织——包括康卡斯特、Condé Nast、Grammarly 以及超过 50% 的财富 500 强企业——都依赖 Databricks 数据智能平台来统一和民主化数据、分析和 AI。Databricks 总部位于旧金山,在全球各地设有办公室,由 Lakehouse、Apache Spark™、Delta Lake 和 MLflow 的原始创造者创立。欲了解更多信息,请在 LinkedIn、X 和 Facebook 上关注 Databricks。
1 数字来自 xAI 报告。由于发布时缺乏 Hugging Face 兼容的检查点,我们无法在完整基准套件上自行评估 Grok-1。
2 DBRX 由我们使用 EleutherAI Harness 进行测量。其他所有数字均来自 Hugging Face Open LLM Leaderboard 报告。
3 DBRX 由我们使用 EleutherAI Harness 的旧提交版本进行测量,该版本与 Hugging Face Open LLM Leaderboard 使用的版本相同。其他所有数字均来自 Hugging Face Open LLM Leaderboard 报告。注意,使用最新的 EleutherAI Harness 提交版本(包含多个解析修复)时,DBRX 在 GSM8k 上的 5-shot 分数为 72.8%,如表 2 所示。LLaMA2-70B Chat 也上升到 48.4%。
4 由 Databricks 使用 LLM Foundry 中的 Gauntlet v0.3.0 测量。
5 除非另有说明,由 Databricks 测量。
6 此数字来自 Mixtral Arxiv 论文。我们报告此数字是因为它高于我们自己评估模型时测量的结果(36.7%)。
7 所有分数均来自 GPT-4 论文报告。我们无法收集 Inflection Corrected MTBench,因为该版本的 GPT-3.5 不可用。我们发现当前版本的 GPT-3.5 Turbo 在 Inflection Corrected MTBench 上的分数为 8.58 ± 0.04,而 DBRX Instruct 为 8.39 +/- 0.08。
8 所有分数均来自 GPT-4 论文报告。我们无法收集 Inflection Corrected MTBench,因为该版本的 GPT-4 不可用。我们发现当前版本的 GPT-4 Turbo 在 Inflection Corrected MTBench 上的分数为 9.27 ± 0.10,而 DBRX Instruct 为 8.39 +/- 0.08。
获取最新文章到你的邮箱
订阅我们的博客,获取最新文章直达你的邮箱。