模型概述
模型特點
模型能力
使用案例
🚀 DBRX Base
- DBRX Base 是由 Databricks 從零開始訓練的混合專家(MoE)大語言模型。
- 我們正在根據 開放許可證 發佈預訓練基礎模型 DBRX Base 和針對少輪交互進行微調的版本 DBRX Instruct。
- 這是 DBRX Base 的倉庫。DBRX Instruct 可以在 此處 找到。
- 有關 DBRX 模型的完整詳細信息,請閱讀我們的 技術博客文章。
🚀 快速開始
注意:這是 DBRX Base,尚未進行指令微調。它未針對交互式聊天進行訓練,僅是一個完成模型。 如果您正在尋找微調後的模型,請使用 DBRX Instruct。
使用 transformers
庫可以輕鬆開始使用 DBRX 模型。該模型需要約 264GB 的 RAM 以及以下軟件包:
pip install "transformers>=4.40.0"
如果您想加快下載速度,可以按照 Huggingface 此處 所述使用 hf_transfer
軟件包。
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1
您需要請求訪問此倉庫才能下載模型。獲得授權後,獲取具有 read
權限的訪問令牌,並在下面提供該令牌。
在多個 GPU 上運行模型:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN")
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
如果您的 GPU 系統支持 FlashAttention2,可以在 AutoModelForCausalLM.from_pretrained()
中添加 attn_implementation=”flash_attention_2”
作為關鍵字,以實現更快的推理速度。
✨ 主要特性
- 模型架構:DBRX 是一個基於 Transformer 的僅解碼器大語言模型(LLM),使用下一個標記預測進行訓練。它採用了細粒度的混合專家(MoE)架構,總參數為 132B,其中 36B 參數在任何輸入時都處於激活狀態。
- 訓練數據:在 12T 文本和代碼數據令牌上進行了預訓練,估計該數據在每個令牌上至少比用於預訓練 MPT 系列模型的數據好 2 倍。
- 上下文長度:支持最大 32K 令牌的上下文長度。
- 技術選擇:使用旋轉位置編碼(RoPE)、門控線性單元(GLU)和分組查詢注意力(GQA),並使用 tiktoken 倉庫中定義的 GPT - 4 分詞器的轉換版本。
📦 安裝指南
使用 transformers
庫可以輕鬆開始使用 DBRX 模型。該模型需要約 264GB 的 RAM 以及以下軟件包:
pip install "transformers>=4.40.0"
如果您想加快下載速度,可以按照 Huggingface 此處 所述使用 hf_transfer
軟件包。
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1
💻 使用示例
基礎用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN")
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
高級用法
如果您的 GPU 系統支持 FlashAttention2,可以在 AutoModelForCausalLM.from_pretrained()
中添加 attn_implementation=”flash_attention_2”
作為關鍵字,以實現更快的推理速度。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN", attn_implementation="flash_attention_2")
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
📚 詳細文檔
模型概述
DBRX 是一個基於 Transformer 的僅解碼器大語言模型(LLM),使用下一個標記預測進行訓練。它採用了細粒度的混合專家(MoE)架構,總參數為 132B,其中 36B 參數在任何輸入時都處於激活狀態。它在 12T 文本和代碼數據令牌上進行了預訓練。與其他開放的 MoE 模型(如 Mixtral - 8x7B 和 Grok - 1)相比,DBRX 是細粒度的,這意味著它使用了更多數量的較小專家。DBRX 有 16 個專家並選擇 4 個,而 Mixtral - 8x7B 和 Grok - 1 有 8 個專家並選擇 2 個。這提供了 65 倍更多的專家組合可能性,並且我們發現這提高了模型質量。DBRX 使用旋轉位置編碼(RoPE)、門控線性單元(GLU)和分組查詢注意力(GQA),並使用 tiktoken 倉庫中定義的 GPT - 4 分詞器的轉換版本。這些選擇是基於詳盡的評估和擴展實驗做出的。
DBRX 在精心策劃的 12T 令牌數據上進行了預訓練,最大上下文長度為 32K 令牌。我們估計該數據在每個令牌上至少比用於預訓練 MPT 系列模型的數據好 2 倍。這個新數據集是使用 Databricks 的全套工具開發的,包括用於數據處理的 Apache Spark™ 和 Databricks 筆記本,以及用於數據管理和治理的 Unity Catalog。我們在預訓練中使用了課程學習,在訓練過程中改變數據混合方式,我們發現這大大提高了模型質量。
- 輸入:DBRX 僅接受基於文本的輸入,並且接受最長 32768 令牌的上下文長度。
- 輸出:DBRX 僅產生基於文本的輸出。
- 模型架構:有關 DBRX Instruct 和 DBRX Base 的更詳細信息可以在我們的 技術博客文章 中找到。
- 許可證:Databricks 開放模型許可證
- 可接受使用政策:Databricks 開放模型可接受使用政策
- 版本:1.0
- 所有者:Databricks, Inc.
使用方式
- 下載:DBRX Base 和 DBRX Instruct 可以在 HuggingFace 上下載(請參閱下面的快速入門指南)。這是 DBRX Base 的 HF 倉庫;DBRX Instruct 可以在 此處 找到。
- GitHub 倉庫:DBRX 模型倉庫可以在 GitHub 此處 找到。
- API 調用:DBRX Base 和 DBRX Instruct 可以通過 Databricks 基礎模型 API 的 按令牌付費 和 預配置吞吐量 端點使用。這些是企業級的部署。
- 微調:有關如何使用 LLM - Foundry 進行微調的更多信息,請查看我們的 LLM 預訓練和微調 文檔。
預期用途
預期用例
DBRX 模型是開放的通用大語言模型,旨在並被許可用於商業和研究應用。它們可以進一步針對各種特定領域的自然語言和編碼任務進行微調。DBRX Base 可以用作現成的模型,用於一般英語語言和編碼任務的文本完成。
請查看上面的相關風險部分,以及 Databricks 開放模型許可證 和 Databricks 開放模型可接受使用政策,以獲取有關 DBRX Base 及其派生模型允許使用的更多信息。
超出範圍的用例
DBRX 模型不適合直接用於非英語語言,並且不支持原生代碼執行或其他形式的函數調用。DBRX 模型不應以任何違反適用法律法規的方式使用,也不應以 Databricks 開放模型許可證 和 Databricks 開放模型可接受使用政策 禁止的任何其他方式使用。
訓練棧
MoE 模型的訓練很複雜,DBRX Base 和 DBRX Instruct 的訓練得到了 Databricks 用於數據處理和大規模大語言模型訓練的基礎設施的大力支持(例如,Composer、Streaming、Megablocks 和 LLM Foundry)。
- Composer:是我們用於大規模訓練的核心庫。它提供了優化的訓練循環、簡單的 檢查點 和 日誌記錄、基於 FSDP 的 模型分片、方便的 抽象、通過 回調 實現的極高可定製性等。
- Streaming:支持從雲存儲對大型數據集進行快速、低成本和可擴展的訓練。它處理了在節點數量變化時確定性恢復、避免設備間冗餘下載、大規模高質量洗牌、樣本級隨機訪問和速度等各種挑戰。
- Megablocks:是一個用於 MoE 訓練的輕量級庫。至關重要的是,它支持“無丟棄 MoE”,避免了低效的填充,並且旨在為給定序列提供確定性輸出,無論批次中還有其他什麼序列。
- LLM Foundry:將所有這些庫結合在一起,創造了一個簡單的大語言模型預訓練、微調和解推理體驗。
DBRX 使用上述開源庫的專有優化版本以及我們的 大語言模型訓練平臺 進行訓練。
評估
我們發現 DBRX 在 Databricks 模型挑戰、Hugging Face 開放大語言模型排行榜 和 HumanEval 上優於已有的開源和開放權重基礎模型。
- Databricks 模型挑戰:衡量在六個類別(世界知識、常識推理、語言理解、閱讀理解、符號問題解決和編程)的 30 多個任務上的性能。
- Hugging Face 開放大語言模型排行榜:衡量 ARC - Challenge、HellaSwag、MMLU、TruthfulQA、Winogrande 和 GSM8k 的平均值。
- HumanEval:衡量編碼能力。
完整的評估細節可以在我們的 技術博客文章 中找到。
🔧 技術細節
模型架構
DBRX 是一個基於 Transformer 的僅解碼器大語言模型(LLM),使用下一個標記預測進行訓練。它採用了細粒度的混合專家(MoE)架構,總參數為 132B,其中 36B 參數在任何輸入時都處於激活狀態。它使用旋轉位置編碼(RoPE)、門控線性單元(GLU)和分組查詢注意力(GQA),並使用 tiktoken 倉庫中定義的 GPT - 4 分詞器的轉換版本。
訓練數據
DBRX 在精心策劃的 12T 令牌數據上進行了預訓練,最大上下文長度為 32K 令牌。我們估計該數據在每個令牌上至少比用於預訓練 MPT 系列模型的數據好 2 倍。這個新數據集是使用 Databricks 的全套工具開發的,包括用於數據處理的 Apache Spark™ 和 Databricks 筆記本,以及用於數據管理和治理的 Unity Catalog。
訓練技術
使用課程學習,在訓練過程中改變數據混合方式,發現這大大提高了模型質量。
訓練棧
使用了 Composer、Streaming、Megablocks 和 LLM Foundry 等開源庫的專有優化版本,以及 LLM 訓練平臺。
📄 許可證
DBRX Base 和 DBRX Instruct 均根據 Databricks 開放模型許可證 發佈。使用 DBRX 還需遵守 Databricks 開放模型可接受使用政策。
其他信息
訪問模型
⚠️ 重要提示
您需要與 Databricks 共享聯繫信息才能訪問此模型。
訓練數據集限制
⚠️ 重要提示
- DBRX 模型在 12T 文本令牌上進行訓練,知識截止日期為 2023 年 12 月。
- 用於 DBRX 的訓練混合包含自然語言和代碼示例。絕大多數訓練數據是英語。未對 DBRX 進行非英語能力測試。因此,DBRX 應被視為用於英語文本使用的通用模型。
- DBRX 沒有多模態能力。
相關風險和建議
⚠️ 重要提示
所有基礎模型都是帶有各種風險的新技術,可能會輸出不準確、不完整、有偏見或冒犯性的信息。用戶在使用或分享此類輸出之前,應進行判斷並評估其準確性和是否適合其預期用例。
💡 使用建議
- Databricks 建議在準確性和保真度很重要的場景中 使用檢索增強生成(RAG)。
- 建議任何使用或微調 DBRX Base 或 DBRX Instruct 的人在其特定應用和領域的上下文中圍繞安全性進行額外測試。
致謝
DBRX 模型在很大程度上得益於開源社區,特別是:
- MegaBlocks 庫,為我們的 MoE 實現奠定了基礎。
- PyTorch FSDP,我們基於它進行分佈式訓練。



