extra_gated_heading: 访问此模型需向Databricks提供联系信息
extra_gated_prompt: >-
DBRX使用条款
DBRX的使用受Databricks开放模型许可协议和Databricks开放模型可接受使用政策约束。
extra_gated_fields:
名字: 文本
姓氏: 文本
组织机构: 文本
点击下方"提交"即表示我接受许可条款,并确认所提供信息将根据Databricks隐私声明被收集、存储、处理及共享,且我理解可随时更新偏好设置: 复选框
extra_gated_description: >-
您提供的信息将根据Databricks隐私声明被收集、存储、处理及共享。
extra_gated_button_content: 提交
inference: false
license: other
license_name: databricks-open-model-license
license_link: https://www.databricks.com/legal/open-model-license
DBRX Instruct指令模型
- DBRX Instruct是Databricks从头训练的专家混合(MoE)大语言模型,专精于少量轮次的交互场景
- 我们以开放许可同时发布DBRX Instruct及其预训练基础模型DBRX Base
- 当前仓库为DBRX Instruct,DBRX Base模型请访问此处
- 完整技术细节请参阅我们的技术博客
模型概览
DBRX是基于Transformer架构的解码器专用大语言模型(LLM),通过下一词元预测进行训练。该模型采用细粒度专家混合(MoE)架构,总参数量达1320亿,其中360亿参数在任意输入时激活。预训练数据包含12万亿文本和代码词元。相较于Mixtral-8x7B和Grok-1等其他开放MoE模型,DBRX采用更精细的设计——使用更多小型专家模块(16个专家选4个,而Mixtral-8x7B和Grok-1为8选2),这使得专家组合可能性提升65倍,显著改善模型质量。DBRX融合了旋转位置编码(RoPE)、门控线性单元(GLU)和分组查询注意力(GQA)机制,并采用tiktoken库定义的GPT-4分词器改进版。这些技术选择均基于详尽的评估和扩展实验。
DBRX在12万亿精选词元数据上进行预训练,最大上下文长度达32K词元。经评估,该数据质量较MPT模型系列训练数据提升至少2倍。新数据集开发全程采用Databricks工具链,包括Apache Spark™数据处理、Databricks Notebooks及Unity Catalog数据治理。预训练采用课程学习策略,动态调整数据配比以显著提升模型质量。
使用方式
DBRX模型可通过以下途径使用:
- HuggingFace平台下载DBRX Base和DBRX Instruct(参见下方快速指南),当前为DBRX Instruct仓库,基础模型见此处
- GitHub模型仓库链接
- 通过Databricks基础模型API使用,支持按词元计费和预置吞吐量两种企业级部署方案
- 微调指南请参考LLM-Foundry文档
快速指南
注意:当前为指令微调版DBRX Instruct
如需基础模型请使用DBRX Base
通过transformers
库可快速启用DBRX模型,运行需约264GB内存,安装依赖:
pip install "transformers>=4.40.0"
使用hf_transfer
加速下载(详见Huggingface说明):
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1
需申请仓库访问权限,获取read
权限的访问令牌后替换下方代码中的YOUR_TOKEN。
多GPU运行示例
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-instruct", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-instruct", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN")
input_text = "构建优秀大语言模型需要哪些要素?"
messages = [{"role": "user", "content": input_text}]
input_ids = tokenizer.apply_chat_template(messages, return_dict=True, tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=200)
print(tokenizer.decode(outputs[0]))
若GPU支持FlashAttention2,可在AutoModelForCausalLM.from_pretrained()
中添加attn_implementation="flash_attention_2"
参数加速推理。
局限性与伦理考量
训练数据限制
DBRX模型基于截至2023年12月的12万亿词元文本训练,训练数据以英语为主,未针对非英语场景测试,应视为英语通用文本模型。DBRX不具备多模态能力。
风险提示
基础模型可能存在输出不准确、不完整、有偏见或冒犯性内容的风险。关键场景建议结合检索增强生成(RAG)技术使用。使用者应根据具体应用场景进行安全性测试。
适用场景
推荐用途
DBRX是开放通用的商业/研究用大语言模型,可微调用于各类自然语言和编程任务。DBRX Instruct适合开箱即用的英语问答场景。使用前请仔细阅读许可协议和使用政策。
非适用场景
不推荐直接用于非英语场景,不支持原生代码执行或函数调用功能。禁止用于任何违法或违反许可政策的场景。
训练技术栈
DBRX训练依托Databricks基础设施及开源工具链(Composer、Streaming、Megablocks、LLM Foundry)。关键技术包括:
- Composer:提供优化训练循环、检查点、日志记录、FSDP分布式训练等功能
- Streaming:实现云端大数据集的快速低耗训练
- Megablocks:支持"无丢弃MoE"训练技术
- LLM Foundry:整合全流程LLM训练解决方案
评估表现
DBRX在Databricks模型评估体系、Hugging Face开放LLM排行榜和HumanEval测试中均超越现有开源模型。完整评估结果详见技术博客。
致谢
DBRX的研发特别感谢开源社区贡献,包括: